Skip to main content

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 8 cp39-abi3 wheels — 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; 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.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for teptris 0.2.16
File Size Uploaded
teptris-0.2.16.tar.gz 75.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for teptris 0.2.16
File
teptris-0.2.16-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details
teptris-0.2.16-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
teptris-0.2.16-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details
teptris-0.2.16-cp39-abi3-musllinux_1_2_aarch64.whl CPython 3.9 abi3 Linux musl 1.2+ ARM64 Details
teptris-0.2.16-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.16-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.16-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
teptris-0.2.16-cp39-abi3-macosx_10_9_x86_64.whl CPython 3.9 abi3 macOS 10.9+ x86-64 Details

Total release size:636.8 kB

Release files / teptris-0.2.16.tar.gz

Download URL teptris-0.2.16.tar.gz
Size 75.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4cadf2454520ddca9ce9c398b2ce2a1f29041ab9b76ae68510f2036783803840
BLAKE2b-256 checksum
How to use checksums
517cdf8cb8d1025d38e8f6bf45b2b38df3ea583534180d71d48cf108dead5bb6
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.16-cp39-abi3-win_arm64.whl

Download URL teptris-0.2.16-cp39-abi3-win_arm64.whl
Size 49.0 kB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
a8e126d975a337a75f32e902d4049bb4fbe16822b67fcb7a495d0d40e4afeabd
BLAKE2b-256 checksum
How to use checksums
be5ff0a4cd43c30dc0c5683368cb82ed9b9a2ed9c865a7e9a7ab4e81103e30b7
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.16-cp39-abi3-win_amd64.whl

Download URL teptris-0.2.16-cp39-abi3-win_amd64.whl
Size 50.6 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
1761c0b2b8601dee2974145951baf1fa97c0e6de4555ca4e637686d8b786a601
BLAKE2b-256 checksum
How to use checksums
cd6c98337cf50521c9580a8705fc3734411295231fac0fbcdedcbe204a8eb60e
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.16-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL teptris-0.2.16-cp39-abi3-musllinux_1_2_x86_64.whl
Size 81.1 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
24a4de2cdbd90ee79f2220a43822c0a537f057120fdf73ca79313030c9833c4b
BLAKE2b-256 checksum
How to use checksums
f66c5ba0e8b0cbe08b9962859ec2f1d7c6b3d44dbfc5cdd4ff0772d57d445739
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.16-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL teptris-0.2.16-cp39-abi3-musllinux_1_2_aarch64.whl
Size 86.6 kB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
617571f13112f3a9a70091c0ef40393e5e9a7176146d44db611054ea93b161a0
BLAKE2b-256 checksum
How to use checksums
c253b46249ad0f9a475d05fcacbbf9358b2fb125557cc27bf15ab48393d2b4ac
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.16-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL teptris-0.2.16-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 78.5 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
9cf7b77fbd71f69fce16b092ced42ba5a5ff548c8e5c3411565a9eb5ab578ca9
BLAKE2b-256 checksum
How to use checksums
dc207e21990821af9e2a5541c30fe237354f3afbcd3a8a0a83119538dc4173a0
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.16-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL teptris-0.2.16-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 84.5 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
82d3cca03c13ece84546f7235b5089f334d91a401aa5f526a77299896900b6af
BLAKE2b-256 checksum
How to use checksums
e11668d065d7dd874338fc6e4c000875fc8a309dd720ea2d717d946041d8a5fe
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.16-cp39-abi3-macosx_11_0_arm64.whl

Download URL teptris-0.2.16-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
0d6327d5a9c8cfbb7cb88903c22b56b9bd8572f2f147b2fef1109ec564dcae5e
BLAKE2b-256 checksum
How to use checksums
1f9d4eab9aff05b97a16d177e2768282e39b706f0c5703e9c1d964b687deb322
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.16-cp39-abi3-macosx_10_9_x86_64.whl

Download URL teptris-0.2.16-cp39-abi3-macosx_10_9_x86_64.whl
Size 65.0 kB
Tags CPython 3.9 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
30bb2d656058eba0241f27a360c16f2256a8d1b36aa60133685a0fac8d988d5a
BLAKE2b-256 checksum
How to use checksums
55ca3b48e4011906ab0f46d943b7e732f4a9bb7b8f6849d7602c3dabd1a883f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.5

Release history Release notifications | RSS feed

This release

0.2.16 This release

9 release files

0.2.15

9 release files

0.2.14

8 release files

0.2.13

8 release files

0.2.12

8 release files

0.2.11

8 release files

0.2.9

43 release files

0.2.8

43 release files

0.2.7

43 release files

0.2.6

43 release files

0.2.5

20 release files

0.2.4

20 release files

0.2.3

20 release files

0.2.2

20 release files

0.2.1

20 release files

0.2.0

12 release files

0.1.1

4 release files

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page