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.18
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.18.tar.gz | 76.1 kB | Details |
Built distributions (wheels)
Total release size:982.6 kB
Release files / teptris-0.2.18.tar.gz
| Download URL | teptris-0.2.18.tar.gz |
|---|---|
| Size | 76.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2cb522205d954b5dae72e16e8fcd69ba90c496642b8e5f6787937ff3b8e2e236
|
|
BLAKE2b-256 checksum How to use checksums |
ebba454a14e90c4fa94191ba48b501d487cf76b75351d6f607ef43bfbb0ce4fb
|
| 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.18-cp39-abi3-win_arm64.whl
| Download URL | teptris-0.2.18-cp39-abi3-win_arm64.whl |
|---|---|
| Size | 49.2 kB |
| Tags | CPython 3.9 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
e0c64297e2de5d78bfbbb4d48d9db1eb9150540cfc0d946e94026ccecd3aa38f
|
|
BLAKE2b-256 checksum How to use checksums |
061c7459b57860fedf54215acd72f326beb6a881f33ad29e5f402f745ad7836d
|
| 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.18-cp39-abi3-win_amd64.whl
| Download URL | teptris-0.2.18-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 50.8 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
5c86aa4aff3254e786af94212eecc724f060f591ce206c3fd97cea85455208fc
|
|
BLAKE2b-256 checksum How to use checksums |
3753c39f861fbd26b90fa10883426c413ce7a135a0854748febb301e8ef3f91f
|
| 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.18-cp39-abi3-musllinux_1_2_x86_64.whl
| Download URL | teptris-0.2.18-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 |
9dc474fe32b8b239eae2983b4a4f9f858e89ccbb9a6ea0f926bb12eeb9b53c75
|
|
BLAKE2b-256 checksum How to use checksums |
2da056f67a7c9afb1972e2b98007966ee2943d79a09d79131761cf2e74fe466b
|
| 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.18-cp39-abi3-musllinux_1_2_armv7l.whl
| Download URL | teptris-0.2.18-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 |
54bfc80efe550dbdf7a583e521d86453c871b85edcca7069777e17b70bf58a7b
|
|
BLAKE2b-256 checksum How to use checksums |
d38bec1b2782d719dcdd1afc6aa68cfcff24a9b35c7f4a14efc52a3a164f6dc7
|
| 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.18-cp39-abi3-musllinux_1_2_aarch64.whl
| Download URL | teptris-0.2.18-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 |
2565c586834587824c1a5be338b05f4b53b9aa80e3214fb3bc27db86d6bf0c7c
|
|
BLAKE2b-256 checksum How to use checksums |
1d6ccbd81fca71db24f9f769877203e1358281a058a3b18fd523308493e3e347
|
| 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.18-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | teptris-0.2.18-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 |
14ffe6e355bbdd73c78f5e6400e42e54abe177f3ea0cce235240be1b59e7e1cb
|
|
BLAKE2b-256 checksum How to use checksums |
36240acbbc6724d148aa016ad184f82c00bf888b695dea701dad09e81f5e17b2
|
| 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.18-cp39-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
| Download URL | teptris-0.2.18-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 |
b6f9f5aa0212b66c3b79f2e6a85baf4814ec714ed0afb69b2e1b8a6b2eda570d
|
|
BLAKE2b-256 checksum How to use checksums |
b50a0938f7a778aa46f210337116e296d8b897fbaa947c3befea9a6f271df745
|
| 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.18-cp39-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
| Download URL | teptris-0.2.18-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 |
c9903c56bdd811b1a06e0f1035859d1c527afd3f9745dd96845be7cf25355330
|
|
BLAKE2b-256 checksum How to use checksums |
18818f2086331debbc847b2f5bb68c933860982ea78bf94c2c696e5699c4df97
|
| 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.18-cp39-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
| Download URL | teptris-0.2.18-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 |
416bc0a2c808f8655ae8c4ba35aec083baa197160066165ba42b3a50a32f76b5
|
|
BLAKE2b-256 checksum How to use checksums |
02f43f2c918eeb47729e64ca00c8000c0f9b92faf7ba9d0672c25e54b0e29f4b
|
| 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.18-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | teptris-0.2.18-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 |
82de2321e139857d4d70ceea13272187da61a41da5753795ac0f745a795d7916
|
|
BLAKE2b-256 checksum How to use checksums |
a4e92a117f445c5736c5e4eb985e7a46bd017f4ba10d6cbdd3641b398bfb2db0
|
| 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.18-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | teptris-0.2.18-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 |
56357ac4c053e02d5ce613c484d13bc36e3cee164bf500e322b4c152c6405c50
|
|
BLAKE2b-256 checksum How to use checksums |
d5aaaafc00d1f0baced59d09def5811b6a35af9c0cad6c572f4c46d0b5285f92
|
| 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.18-cp39-abi3-macosx_10_9_x86_64.whl
| Download URL | teptris-0.2.18-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 |
7ea0afb9308d5306b09fce700da8c27d2180baa2e8bfca71c534ad77479a8960
|
|
BLAKE2b-256 checksum How to use checksums |
946a7a11be51863cf24d756e65d7a496087d0b857856b2c0dd0f1a63f96600db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|