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.14
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.14-cp39-abi3-win_arm64.whl | CPython 3.9 | abi3 | Windows ARM64 | Details |
| teptris-0.2.14-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| teptris-0.2.14-cp39-abi3-musllinux_1_2_x86_64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ x86-64 | Details |
| teptris-0.2.14-cp39-abi3-musllinux_1_2_aarch64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ ARM64 | Details |
| teptris-0.2.14-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 | Details |
| teptris-0.2.14-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.14-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
| teptris-0.2.14-cp39-abi3-macosx_10_9_x86_64.whl | CPython 3.9 | abi3 | macOS 10.9+ x86-64 | Details |
Total release size:557.2 kB
Release files / teptris-0.2.14-cp39-abi3-win_arm64.whl
| Download URL | teptris-0.2.14-cp39-abi3-win_arm64.whl |
|---|---|
| Size | 48.0 kB |
| Tags | CPython 3.9 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
df3014771f4349f265a8d6509ea2ebe08790e8d996050d20a6831626749c0c69
|
|
BLAKE2b-256 checksum How to use checksums |
b06f78ff843cb17d7dbaac8269f84ed8d029f9fcb6c690633b32f88dd1107fec
|
| 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.14-cp39-abi3-win_amd64.whl
| Download URL | teptris-0.2.14-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 49.9 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
8602aaad46dfe1df43905624c9ac973d6c1065e7667d5dc303863ba0aee6c4c8
|
|
BLAKE2b-256 checksum How to use checksums |
66e4f105dd905160fbb468b95da4acf20e7344de0ecb7a9933c5bde4e42e4c4e
|
| 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.14-cp39-abi3-musllinux_1_2_x86_64.whl
| Download URL | teptris-0.2.14-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 |
7a314641dea7a4e22e7f9d7309ad008efa5b629c4fbb4eb76aa85274233e33fc
|
|
BLAKE2b-256 checksum How to use checksums |
480eaec02aec3ab0e6062409ebc0443d1ae5f002e741a7674499c1561995a9d1
|
| 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.14-cp39-abi3-musllinux_1_2_aarch64.whl
| Download URL | teptris-0.2.14-cp39-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 86.3 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
46762649abfd425466f43cf398d9fa3901723292f7d6a55f8d132d355143b5b3
|
|
BLAKE2b-256 checksum How to use checksums |
8589c4c3fed04cc86aa8099a23fb68c2f0cafc1737740cedf201f2981622bfc0
|
| 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.14-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | teptris-0.2.14-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 78.2 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 |
998f3a90d13a5e531f2f76f209580b64281cdc2bddafbb7822884f564402852a
|
|
BLAKE2b-256 checksum How to use checksums |
436f3a5a809b61bcdbabb11aee4b24251e033b43cc989eb382db599d051e86dc
|
| 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.14-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | teptris-0.2.14-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 84.1 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
b28ce68c2b52193cf5802bd9c397b44b151ab6249475511e7d73aeba165f759a
|
|
BLAKE2b-256 checksum How to use checksums |
f862a61b2ef7afb6085848b929747791e5133fe937d97855eb4bdf0a6fe455b4
|
| 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.14-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | teptris-0.2.14-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 65.7 kB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
54d5bbc4fd4f7c3f04f2edcf398cd36e1b9b3462285fe6e6292bc27ec2a723bb
|
|
BLAKE2b-256 checksum How to use checksums |
91074a60e5553c085e580145abb9104f0ca78e77a11686b508a94869fde51d89
|
| 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.14-cp39-abi3-macosx_10_9_x86_64.whl
| Download URL | teptris-0.2.14-cp39-abi3-macosx_10_9_x86_64.whl |
|---|---|
| Size | 64.0 kB |
| Tags | CPython 3.9 abi3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
fa3f0c91d098ec8c3eac4ae7d450be5971f1057f3f5750fe420ccf20c414a9b4
|
|
BLAKE2b-256 checksum How to use checksums |
17d53653d9e303b1507c8b4173a8a646d6a2c89570e97e6dbad89ef99f1599d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.5
|