From the CHANGELOG:
- Include a `py.typed` sentinal to enable type checking
- Improve fix for attribute error during destruction
- Cleanup library loading logic
- Add new homebrew library dir for OSX
Tested on NetBSD/amd64.
Changes to 0.4.21, 0.4.22
- Unify dll loader between the standard and compat library, fixing load
failures on some previously supported platforms.
Changes to 0.4.20
- merge in a compatability layer for the upstream libmagic python binding.
Since both this package and that one are called 'magic', this compat layer
removes a very common source of runtime errors. Use of that libmagic API will
produce a deprecation warning.
- support python 3.9 in tests and pypi metadata
- add support for magic_descriptor functions, which take a file descriptor
rather than a filename.
- sometimes the returned description includes snippets of the file, e.g a title
for MS Word docs. Since this is in an unknown encoding, we would throw a
unicode decode error trying to decode. Now, it decodes with
'backslashreplace' to handle this more gracefully. The undecodable characters
are replaced with hex escapes.
- add support for MAGIC_EXTENSION, to return possible file extensions.
- add mypy typing stubs file, for type checking
Changes in 0.4.18
- Make bindings for magic_[set|get]param optional, and throw NotImplementedError
if they are used but not supported. Only call setparam() in the constructor if
it's supported. This prevents breakage on CentOS7 which uses an old version of
libmagic.
- Add tests for CentOS 7 & 8
Changes in 0.4.16 and 0.4.17
- add MAGIC_MIME_TYPE constant, use that in preference to MAGIC_MIME internally.
This sets up for a breaking change in a future major version bump where
MAGIC_MIME will change to mathch magic.h.
- add magic.version() function to return library version
- add setparam/getparam to control internal behavior
- increase internal limits with setparam to prevent spurious error on some jpeg files
- various setup.py improvements to declare modern python support
- support MSYS2 magic dlls
- fix warning about using 'is' on an int in python 3.8
- include tests in source distribution
- many test improvements:
-- tox runner support
-- remove deprecated test_suite field from setup.py
-- docker tests that cover all LTS ubuntu versions
-- add test for snapp file identification
- doc improvements
-- document dependency install process for debian
-- various typos
-- document test running process
This will fix functionality of this package if libmagic is not available.
Bump PKGREVISION for those platforms where it is the case (NFC otherwise).
Tested on NetBSD/amd64.
Thanks richard@ for the heads up.
Problems found with existing digests:
Package memconf distfile memconf-2.16/memconf.gz
b6f4b736cac388dddc5070670351cf7262aba048 [recorded]
95748686a5ad8144232f4d4abc9bf052721a196f [calculated]
Problems found locating distfiles:
Package dc-tools: missing distfile dc-tools/abs0-dc-burn-netbsd-1.5-0-gae55ec9
Package ipw-firmware: missing distfile ipw2100-fw-1.2.tgz
Package iwi-firmware: missing distfile ipw2200-fw-2.3.tgz
Package nvnet: missing distfile nvnet-netbsd-src-20050620.tgz
Package syslog-ng: missing distfile syslog-ng-3.7.2.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
This module uses ctypes to access the libmagic file type identification
library. It makes use of the local magic database and supports both textual and
MIME-type output.