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 10 cp39-abi3 wheels —
manylinux/musllinux x86_64, aarch64 and armv7l (32-bit ARM, built
under qemu), 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.19
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.19.tar.gz | 76.2 kB | Details |
Built distributions (wheels)
Total release size:982.8 kB
Release files / teptris-0.2.19.tar.gz
| Download URL | teptris-0.2.19.tar.gz |
|---|---|
| Size | 76.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bb1578c87b94370b63d8d97aaa2ba7be421374797963453bb4b975c62d1368bc
|
|
BLAKE2b-256 checksum How to use checksums |
ac39262206b8f65f684c28b58865f9ce8f60797a644e8d827e602f50b2dee658
|
| 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.19-cp39-abi3-win_arm64.whl
| Download URL | teptris-0.2.19-cp39-abi3-win_arm64.whl |
|---|---|
| Size | 49.2 kB |
| Tags | CPython 3.9 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
da099efa98a489673f6d0e816a7648793c42adc52b0e59ea3e92682f12f89898
|
|
BLAKE2b-256 checksum How to use checksums |
0ffa749c56c5fe963ece3bdea07a1ba05bd1a9406f0578be8b340a2a9d709e67
|
| 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.19-cp39-abi3-win_amd64.whl
| Download URL | teptris-0.2.19-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 50.8 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
366fff753b540f604dd8f8d532cad78f17aacbeafae9262f45b2dc78e1b2375e
|
|
BLAKE2b-256 checksum How to use checksums |
606959e70b10ee1df6dbc91340b83570e61cb414c6703684fdf6e7bc29d36970
|
| 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.19-cp39-abi3-musllinux_1_2_x86_64.whl
| Download URL | teptris-0.2.19-cp39-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 81.3 kB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
4a99f6621e0e1c35cb440824b1eff39f503e4c6b55073f59057b9aeb2009bd83
|
|
BLAKE2b-256 checksum How to use checksums |
ca4fc759131ab2e932478b2ba3db1d985934b12348e2f6e826085216a90c025e
|
| 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.19-cp39-abi3-musllinux_1_2_armv7l.whl
| Download URL | teptris-0.2.19-cp39-abi3-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 84.1 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
84a52f93c412ef8ce2ca23e22056bcdd387d58fde034206a42c177129a747d91
|
|
BLAKE2b-256 checksum How to use checksums |
48cf4f715ed4774294f44919715681c5fd61935b520644abbf88c8e36410dacb
|
| 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.19-cp39-abi3-musllinux_1_2_aarch64.whl
| Download URL | teptris-0.2.19-cp39-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 86.9 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
d67891a26ec91c5ff373fe5d99f6fbd4f3107b60469679ed2ebad079e5298e74
|
|
BLAKE2b-256 checksum How to use checksums |
9a6b8503ac82fbaaf9eeeb6c143fb70937dd16e0c5b7ee224d109c22a86a623b
|
| 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.19-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | teptris-0.2.19-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 78.8 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 |
bb4db60d861ba68ac1b7cad7f70f97584ed5c6043d1e7fb92b448de7a0c3a75d
|
|
BLAKE2b-256 checksum How to use checksums |
4656b8a72e8c94df1b843507da399ccaf358c538689b63891b3d43c6b105622a
|
| 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.19-cp39-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
| Download URL | teptris-0.2.19-cp39-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl |
|---|---|
| Size | 83.2 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ IBM System/390x Linux glibc 2.28+ IBM System/390x abi3 |
|
SHA-256 checksum How to use checksums |
86ce3e9455ee9d525254409ab92116b1b9f6fdda7d5a1348dcd7183eff29466b
|
|
BLAKE2b-256 checksum How to use checksums |
27feda3103a33aab520a3ce8a8c85b2ba73b21f53d85b50869493a0c5a6b82f6
|
| 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.19-cp39-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
| Download URL | teptris-0.2.19-cp39-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl |
|---|---|
| Size | 90.3 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ PowerPC 64-le Linux glibc 2.28+ PowerPC 64-le abi3 |
|
SHA-256 checksum How to use checksums |
db944e9e5139827d220f02619ec35813effd415f05533ef3ae8332bd6f64b996
|
|
BLAKE2b-256 checksum How to use checksums |
e3e87c4056ac72080f7ad347d30a72a5673f2baf243605a21e44bc2220c54916
|
| 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.19-cp39-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
| Download URL | teptris-0.2.19-cp39-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl |
|---|---|
| Size | 86.5 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARMv7l Linux glibc 2.31+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
71bab9aeed80d75057f17926a29800f946dc8570e2ff7ea0fb59e65431827606
|
|
BLAKE2b-256 checksum How to use checksums |
5182066db5e2b451d7ae1ef174bc9a39c6864ce90f8e8ad8a07c17b820298f88
|
| 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.19-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | teptris-0.2.19-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 84.7 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
7246ca6e24bfd37cb9cbc4d4f843f3d9ad8d6a6c8cfc31386f5056d69cf0abe5
|
|
BLAKE2b-256 checksum How to use checksums |
a8cc31da0b12839e37c691279935d89001355cbc4390337e884600b5bba69bf2
|
| 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.19-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | teptris-0.2.19-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 65.6 kB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a750e82c3ad121d15d2442a010414d3400e1558475297618bfe420af853b5578
|
|
BLAKE2b-256 checksum How to use checksums |
9d78618643a1eb44760a429d37bef393e30020ac408c98e9e708506fff9fda46
|
| 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.19-cp39-abi3-macosx_10_9_x86_64.whl
| Download URL | teptris-0.2.19-cp39-abi3-macosx_10_9_x86_64.whl |
|---|---|
| Size | 65.2 kB |
| Tags | CPython 3.9 abi3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
7ad6ca29d234cdae0ee63a9502c3d72e2067ac0579afd161e67493c80e8a0fbf
|
|
BLAKE2b-256 checksum How to use checksums |
5ae23bf32e463d46939156a8a066726d5db5d1f4bb1960a283cea9b3e11691e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|