changeset: 104208:013b3b5d3b6c parent: 104206:4ba2f6bce7f4 parent: 104207:929e3adefe7a user: Berker Peksag date: Sat Oct 01 05:02:22 2016 +0300 files: Misc/NEWS description: Issue #28228: Merge from 3.6 diff -r 4ba2f6bce7f4 -r 013b3b5d3b6c Doc/library/imghdr.rst --- a/Doc/library/imghdr.rst Sat Oct 01 04:17:56 2016 +0300 +++ b/Doc/library/imghdr.rst Sat Oct 01 05:02:22 2016 +0300 @@ -20,6 +20,9 @@ string describing the image type. If optional *h* is provided, the *filename* is ignored and *h* is assumed to contain the byte stream to test. + .. versionchanged:: 3.6 + Accepts a :term:`path-like object`. + The following image types are recognized, as listed below with the return value from :func:`what`: diff -r 4ba2f6bce7f4 -r 013b3b5d3b6c Lib/imghdr.py --- a/Lib/imghdr.py Sat Oct 01 04:17:56 2016 +0300 +++ b/Lib/imghdr.py Sat Oct 01 05:02:22 2016 +0300 @@ -1,5 +1,7 @@ """Recognize image file formats based on their first few bytes.""" +from os import PathLike + __all__ = ["what"] #-------------------------# @@ -10,7 +12,7 @@ f = None try: if h is None: - if isinstance(file, str): + if isinstance(file, (str, PathLike)): f = open(file, 'rb') h = f.read(32) else: diff -r 4ba2f6bce7f4 -r 013b3b5d3b6c Lib/test/test_imghdr.py --- a/Lib/test/test_imghdr.py Sat Oct 01 04:17:56 2016 +0300 +++ b/Lib/test/test_imghdr.py Sat Oct 01 05:02:22 2016 +0300 @@ -1,6 +1,7 @@ import imghdr import io import os +import pathlib import unittest import warnings from test.support import findfile, TESTFN, unlink @@ -49,6 +50,12 @@ self.assertEqual(imghdr.what(None, data), expected) self.assertEqual(imghdr.what(None, bytearray(data)), expected) + def test_pathlike_filename(self): + for filename, expected in TEST_FILES: + with self.subTest(filename=filename): + filename = findfile(filename, subdir='imghdrdata') + self.assertEqual(imghdr.what(pathlib.Path(filename)), expected) + def test_register_test(self): def test_jumbo(h, file): if h.startswith(b'eggs'): diff -r 4ba2f6bce7f4 -r 013b3b5d3b6c Misc/NEWS --- a/Misc/NEWS Sat Oct 01 04:17:56 2016 +0300 +++ b/Misc/NEWS Sat Oct 01 05:02:22 2016 +0300 @@ -54,6 +54,8 @@ Library ------- +- Issue #28228: imghdr now supports pathlib. + - Issue #28226: compileall now supports pathlib. - Issue #28314: Fix function declaration (C flags) for the getiterator() method