This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.8.1 instead.
tet-py
Python bindings for Tetration — mmap-friendly .tet tensors and the JSON/TOML query engine.
| Install | pip install tet-py → import tet |
| Docs | docs.tetration.sh/python |
| Rust core | tetration (linked at build time) |
| CLI | tet binary from the main repo |
Quick start
pip install tet-py
python -c "import tet; print(tet.__version__, tet.core_version())"
import tet
with tet.open("data.tet") as f:
print(f.mean("temperature"), f.quantile("temperature", 0.5))
arr = f.read_numpy("temperature") # ram (memmap for full-width raw slabs)
z = f.transform.to_numpy.zscore("temperature") # transform → ndarray
More examples: Python quick start · operations · NumPy
Convert
tet.convert writes one .tet from a foreign file. .npy, multi-member .npz, and .csv / .tsv are in the core wheel. Other formats are optional extras: tet-py[h5], [netcdf], [zarr], [parquet], or [convert] for all of them.
src may be s3://bucket/object.ext (full download, then the same importer) or an s3:// Zarr v2/v3 prefix (each chunk is fetched as the zarr library reads it). Credentials stay in TETRATION_S3_*.
| Extra | What it imports |
|---|---|
| (core) | .npy (one dataset), .npz (every member), .csv / .tsv (numeric + category text columns) |
h5 |
HDF5 datasets, groups as parent/child names |
netcdf |
NetCDF variables, including groups |
zarr |
Zarr v2 and v3 directory stores |
parquet |
Parquet numeric columns and UTF-8 category columns |
Compared with Rust tet convert: Python does not apply CF scale/offset, chunks the whole array unless you pass chunk_shape, and can read codecs the Rust importer skips when the extra library can decode them. Columns that are not layout-v1 numeric (or category text) are omitted.
Export
tet.export (and TetFile.export) writes a .tet to HDF5, NetCDF, or Zarr. Same optional extras as convert ([h5], [netcdf], [zarr], or [export] for those three). Dense numeric datasets only; carries dim_names and basic string attrs when present. Values are densified via read_numpy — prefer Rust tet export when you need native HDF5/NetCDF or chunk-preserving Zarr.
Packages
tet.open("pkg.tet.d") reads the generation named by CURRENT (packed.tet). tet.ingest copies a sealed .tet into staging, and tet.publish seals those parts and updates CURRENT. tet.pack(package, "out.tet") copies that sealed image to a standalone file; pass remove_package=True to delete the .tet.d after a verified copy.
For an S3-compatible backend:
from tet import S3Store
store = S3Store.connect(endpoint="http://127.0.0.1:9000", bucket="…",
access_key_id="…", secret_access_key="…", prefix="demo")
store.ingest("part.tet", session_id="s0")
store.publish(["part"])
f = store.open("current") # pin; later publish does not retarget f
# or, with TETRATION_S3_* set: tet.open("s3://bucket/demo")
Endpoint and credentials are arguments or TETRATION_S3_* (not in the URI). tet.open("s3://bucket/prefix") range-reads the pinned package. S3Store.open still downloads packed.tet. See docs/operations.md.
Documentation
| Topic | Where |
|---|---|
| Install, API, NumPy sinks | docs.tetration.sh/python |
| Query ops (local mirror) | docs/operations.md |
| Release notes | CHANGELOG.md |
| Format + query wire | docs.tetration.sh · tetration repo |
| Roadmap | docs.tetration.sh/roadmap |
Develop
mise run sync # uv sync --extra dev --extra convert
mise run develop # maturin develop
mise run test # pytest -q
mise run mypy
mise run check # fmt + clippy + mypy + pytest
Requires Python 3.11+ and Rust 1.95+ (.mise.toml). Fixtures: tests/fixtures/.
License
MIT OR Apache-2.0, same as tetration.
Metadata
Release files for tet-py 0.7.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| tet_py-0.7.3.tar.gz | 75.8 kB | Without provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| tet_py-0.7.3-cp311-abi3-win_amd64.whl | CPython 3.11 | abi3 | Windows x86-64 | Details |
| tet_py-0.7.3-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| tet_py-0.7.3-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.11 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| tet_py-0.7.3-cp311-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl | CPython 3.11 | abi3 | macOS 10.12+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64, macOS 10.12+ x86-64 | Details |
Total release size: 27.7 MB
Release files / tet_py-0.7.3.tar.gz
| Download URL | tet_py-0.7.3.tar.gz |
|---|---|
| Size | 75.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bcd3042a1683fe959c8343a4eb7150063dfd43b46754074e95339f53172c4839
|
|
BLAKE2b-256 checksum How to use checksums |
b4de6f732a9cf6f9f7c80470d27bddd4b34336de549e42771ad3f9a588e419d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tet_py-0.7.3-cp311-abi3-win_amd64.whl
| Download URL | tet_py-0.7.3-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 5.0 MB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
ac5db7f16191482c8f290f131cd85f2abb12025daa010295d356faba35434d64
|
|
BLAKE2b-256 checksum How to use checksums |
0ad0e7ea8969e27698ebec4028c3b4f31f2dad2146d2cc986b7ea53850059992
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tet_py-0.7.3-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tet_py-0.7.3-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 6.1 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
e69c793462fcd6a21f5735309d9fe939b8bdc8a52e72200933c71c4051db0fdf
|
|
BLAKE2b-256 checksum How to use checksums |
e4ccbe2726a45a242961824cd50d6ca65f61f0465711cb1fc4a192b7ebda2db6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tet_py-0.7.3-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | tet_py-0.7.3-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 5.9 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
f49ccf4fb5529eaa0956f1d91aa407b25f7266fb47c78339dc9393f7ead32231
|
|
BLAKE2b-256 checksum How to use checksums |
e5af6c04a02ca3b97738304b3430801e702834dd85cb242e74d92f7f2df6902f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tet_py-0.7.3-cp311-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | tet_py-0.7.3-cp311-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 10.6 MB |
| Tags | CPython 3.11 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7a4b91325348f50c58063a754e3e1a498cbf43ce270f75df196c503a3c06fca1
|
|
BLAKE2b-256 checksum How to use checksums |
44d295a890aa4aa4c457ab03f42ff0c664c2d189ef3be252111874911f752812
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Security for tet-py 0.7.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.