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
File details
Details for the file typecode-30.0.2.tar.gz
.
File metadata
- Download URL: typecode-30.0.2.tar.gz
- Upload date:
- Size: 3.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17689d20af0ae6116e797ef2c5de65f0ce809128cf0e68479b34bd6ba4bc3898 |
|
MD5 | e1c9b01c020cdeabc625575ba804d250 |
|
BLAKE2b-256 | d6cac93584110e501e579e8901c9ad0c5db60dc69e84dfaf2224d5f95fca067b |
File details
Details for the file typecode-30.0.2-py3-none-any.whl
.
File metadata
- Download URL: typecode-30.0.2-py3-none-any.whl
- Upload date:
- Size: 1.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06b1bffa93525acf4b6a52393fd0ee20916f62ddd40c0f2d27ca75a08231a46c |
|
MD5 | ab90ad6c726f6bef0c09eada541b3152 |
|
BLAKE2b-256 | a13c6d135ccbbf42230d3bef43bc052fd6993171a71ce1ec868c2581d8f930ab |