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
pip install teptris resolves one of 8 cp39-abi3 wheels —
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; the manylinux wheels carry the maximal tag
set (glibc >= 2.17).
Every other platform (FreeBSD, Solaris/illumos, any CPython on an exotic arch) installs the sdist, which vendors the engine and compiles it with the installing interpreter's compiler — a C compiler is required, and the build fails loudly without one.
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.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| teptris-0.2.17.tar.gz | 75.9 kB | Details |
Built distributions (wheels)
Total release size:806.6 kB
Release files / teptris-0.2.17.tar.gz
| Download URL | teptris-0.2.17.tar.gz |
|---|---|
| Size | 75.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b2521b46d9b1039da57460741de9df1243c882f142e694ad520f2d3c077b5799
|
|
BLAKE2b-256 checksum How to use checksums |
926144ba22145a8852cf877f873dc73c6185cef2b7f87d9a6aa00cdf9e1eb3ac
|
| 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.17-cp39-abi3-win_arm64.whl
| Download URL | teptris-0.2.17-cp39-abi3-win_arm64.whl |
|---|---|
| Size | 49.0 kB |
| Tags | CPython 3.9 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
02bf11eb800f260348716952f2613c9b9f2ddc3389e1408541456b2604649b7c
|
|
BLAKE2b-256 checksum How to use checksums |
a7e73eb796497cba097e040c5247e28c9c264c56020e4271ab741432956c60a2
|
| 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.17-cp39-abi3-win_amd64.whl
| Download URL | teptris-0.2.17-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 50.6 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
5f04d7aed1f914b2fb3a4a1e15db2f828b7fb0528b01dafc291bb0879a24c157
|
|
BLAKE2b-256 checksum How to use checksums |
1626b28d0e20371cc804518d27277b2c3b2d517e37caaeb1e8061ed28f492890
|
| 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.17-cp39-abi3-musllinux_1_2_x86_64.whl
| Download URL | teptris-0.2.17-cp39-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 81.1 kB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
3ebd27838e08aec569f67ba40ef48dde89db8b48786cf560c9a66e6477539d60
|
|
BLAKE2b-256 checksum How to use checksums |
25c76a881106aa7a8cd121989db58edc252eed26fa0d3cf1fc9987eb49a35258
|
| 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.17-cp39-abi3-musllinux_1_2_armv7l.whl
| Download URL | teptris-0.2.17-cp39-abi3-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 83.8 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
d8fde0692a8dea2ad2b5486b523d44733029317c4263ef2dbea244ab623576d0
|
|
BLAKE2b-256 checksum How to use checksums |
d7557590ef6c2c85ac137a29803888a81d16bfd344642aa61da1fe713908806b
|
| 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.17-cp39-abi3-musllinux_1_2_aarch64.whl
| Download URL | teptris-0.2.17-cp39-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 86.6 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
bb0c7f758b62e09959a605cc8791f74ad9f6a024b5c0c0935dc47bb461e1a9a1
|
|
BLAKE2b-256 checksum How to use checksums |
9a78bfb39c0f4088f1b2ea03a0a6214e00c2aff9c7edb0ce96314ca1f048cc3f
|
| 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.17-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | teptris-0.2.17-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 78.5 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 |
80f67c6a460cc631127984fff23852bf5ba1c7380fdee7be16d98ea589975ea6
|
|
BLAKE2b-256 checksum How to use checksums |
bac402bbb55950e19c8d5dd9bfb277f196b250e56ee1f5130fcb284611fc9874
|
| 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.17-cp39-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
| Download URL | teptris-0.2.17-cp39-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl |
|---|---|
| Size | 86.3 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARMv7l Linux glibc 2.31+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
f19067e1e3b939beb6868f5b0e4f9d2c9fb9a1a945af7b3f9e338daed835f1e0
|
|
BLAKE2b-256 checksum How to use checksums |
9d79dc17c98c8ea36833d473a357bdd3070c6dc6240ca8b82de78eab2a8ed57d
|
| 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.17-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | teptris-0.2.17-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 84.5 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
c53599531ad7802f8ccd02c5266cbe64b67aa2e4568687d0b73badeb8819c0c5
|
|
BLAKE2b-256 checksum How to use checksums |
65140c52f07aacb78127fd1d1066308b03ba9e5d3f6b74dff131b3413dd68ba4
|
| 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.17-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | teptris-0.2.17-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 65.4 kB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f9f2991070ef150046cecf34ee086dafbd9c27d08f899de52bb1bb06b876c236
|
|
BLAKE2b-256 checksum How to use checksums |
8f920a0c0012d0fa75550371a7a9040b8ef76f6fa243c42d8056eb1406844dc3
|
| 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.17-cp39-abi3-macosx_10_9_x86_64.whl
| Download URL | teptris-0.2.17-cp39-abi3-macosx_10_9_x86_64.whl |
|---|---|
| Size | 65.0 kB |
| Tags | CPython 3.9 abi3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
b37b987b651614b776fcc7531f98b7b8656d831ba48e469d64af6ce4c2f3573c
|
|
BLAKE2b-256 checksum How to use checksums |
2a9c29a789097168559bf38b3f7c6f4b5d907335924c6cc43571eb2b1cccd7b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|