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.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| teptris-0.2.12-cp39-abi3-win_arm64.whl | CPython 3.9 | abi3 | Windows ARM64 | Details |
| teptris-0.2.12-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| teptris-0.2.12-cp39-abi3-musllinux_1_2_x86_64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ x86-64 | Details |
| teptris-0.2.12-cp39-abi3-musllinux_1_2_aarch64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ ARM64 | Details |
| teptris-0.2.12-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.12-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 | Details |
| teptris-0.2.12-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
| teptris-0.2.12-cp39-abi3-macosx_10_9_x86_64.whl | CPython 3.9 | abi3 | macOS 10.9+ x86-64 | Details |
Total release size:540.2 kB
Release files / teptris-0.2.12-cp39-abi3-win_arm64.whl
| Download URL | teptris-0.2.12-cp39-abi3-win_arm64.whl |
|---|---|
| Size | 46.7 kB |
| Tags | CPython 3.9 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
24b234d9843c828f381785f0534668d0c090e2fda05964886232ca980cac6f17
|
|
BLAKE2b-256 checksum How to use checksums |
ead595add6bfc3fc73c35cdb7c816e05aba93181baff73539966da01a98e55c6
|
| 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.12-cp39-abi3-win_amd64.whl
| Download URL | teptris-0.2.12-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 48.6 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
45e81bfa8f80cbb2f87714c6b2babd36dc0b878cfce2950bf666852ec6d1f212
|
|
BLAKE2b-256 checksum How to use checksums |
4b92186675776ad2d3aee882c53554a88304e5d98f70405e54ac4715432cc198
|
| 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.12-cp39-abi3-musllinux_1_2_x86_64.whl
| Download URL | teptris-0.2.12-cp39-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 78.7 kB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
468561226aa804b4bc92a2b3d273246436cdc4a6bd848ac87d51a38f856a6de4
|
|
BLAKE2b-256 checksum How to use checksums |
f72b1a35d9f99da216d32639eb7558f5b183d277d0b9cf599bb4fb96df405bee
|
| 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.12-cp39-abi3-musllinux_1_2_aarch64.whl
| Download URL | teptris-0.2.12-cp39-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 84.2 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
9e1c1dadf46603a7ecb969068175138273bb6bf4d6bf2220cf0220ebc1ade91d
|
|
BLAKE2b-256 checksum How to use checksums |
c399ad31bb6ded8ee8678597bbc1023249373a3213438e071ea926e556082cf5
|
| 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.12-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | teptris-0.2.12-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 75.9 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 |
d42c159f3d6248df94b38309590b6d1083ac5c478b514ed779fa941cbf005d60
|
|
BLAKE2b-256 checksum How to use checksums |
8f0667ad7f8e74238fe0acc244e03b23dbac5099e923a9fd57003b88de020927
|
| 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.12-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | teptris-0.2.12-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 82.1 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
e4834792738fbfa314ca56e02827f95a24b15e7acb145282bac66dcfa5f22c80
|
|
BLAKE2b-256 checksum How to use checksums |
b520b31b0012b6f64aaca80d7609559a8165a0ce6f31760e84a0ed425d6068fa
|
| 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.12-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | teptris-0.2.12-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 62.5 kB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0f43d5647f7897a3c8a98ebb766c64b8bd9d0e1fbe29c2a397168d907a974489
|
|
BLAKE2b-256 checksum How to use checksums |
d59dcd096cd743a7f98ffe1385941512f9555a1cf8b70656c219607aa67ddb67
|
| 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.12-cp39-abi3-macosx_10_9_x86_64.whl
| Download URL | teptris-0.2.12-cp39-abi3-macosx_10_9_x86_64.whl |
|---|---|
| Size | 61.5 kB |
| Tags | CPython 3.9 abi3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
7318ba0fbdce418f60b53e00290233d9d0834f7cd4852b52c0dca25791bfc087
|
|
BLAKE2b-256 checksum How to use checksums |
18dfde17c6e8dca6b10771adcf219c20cf91bd7ece9a04bfe2d8ddc81d0eb344
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|