Comprehensive filetype and mimetype detection using libmagic and Pygments.
Project description
license: Apache-2.0
copyright: copyright (c) nexB. Inc. and others
homepage_url: https://github.com/nexB/typecode
keywords: filetype, mimetype, libmagic, scancode-toolkit, typecode
TypeCode provides comprehensive filetype and mimetype detection using multiple detectors including libmagic (included as a dependency for Linux, Windows and macOS) and Pygments. It started as library in scancode-toolkit. Visit https://aboutcode.org and https://github.com/nexB/ for support and download.
We run CI tests on:
Azure pipelines https://dev.azure.com/nexB/typecode/_build
To install this package with its full capability (where the binaries for libmagic are installed), use the full option:
pip install typecode[full]
If you want to use the version of libmagic (possibly) provided by your operating system, use the minimal option:
pip install typecode
In this case, you will need to provide a working libmagic and its database available in one of these ways:
a typecode-libmagic plugin: See the standard ones at https://github.com/nexB/scancode-plugins/tree/main/builtins These can either bundle a libmagic library and its magic database or expose a system-installed libmagic. They do so by providing a plugin entry point as a scancode_location_provider for typecode_libmagic which points to a callable that must return a mapping with these two keys:
‘typecode.libmagic.dll’: the absolute path to a libmagic DLL
‘typecode.libmagic.db’: the absolute path to a libmagic ‘magic.mgc’ database
See for example:
environment variables:
TYPECODE_LIBMAGIC_PATH: the absolute path to a libmagic DLL
TYPECODE_LIBMAGIC_DB_PATH: the absolute path to a libmagic ‘magic.mgc’ database
a system-installed libmagic and its database availale in the system PATH:
The supported libmagic version is 5.39.
To set up the development environment:
source configure --dev
To run unit tests:
pytest -vvs -n 2
To clean up development environment:
./configure --clean
To update Pygment to a newer vendored version use vendy:
Update the version of pygments in pyproject.toml
Run vendy
Update the src/typecpde/pygments_lexers_mapping.py and src/typecode/pygments_lexers.py scripts accordingly, including their ABOUT files
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for typecode-30.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05ccbacf89a51ec0451a5b04ad2835c94a9a82c24b5d0b16670208d4eaabe0c1 |
|
MD5 | dd51e095449a2a6cd0d6746ae905ef56 |
|
BLAKE2b-256 | a99e37c3f06e97ea9a6eae9c68c3a1faa3c1a962b41098bb9df3797e79b5c66c |