The Python 3.13 release notes mention filetype.py as one of the alternatives for imghdr which was removed from the Standard Library.
Given the discussion in #175, it might be quite helpful to have a drop-in replacement for imghdr.what(). It would provide a smooth transition to Py3.13 if developers could confidently replace all instances of imghdr.what() with filetype.what() -- same args, same results.
175
Current pytest results: 49 passed in 0.04s
test_what_from_file is 4 tests
ztest_what_from_file_none is 0 test -- disabled with the leading z
test_what_from_string is 10 tests
test_what_from_string_py311 is 2 tests
Fail on imghdr only on Python < 3.11
test_what_from_string_todo is 33 tests -- Lots of work to do!
Fail on filetype
def what(file: PathLike | str | None, h: bytes | None) -> str:
"""A drop-in replacement for `imghdr.what()` which was removed from the standard
library in Python 3.13."""
Usage:
# Replace...
from imghdr import what
# with...
from filetype import what
# Or replace...
import imghdr
ext = imghdr.what(...)
# with...
import filetype
ext = filetype.what(...)
The Python 3.13 release notes mention
filetype.py
as one of the alternatives forimghdr
which was removed from the Standard Library.Given the discussion in #175, it might be quite helpful to have a drop-in replacement for
imghdr.what()
. It would provide a smooth transition to Py3.13 if developers could confidently replace all instances ofimghdr.what()
withfiletype.what()
-- same args, same results.175
Current pytest results:
49 passed in 0.04s
test_what_from_file
is 4 testsztest_what_from_file_none
is 0 test -- disabled with the leadingz
test_what_from_string
is 10 teststest_what_from_string_py311
is 2 testsimghdr
only on Python < 3.11test_what_from_string_todo
is 33 tests -- Lots of work to do!filetype
Usage:
imghdr
documentation: https://docs.python.org/3.12/library/imghdr.htmlimghdr
source code: https://github.com/python/cpython/blob/3.12/Lib/imghdr.py