changeset: 104207:929e3adefe7a branch: 3.6 parent: 104205:0fe04467c4b5 user: Berker Peksag date: Sat Oct 01 05:01:54 2016 +0300 files: Doc/library/imghdr.rst Lib/imghdr.py Lib/test/test_imghdr.py Misc/NEWS description: Issue #28228: imghdr now supports pathlib diff -r 0fe04467c4b5 -r 929e3adefe7a Doc/library/imghdr.rst --- a/Doc/library/imghdr.rst Sat Oct 01 04:17:33 2016 +0300 +++ b/Doc/library/imghdr.rst Sat Oct 01 05:01:54 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 0fe04467c4b5 -r 929e3adefe7a Lib/imghdr.py --- a/Lib/imghdr.py Sat Oct 01 04:17:33 2016 +0300 +++ b/Lib/imghdr.py Sat Oct 01 05:01:54 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 0fe04467c4b5 -r 929e3adefe7a Lib/test/test_imghdr.py --- a/Lib/test/test_imghdr.py Sat Oct 01 04:17:33 2016 +0300 +++ b/Lib/test/test_imghdr.py Sat Oct 01 05:01:54 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 0fe04467c4b5 -r 929e3adefe7a Misc/NEWS --- a/Misc/NEWS Sat Oct 01 04:17:33 2016 +0300 +++ b/Misc/NEWS Sat Oct 01 05:01:54 2016 +0300 @@ -46,6 +46,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