teptris-py — TOML for Python at libleptris speed
A native C-extension binding (no ctypes, no fallback) over
libteptris — the TOML counterpart
of leptris-py (XML) and yeptris-py (YAML). API shape mirrors
tomllib/tomli (loads/load raising TOMLDecodeError) plus a
dumps writer in the tomli_w spirit. Datetime mapping mirrors
tomllib: aware/naive datetime, date, time.
Both directions are native: dumps walks the object tree in C
through the builder API and emits via the shared engine emitter —
3.5×–14.2× faster than tomli_w on every benchmark shape. The engine
implements the TOML 1.1 draft grammar (a strict superset of 1.0)
with 100% toml-test conformance, and parses at ≥3× the best C/C++
competitor on every shape.
Packaging
Wheels are cp39-abi3 — one per platform (manylinux/musllinux x86_64
and aarch64, macOS arm64 and x86_64, Windows AMD64 and ARM64), covering
every CPython >= 3.9 including future minors. The extension statically
links libteptris, so each wheel is a single self-contained module
(no shared-library chain). Linux wheels build the engine inside each
container via cibuildwheel so musllinux links musl.
Development
setup.py links the engine statically when it finds
libteptris.a/teptris.lib under TEPTRIS_LIBDIR (what the wheels
ship); otherwise it falls back to the shared library with an rpath to
its build tree. Point TEPTRIS_INCLUDE/TEPTRIS_LIBDIR at a C
checkout's build and run the suite:
cmake -B ../teptris/build -S ../teptris \
-DCMAKE_BUILD_TYPE=Release -DTEPTRIS_BUILD_SHARED=OFF -DTEPTRIS_BUILD_STATIC=ON
cmake --build ../teptris/build
TEPTRIS_INCLUDE=../teptris/src/include TEPTRIS_LIBDIR=../teptris/build/src \
python3 setup.py build_ext --inplace
PYTHONPATH=src python3 -m unittest discover -s tests -v
Publishing and version numbers are USER release decisions.
Release files for teptris 0.2.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| teptris-0.2.13-cp39-abi3-win_arm64.whl | CPython 3.9 | abi3 | Windows ARM64 | Details |
| teptris-0.2.13-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| teptris-0.2.13-cp39-abi3-musllinux_1_2_x86_64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ x86-64 | Details |
| teptris-0.2.13-cp39-abi3-musllinux_1_2_aarch64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ ARM64 | Details |
| teptris-0.2.13-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 | Details |
| teptris-0.2.13-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 | Details |
| teptris-0.2.13-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
| teptris-0.2.13-cp39-abi3-macosx_10_9_x86_64.whl | CPython 3.9 | abi3 | macOS 10.9+ x86-64 | Details |
Total release size:544.9 kB
Release files / teptris-0.2.13-cp39-abi3-win_arm64.whl
| Download URL | teptris-0.2.13-cp39-abi3-win_arm64.whl |
|---|---|
| Size | 47.2 kB |
| Tags | CPython 3.9 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
a164e67f91978e5cd5fc431ca0092737bcab3654679a64e08ab06a4087f64b27
|
|
BLAKE2b-256 checksum How to use checksums |
984421960eb2dfca387dfe594e7603ba0530113f598351a96ad097cff5e80e1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|
Release files / teptris-0.2.13-cp39-abi3-win_amd64.whl
| Download URL | teptris-0.2.13-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 49.2 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
f33854ec5872c27ec4503dc9d75a43bcf6be1fba7ddb3e962efd9855b8e2e363
|
|
BLAKE2b-256 checksum How to use checksums |
411f4be05f7a8536db59cd3599b81350e8cbc4f0bb3359a9caa11dd2f8695bd9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|
Release files / teptris-0.2.13-cp39-abi3-musllinux_1_2_x86_64.whl
| Download URL | teptris-0.2.13-cp39-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 79.5 kB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
26caf931e43a79380c871b839f28e70aaed9570846397d52ea9871658f0852da
|
|
BLAKE2b-256 checksum How to use checksums |
ba9b38e7007c9042e1657834327b6757dc274025a4ab1f3d42efa379538ed555
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|
Release files / teptris-0.2.13-cp39-abi3-musllinux_1_2_aarch64.whl
| Download URL | teptris-0.2.13-cp39-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 84.7 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
b6ded77d0d5af7985c682a9ad151e2913e29d8cd3d043998d85ec2237b95f9b9
|
|
BLAKE2b-256 checksum How to use checksums |
48d6e2adc505b6953b347b3d19db5e607768d01c759ccb315e50ec34077ed585
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|
Release files / teptris-0.2.13-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | teptris-0.2.13-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 76.7 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
72c2da411e8e2e090d9bd1d5f19d1d1ba4c828684c84d245f0a11a4699ba1071
|
|
BLAKE2b-256 checksum How to use checksums |
4f16d81a9cec6b30ed5883d1d89b5c191dc188a657b1106c9c971f83b40996a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|
Release files / teptris-0.2.13-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | teptris-0.2.13-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 82.6 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
da76a59cd4a9f1ff480dfde67371293329178d09a43df069ae13b7bbb7312ed4
|
|
BLAKE2b-256 checksum How to use checksums |
72e5df68f1fd9c15b390b0b2db18e8266004517b05fcc18007d787cbcecd4542
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|
Release files / teptris-0.2.13-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | teptris-0.2.13-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 63.0 kB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7afe68a00effe6d306499f5fe05c26c5c8563e3acac7c054e0c26ffef2b5bda3
|
|
BLAKE2b-256 checksum How to use checksums |
a6afedcefb308590fac2f3664111bbd0285799c0814b8166a9fd5d4ecc97e03b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|
Release files / teptris-0.2.13-cp39-abi3-macosx_10_9_x86_64.whl
| Download URL | teptris-0.2.13-cp39-abi3-macosx_10_9_x86_64.whl |
|---|---|
| Size | 62.1 kB |
| Tags | CPython 3.9 abi3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
a9289df97fa67f968b3e05163b05572e6cdd9b0657cbd2db4cf840ce8638e329
|
|
BLAKE2b-256 checksum How to use checksums |
f76806878635aca07893b68928db4e81b6cf3263f9a646e9b71decd2d589b25a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|