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-21.6.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06ec8e50a675cc2cc383e781f1e7bbee1f96eb9ed8be1cef554ea6a1c571fc43 |
|
MD5 | 4ee287f1f9ee34e65307805478634d23 |
|
BLAKE2b-256 | b716671586d0fd255e60510873c5a681515e5e98dd311636326eefa7683665cd |