The Python 3.13 release notes mention python-magic as one of the alternatives for imghdr which was removed from the Standard Library.
Given the discussion in #317, 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 magic.what() -- same args, same results.
317
Current pytest results: 45 passed in 0.05s
test_what_from_file is 2 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 31 tests -- Lots of work to do!
Fail on magic
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 magic import what
# Or replace...
import imghdr
ext = imghdr.what(...)
# with...
import magic
ext = magic.what(...)
The Python 3.13 release notes mention
python-magic
as one of the alternatives forimghdr
which was removed from the Standard Library.Given the discussion in #317, 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()
withmagic.what()
-- same args, same results.317
Current pytest results:
45 passed in 0.05s
test_what_from_file
is 2 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 31 tests -- Lots of work to do!magic
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