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.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa55b36c2b62c8d925df71b7c1184b8e85bc29ae4d4e21d1884a5afcc554206e |
|
MD5 | f3508c1a8d37b8872f21eb6c49cd13d8 |
|
BLAKE2b-256 | 08df97235ddeb47a130f412ef05f8ecd6df7c6c8bf57f6bee8723231a65d9bba |