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.20
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.20.tar.gz | 76.3 kB | Details |
Built distributions (wheels)
Total release size:1.9 MB
Release files / teptris-0.2.20.tar.gz
| Download URL | teptris-0.2.20.tar.gz |
|---|---|
| Size | 76.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ceb46ba7784a0202fcce1df55be0ec6eb9aab37fd3c2786d9b5732569ec8128
|
|
BLAKE2b-256 checksum How to use checksums |
20397233f3e5ad0fac15d6852c66f408038c95fe27c0107afa69e5c4b2addc29
|
| 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.20-cp39-abi3-win_arm64.whl
| Download URL | teptris-0.2.20-cp39-abi3-win_arm64.whl |
|---|---|
| Size | 126.7 kB |
| Tags | CPython 3.9 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
2bced8b713613614f551ae4cbf8048a4e1b50302c45faebc3ef56324c919888f
|
|
BLAKE2b-256 checksum How to use checksums |
77aaab4b201f461da11f5dd9a9f0b2baaf438fdf62ad7fe63988372d3c1b46ad
|
| 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.20-cp39-abi3-win_amd64.whl
| Download URL | teptris-0.2.20-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 128.4 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
b5744606ca908dc8ffa6bf852f02684f2f2e41451905ef6fc69be04a15e82d09
|
|
BLAKE2b-256 checksum How to use checksums |
bab2fd69805f057809f95c8dd9d9e6f15c142f7cc9deb2e2bdb09bc92e926433
|
| 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.20-cp39-abi3-musllinux_1_2_x86_64.whl
| Download URL | teptris-0.2.20-cp39-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 160.1 kB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
70086cd90765a02453811a4514418bc4debcbb62cf1c467a14a952c1ab165617
|
|
BLAKE2b-256 checksum How to use checksums |
658e761bbbf13849bb6672ddc069e6f2f6006284555f763150dfbf88289c756d
|
| 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.20-cp39-abi3-musllinux_1_2_armv7l.whl
| Download URL | teptris-0.2.20-cp39-abi3-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 162.9 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
1d741d96537a2ab20f815e376b14afd815328df7ef7efe03a4757c40c409f26c
|
|
BLAKE2b-256 checksum How to use checksums |
540a0d29d172b59806d5dd47163541c84679b9379a318263c564c216a07656e6
|
| 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.20-cp39-abi3-musllinux_1_2_aarch64.whl
| Download URL | teptris-0.2.20-cp39-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 165.7 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
023becea477b0dbb31388241280f2787d2b2766bc83e69ecc8e37f89ce8adeea
|
|
BLAKE2b-256 checksum How to use checksums |
742007c50b488cb1c9a825f20e1fa48812396e4362bdd56c54c0fc5e34d0ad3d
|
| 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.20-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | teptris-0.2.20-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 157.6 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 |
7abe34ee9c1a1181fe4a78c4302447178d4e0173533f37f2f8a850c52a78a3b6
|
|
BLAKE2b-256 checksum How to use checksums |
07466f8f9abcaabf5cad1e4a683dac512464ce6e9ab684d3da567ed18ae0fc40
|
| 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.20-cp39-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
| Download URL | teptris-0.2.20-cp39-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl |
|---|---|
| Size | 162.0 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 |
f4194132333803e2ae395af46cb472ed64cbbd51ad0b9a065cdfc85776a50219
|
|
BLAKE2b-256 checksum How to use checksums |
a6163bc3e62ac22d239f4d4d8bb2f444909749c4561bd2929106e3a9e1cbb103
|
| 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.20-cp39-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
| Download URL | teptris-0.2.20-cp39-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl |
|---|---|
| Size | 169.1 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 |
58b1d9b62d5e950b8d521b5bf0cca035f66effa5f3f9f80babf0b0d290a0ab56
|
|
BLAKE2b-256 checksum How to use checksums |
f938fcd318ddb13cc4fd52eb75df845054c3fb82c26262d992159850b664dd60
|
| 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.20-cp39-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
| Download URL | teptris-0.2.20-cp39-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl |
|---|---|
| Size | 165.3 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARMv7l Linux glibc 2.31+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
fa35e94e47a49742296fd4d1e20cb37f2084df42da73e2de22d041218dafe087
|
|
BLAKE2b-256 checksum How to use checksums |
bef340ab89a0283541c8c5a3a7ddb933e8aa206aba7ec91387861cc807ab0d80
|
| 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.20-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | teptris-0.2.20-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 163.5 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
7beee51f8e98df57f96ec77119995e3342619c54655768449fcc231ce497a250
|
|
BLAKE2b-256 checksum How to use checksums |
e26a85c7c95f57b5cc430cb4588ffac3f469f86f82d36b624b8c335b6e454163
|
| 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.20-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | teptris-0.2.20-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 144.4 kB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
db022526610f7984e0b635cff61ed163c0bdf2995812d52842913991780c54d2
|
|
BLAKE2b-256 checksum How to use checksums |
07f7c5c3f4bf065dd63e1f275c8ff57ea1d0fd85976b96061f162b5ae0b11d41
|
| 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.20-cp39-abi3-macosx_10_9_x86_64.whl
| Download URL | teptris-0.2.20-cp39-abi3-macosx_10_9_x86_64.whl |
|---|---|
| Size | 144.0 kB |
| Tags | CPython 3.9 abi3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
1335dc92679b194c2734bf7e4db12502dd5bb459f3c04421d2448f79f7abdbb5
|
|
BLAKE2b-256 checksum How to use checksums |
08ab724124febcc9888229ada6cecdec28a2d420a533f6f1c9c20a0cdec27a6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|