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.15
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.15.tar.gz | 158.7 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| teptris-0.2.15-cp39-abi3-win_arm64.whl | CPython 3.9 | abi3 | Windows ARM64 | Details |
| teptris-0.2.15-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| teptris-0.2.15-cp39-abi3-musllinux_1_2_x86_64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ x86-64 | Details |
| teptris-0.2.15-cp39-abi3-musllinux_1_2_aarch64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ ARM64 | Details |
| teptris-0.2.15-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| teptris-0.2.15-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 | Details |
| teptris-0.2.15-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
| teptris-0.2.15-cp39-abi3-macosx_10_9_x86_64.whl | CPython 3.9 | abi3 | macOS 10.9+ x86-64 | Details |
Total release size:718.4 kB
Release files / teptris-0.2.15.tar.gz
| Download URL | teptris-0.2.15.tar.gz |
|---|---|
| Size | 158.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b7a0289691bd87713a298ee1b64fd63a289f82a75a9230fed02b11ba03423986
|
|
BLAKE2b-256 checksum How to use checksums |
f8382e164dcf93cfa6b8e1fa427b137acc7b4eeccae7d050bf2153ff25a90fb3
|
| 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.15-cp39-abi3-win_arm64.whl
| Download URL | teptris-0.2.15-cp39-abi3-win_arm64.whl |
|---|---|
| Size | 48.8 kB |
| Tags | CPython 3.9 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
1e685a686f0e7c3e36251af3fdfadb423619180334718da150692ffea2f94c57
|
|
BLAKE2b-256 checksum How to use checksums |
391a6ec0f63e4f36dfdc493e8693fd04512f1f2437af8cb8570528b96220bbc5
|
| 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.15-cp39-abi3-win_amd64.whl
| Download URL | teptris-0.2.15-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 50.4 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
2fb9b5e9c758beea54987018dd213e9876f6f2f293dc0117ca3d5f83b82039e9
|
|
BLAKE2b-256 checksum How to use checksums |
4ba1ebbea8d01b78d430d9ca05c9f1f65ff1dd46a1ac10ca793a940996e03966
|
| 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.15-cp39-abi3-musllinux_1_2_x86_64.whl
| Download URL | teptris-0.2.15-cp39-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 80.9 kB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
3ca3476fc6ede7a2e688c3f18d8b79edc1f7538b393ed8637ac9e488ed58fca3
|
|
BLAKE2b-256 checksum How to use checksums |
9d6eba5b40cfd77eaffefc77995f6398b01dcb3305c72d1a9b1e78463a616676
|
| 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.15-cp39-abi3-musllinux_1_2_aarch64.whl
| Download URL | teptris-0.2.15-cp39-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 86.5 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
f2d06ab5d7259cf91351c733ce63cf2f8dab6808d5a9934075c460cdb3c724c7
|
|
BLAKE2b-256 checksum How to use checksums |
cc457a67b389208028a2257d12851c47a54486a1ab820edfbbecf9938bde6361
|
| 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.15-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | teptris-0.2.15-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 78.3 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 |
0fe11995afad63406eac2ecb66079a7a012aa8a82433c3d6f77b9590368cad0b
|
|
BLAKE2b-256 checksum How to use checksums |
438aa753d83b5e8eedf59080b21163d83bb181e158c0f680d6f784cbd7e91b93
|
| 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.15-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | teptris-0.2.15-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 84.3 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
463e4ce441a52632db090cf5deab6d921d79bd7beab51ea1d21969e9cc54a08b
|
|
BLAKE2b-256 checksum How to use checksums |
c1a7aa7a71ad74b6ecf29aa849f8507d589b52a1d9c648558302e8e4a9b390b1
|
| 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.15-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | teptris-0.2.15-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 |
6c9119a32666ccbc31ca711f7efcd576caf4e2809365fe55a23f5675178ea8ff
|
|
BLAKE2b-256 checksum How to use checksums |
04354cf4c276d0898665a8142bab5b7d2177da61da8aba0d1b90500ffa215909
|
| 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.15-cp39-abi3-macosx_10_9_x86_64.whl
| Download URL | teptris-0.2.15-cp39-abi3-macosx_10_9_x86_64.whl |
|---|---|
| Size | 64.8 kB |
| Tags | CPython 3.9 abi3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
3c9204c12ae104f71f230cf000dd60b2511a325d7f1723b2f16ea334b960d989
|
|
BLAKE2b-256 checksum How to use checksums |
75762b811105c1ea2057f695871a51d96eb87dcd15fa9f5a3b4113c8e519dd9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|