Skip to main content

casacure and python-casacure

Crates.io Crates.io downloads PyPI PyPI downloads

This repository contains two user-facing packages that share one engine — a pure-Rust implementation of the CASA table system that reads and writes real casacore Measurement Sets and tables without needing the C++ casacore library:

Package Kind Install Entry point
casacure Rust crate cargo add casacure (crates.io) use casacure;
python-casacure Python package pip install casacure (PyPI) import casacure.tables

"python-casacure" is the name of the Python package. Its published PyPI name stays casacure (module casacure.tables) — the Python package is not renamed. The Python package is built from the internal crates/casacure-python crate, which is not published to crates.io and is not intended for direct use.

Both packages expose the same capabilities — the StandardStMan, IncrementalStMan and TiledColumnStMan on-disk formats, table metadata, keywords and subtable linkage, and a TaQL subset — without building or linking the C++ casacore library. Install is fast (a wheel or the crate), there is no multi-hour C++ dependency build, and it works everywhere a Rust cdylib can be built, including ARM (aarch64).

The Python binding's casacure.tables is an interface-compatible replacement for casacore.tables, so existing tooling — most notably dask-ms — can run on casacure unchanged (CPython 3.9–3.14; wheels for Linux, macOS and Windows).

On-disk formats StandardStMan, IncrementalStMan, TiledColumnStMan — read and write
Table surface columns (scalar / fixed / variable-shape arrays, strings, records), keywords, dminfo, subtable linkage (::SUBTABLE)
TaQL SELECT (WHERE / ORDERBY / GROUPBY / UNIQUE) and CREATE TABLE
Measurement Sets full MS + 17 standard subtable schemas, default_ms, writable in place
Interop tables written by casacure open in real casacore and vice-versa

Status is tracked in ARE_WE_CURED.md; the outline is in CASACORE_TO_CASA_RS.md.

Why choose casacure?

  • Drop-in replacement for casacore.tables. casacure.tables mirrors the python-casacore interface, so existing packages — most notably dask-ms — run unchanged. The dask-ms 0.2.32 test suite runs against it — 218 of 219 tests on the casacure backend (2026-10-09; the one divergence is variable-shape CHAN_FREQ row grouping in issue #19) — reading, writing and updating real Measurement Sets.
  • No C++ casacore library. The table engine is pure Rust. There is no casacore build, no multi-hour C++ dependency compile, and no Fortran/C system library (wcs, measures, images, …) to install. pip install casacure is the entire setup; building from source needs only a Rust toolchain plus maturin — still no C++ compiler.
  • Real on-disk interop. casacure is byte-compatible with the casacore table formats it implements (StandardStMan, IncrementalStMan, TiledColumnStMan): tables it writes open in real casacore and vice-versa, verified against casacore 3.8.1 — including full Measurement Sets with their subtable tree and multi-manager tables.
  • Endian-correct anywhere. The engine reads and writes both big- and little-endian tables, so it behaves identically on any host endianness.
  • Self-contained wheels. Prebuilt wheels for Linux, macOS and Windows on CPython 3.9–3.14 — including aarch64, the machines where casacore is most painful to build (see "Platforms and architectures").
  • One engine, two packages. The same Rust core ships as the casacure crate on crates.io (Rust) and as the casacure Python package on PyPI.
  • Memory-safe by construction. A Rust implementation removes the segfault and memory-management warts of the C++ python-casacore bindings: for example, putcol accepts numpy object arrays directly — behaviours that crash the C++ build are absent by construction.
  • TaQL included. A real TaQL subset ships in the same package: SELECT with WHERE / ORDERBY / GROUPBY / HAVING / UNIQUE / subqueries, a casacore-style function library (numeric/string/date-time/stats families, g* aggregates, LIKE / IN), and the write statements (UPDATE, DELETE, INSERT INTO, ALTER TABLE, DROPTABLE, SHOW/CALC) — all reachable through taql() / table.taql(), so no separate query layer is needed.

Using casacure in place of casacore

casacure provides a python-casacore-compatible surface. The dask-ms 0.2.32 test suite runs against it — 218 of 219 tests on the casacure backend (2026-10-09; the one divergence is variable-shape CHAN_FREQ row grouping, issue #19) — including reading, writing and updating real Measurement Sets.

Direct API

casacure.tables mirrors casacore.tables:

import numpy as np
import casacure.tables as ct   # drop-in for `import casacore.tables`

t = ct.table("test.tab",
             {"TIME": {"valueType": "double", "option": 0, "comment": "",
                       "keywords": {}},
              "DATA": {"valueType": "dcomplex", "option": 0, "comment": "",
                       "ndim": 2, "shape": [8, 4], "keywords": {}}},
             nrow=3)
t.putcol("TIME", np.array([0.0, 1.5, 3.0]))
t.putcol("DATA", np.random.rand(3, 8, 4).astype(np.complex128))
t.flush()

r = ct.table("test.tab", ack=False)          # read-only view
print(r.getcol("DATA").shape)                # (3, 8, 4)

q = ct.taql("SELECT * FROM $1 WHERE TIME > 1.0", tables=[r])
print(q.getcol("TIME"))

ms = ct.default_ms("observation.ms")         # full MS + 17 subtables

Also available: taql CREATE TABLE, getcell/putcell, getvarcol/ putvarcol, getcolslice/putcolslice, getkeywords/putkeywords, addcols, addrows, required_ms_desc/complete_ms_desc, default_ms_subtable, tablefromascii.

Units and quantities

casacure.quanta mirrors casacore.quanta — the unit system and Quantity (a value with a unit), with SI conversion, arithmetic, the time/angle value classes, and the physical-constant / unit / prefix tables:

import casacure.quanta as qa        # drop-in for `import casacore.quanta`

q = qa.quantity(1.5, "Jy")          # Quantity
q.get_value("mJy")                  # 1500.0
q.canonical()                       # '1.5e-26 kg.s-2'
qa.quantity(3, "km") + qa.quantity(500, "m")   # 3.5 km
qa.quantity(45, "deg").formatted()  # '+045.00.00'
qa.quantity(51544, "d").to_unix_time()  # 946684800.0 (2000-01-01T00:00Z)

casacure.measures implements the direction/position/epoch/do_frame/ measure/posangle/get_value subset that DDFacet and killMS use, with J2000 <-> AZEL/AZELGEO held to <1 arcsec of astropy's AltAz over 1926-2126 (worst measured ~0.02"). The IERS Earth-orientation data and the Earth ephemeris are compiled in — there is no casadata/measures data directory to install or configure (ratt-ru/QuartiCal#330). The full casacore.measures engine (the uvw engine and the wider reference-frame catalogue) is not implemented; the accuracy contract and the documented differences from casacore are in MEASURES_ACCURACY.md.

Driving dask-ms on casacure

Applies to dask-ms 0.2.x (pip install "dask-ms<0.3"). dask-ms 0.3.0 (now in alpha) opens tables through arcae instead of casacore.tables, so neither routing below has an import site to intercept there — the 0.3 integration point is tracked in issue #13 and ratt-ru/dask-ms#392.

dask-ms imports casacore.tables; point it at casacure in one of two ways:

1. A drop-in casacore shim — a two-file package that re-exports casacure, placed on PYTHONPATH ahead of any real python-casacore (this is exactly what the project's own tests/daskms_smoke.py runs):

casacore/__init__.py          # (empty)
casacore/tables.py            # from casacure.tables import *

2. Backend selection (the cleaner upstream path) — an env-gated DASK_MS_BACKEND=casacure that aliases casacore.tables → casacure.tables in-process. It is a ~10-line sys.modules swap in dask-ms's __init__, validated against the full dask-ms suite; it is the prototype for the upstream store-dispatch change.

Either way, the dask-ms workflow is unchanged:

import dask
import dask.array as da
import numpy as np
import xarray as xr
from daskms import xds_from_ms, xds_to_table
import casacure.tables as ct

n = 4
data = (np.random.rand(n, 8, 4) + 1j * np.random.rand(n, 8, 4)).astype(np.complex64)
ds = xr.Dataset({
    "TIME":     (("row",), da.from_array(np.array([0.0, 1.0, 2.0, 3.0]), chunks=n)),
    "ANTENNA1": (("row",), da.from_array(np.array([0, 1, 0, 1], dtype=np.int32), chunks=n)),
    "DATA":     (("row", "chan", "corr"), da.from_array(data, chunks=(n, 8, 4))),
}, coords={"row": np.arange(n)})

# Create a Measurement Set from datasets (partitioned, chunked writes).
dask.compute(xds_to_table(ds, "example.ms", descriptor="ms"))

# Read it back as lazily-chunked dask arrays.
xds = xds_from_ms("example.ms", columns=["TIME", "ANTENNA1", "DATA"])[0]

# Modify in xarray and write back in place.
xds2 = xds.assign(DATA=(xds.DATA.dims, xds.DATA.data * 2))
dask.compute(xds_to_table(xds2, "example.ms", ["DATA"]))

# The result is a real MS: open it with casacure (or real casacore).
t = ct.table("example.ms", ack=False)
print(t.getcol("DATA")[0, 0, :2])   # doubled visibilities

Because casacure is implemented in Rust, none of this needs a C++ toolchain: the entire dependency stack for reading and writing Measurement Sets is the published wheel.

Install

pip install casacure          # prebuilt wheels once published
# or build from source:
pip install .                # maturin builds the cdylib for your interpreter

The Rust core is published to crates.io as the casacure crate; add casacure = "3.8" to Cargo.toml (the crate tracks the casacore interface: 3.8 == casacore 3.8.x) if you want the table engine in Rust directly.

Versions are <casacore-major>.<casacore-minor>.<casacure-patch> (e.g. 3.8.2): the first two digits are the casacore interface level the package implements (3.8 == casacore 3.8.x), and the last digit is casacure's own patch counter — incremented on every fix/feature release and reset to 1 when the mirrored interface moves (3.8 → 3.9 …). The crates.io casacure crate and the PyPI wheel share the same three-part version, so a release publishes both together. casacure.__version__ reports the same number.

pip install casacure on Python 3.9–3.14 installs a self-contained package — no casacore C++ library, no wcs/measures harness — which is the point: MS support on machines (including aarch64) where casacore is painful to build.

Dependencies

Rust core (casacure crate). A single small runtime dependency: thiserror (error-type plumbing). serde / serde_json are dev-only dependencies, used by the casacore-comparison fixture tests (crates/casacure/tests/compat_fixtures.rs). The core is pure Rust and compiles for any Rust target; there is no unsafe system linkage.

Python bindings (casacure wheel). Built from crates/casacure-python, which links the two standard Rust↔Python bridge crates — pyo3 (CPython binding, 0.27) and numpy (0.27) — against the core crate. The installed Python package has exactly one runtime dependency — numpy — declared in pyproject.toml (dependencies = ["numpy"]): getcol/putcol/getvarcol return and accept the same numpy-typed values as python-casacore (which also hard-depends on numpy), so pip install casacure pulls it automatically and the casacure-test / casacure-bench console scripts run out of the box. Everything else — including the C++ casacore library — is absent.

Explicitly not needed — the point of the project:

  • the C++ casacore library or its build system (no wcs, measures, images harnesses);
  • any system C / Fortran library or header — the only native code is Rust;
  • a C++ toolchain to install or to build wheels.

Building from source adds only the Rust toolchain plus maturin (the pyproject [build-system]): pip install . compiles the cdylib for your interpreter without invoking a C++ compiler.

Platforms and architectures

The pure-Rust core is portable to any Rust target and handles both byte orders, so it runs on any architecture where a Rust toolchain exists. On top of that, the Publish Python package workflow (maturin) builds prebuilt wheels for the following matrix:

Platform Architectures CPython versions
Linux (manylinux) x86_64, aarch64 3.9 – 3.14
macOS aarch64 (Apple Silicon) 3.10 – 3.14
Windows (MSVC) x86_64 3.10 – 3.14

Notes:

  • Linux wheels are built from the manylinux image, whose --find-interpreter pass covers every supported CPython (3.9–3.14) in a single build per target; the source distribution is produced from the x86_64 Linux job.
  • Intel-macOS (x86_64) wheels are deliberately not built: GitHub no longer hosts Intel-mac runners. Intel Mac users install the source distribution, which still needs only Rust + maturin — no C++.
  • The Rust casacure crate itself is endian- and target-agnostic: cargo builds it for any supported target (the CI gate runs on Linux, but the engine's portability is what makes the cross-compiled wheel matrix above possible).

Releasing

Releases are driven by tasks.py (in the spirit of ../meerkat_imaging's release chain): invoke release runs the whole CI gate locally in Docker before a tag is pushed, so a CI failure on a release tag becomes a local failure the operator sees first. Requires invoke, plumbum, docker, gh (authenticated), cargo, rustup.

invoke version                          # show the version + the tag it would make
invoke test                             # pre-release gate: build the image + run the CI `test` job
invoke test --all-jobs                  # + `tsan` (nightly) + `freethreaded` (3.14t) — the full CI gate
invoke release                          # bump patch, run tests, tag vX.Y.Z, push, wait for publish
invoke release --no-bump                # tag the current version as-is
invoke release --version 3.8.30         # tag an explicit version (implies --no-bump)
invoke release --all-jobs               # release after running all three CI jobs locally

Version + tag are generated automatically. invoke release bumps the patch level (3.8.22 → 3.8.23) in pyproject.toml + Cargo.toml (the workspace version and the casacure crate dependency), moves the CHANGELOG.md entries that accumulated under ## [Unreleased] beneath a new ## [3.8.23] - <today> heading (leaving a fresh ## [Unreleased] on top), commits both as release: bump to 3.8.23, and tags v3.8.23. A ## [3.8.23] section that already exists — hand-written release notes, or a re-run — is left untouched. The version scheme is <casacore-major>.<casacore-minor>.<casacure-patch> (see Install); only the patch level is auto-bumped — moving the interface version (3.8 → 3.9) is deliberate and done by hand. --no-bump tags the tree's current version and warns if the changelog has no section for it; --version X.Y.Z tags exactly that and implies --no-bump, since the tree must not drift from an explicitly named tag.

The pre-release gate is Dockerfile, which reproduces the test job of .github/workflows/ci.yml in a clean container with real python-casacore available (needed to generate the fixture tables and to run the real-casacore comparison tests):

Step What it runs
build tests/make_fixtures.py → maturin build + pip install .
at build time cargo test --workspace, cargo fmt --check, cargo clippy --workspace --all-targets -- -D warnings
docker run PYTHONPATH=tests/shim pytest tests/ (the casacore comparison suite)

The image runs as a non-root tester user so the permission tests (chmod 0444 write barriers) actually deny writes — root would ignore them. invoke test --sanitizers and --freethreaded reproduce the tsan (nightly + ThreadSanitizer) and freethreaded (no-GIL CPython 3.14t) CI jobs as docker run commands on the same image.

After the gate passes, invoke release commits the release, tags vX.Y.Z, pushes main + the tag — which fires ci.yml (its v* tag trigger), publish-python.yml and publish-rust.yml — and polls gh run list / gh run view until all three go green, failing loudly if any does not, rather than leaving a half-published release. A tag that is already on origin is verified and skipped, so the task is idempotent and safe to re-run.

CHANGELOG.md notes are written as you go, under ## [Unreleased]; invoke release stamps the heading for you (see "Releasing" above), so the release commit carries the version bump and the newly dated notes together. Hand-written release notes win: a ## [X.Y.Z] section that already exists is left alone.

Development

  • TODO.md — the live task list; CHANGELOG.md records completed steps.
  • ARE_WE_CURED.md — progress / test counts.
  • CASACORE_TO_CASA_RS.md — the implementation outline (the upstream casacore/ submodule is the reference C++ source and is never modified).
  • tests/daskms_smoke.py — end-to-end dask-ms MS create/read/write smoke; tests/test_types_compat.py — type-system comparison vs real casacore.

Rust work is linted with clippy and rustfmt as we go — CI runs these as gates (.github/workflows/ci.yml), so run them locally before committing:

cargo fmt
cargo clippy --workspace --all-targets -- -D warnings

The toolchain is pinned to the current stable channel in rust-toolchain.toml (so local lints always match CI's latest stable); keep it current with rustup update stable. A pre-push hook (.githooks/pre-push) runs the full gate — rustfmt, clippy with -D warnings, cargo test --release, and the pytest suite against a freshly built extension — before anything reaches the remote. Enable it once per clone (git hooks are not tracked):

git config core.hooksPath .githooks

clippy is run with -D warnings (warnings are errors); cargo fmt keeps the formatting canonical. Everything merged must pass both.

Metadata

Release files for casacure 3.8.34

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

Source distribution (sdist)

Source distribution for casacure 3.8.34
File Size Uploaded
casacure-3.8.34.tar.gz 428.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for casacure 3.8.34
File
casacure-3.8.34-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
casacure-3.8.34-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ ARM64 Details
casacure-3.8.34-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
casacure-3.8.34-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
casacure-3.8.34-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
casacure-3.8.34-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
casacure-3.8.34-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
casacure-3.8.34-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
casacure-3.8.34-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
casacure-3.8.34-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
casacure-3.8.34-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
casacure-3.8.34-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
casacure-3.8.34-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
casacure-3.8.34-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
casacure-3.8.34-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
casacure-3.8.34-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
casacure-3.8.34-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
casacure-3.8.34-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
casacure-3.8.34-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
casacure-3.8.34-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
casacure-3.8.34-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
casacure-3.8.34-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
casacure-3.8.34-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
casacure-3.8.34-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
casacure-3.8.34-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details

Total release size: 53.5 MB

Release files / casacure-3.8.34.tar.gz

Download URL casacure-3.8.34.tar.gz
Size 428.3 kB
Tags Source
SHA-256 checksum
How to use checksums
733ab87caf8b22238ccca021fe51d5d9266fac13b480bc43b069ceebd32a6f3e
BLAKE2b-256 checksum
How to use checksums
33f67cadc9bdba1a6e2178828bbaedb93619a8547f5043c7de0856b88d8307e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL casacure-3.8.34-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.2 MB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
ef78985a562aa3f0deb9bac92b8c8f09f31ede21807848173c01f08bcbefc9f1
BLAKE2b-256 checksum
How to use checksums
3959258c01d6c83fde36c8127bee2914efdaaef20a8330e1af237f32748228c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL casacure-3.8.34-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.1 MB
Tags Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
674096d430ba2f1fc3de222dde2c206011be7a98e29fc02d68ec3a75804b99fc
BLAKE2b-256 checksum
How to use checksums
2c020c8408a60ddce08ebddf0de54fca67f747754cca7f9ed8e1e17646f4e8f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL casacure-3.8.34-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ffad43646dea45c66eef5550514614570778997f417641206731bbfca7da8e26
BLAKE2b-256 checksum
How to use checksums
be8957a308ac017befbe70c3d1e4aaf4b80dd24c72b8c39632f2bd0e27fe8c95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL casacure-3.8.34-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
3187697c32b2afccf7c796b87c59c7e9b889efbd98de21a6f02ae0a53b174da2
BLAKE2b-256 checksum
How to use checksums
525b2b1c2f82c04e9c600005c6d87a66056bb665d8c40303790a1fde123221e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp314-cp314-win_amd64.whl

Download URL casacure-3.8.34-cp314-cp314-win_amd64.whl
Size 2.1 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
c49fd6ac4ffb4a7a98fe69e8b7a59c8443f14380785c1d75b9eaeaf888a2c67c
BLAKE2b-256 checksum
How to use checksums
de8a93f40c7928bc1d0e6f20d0292855de18d1c8a036212ac0c300a1144efa43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL casacure-3.8.34-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.2 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f1b7156296d81b46cdb6b843ddc12a18246aa66010a4ecdb8594dbe14c447420
BLAKE2b-256 checksum
How to use checksums
4497b6b35ad8e75d359d2c28a041e09b084849db295e1f3cb7298f932cb9eb25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL casacure-3.8.34-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.1 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
902a9aee952423ce3b0c14dd7ac0b872a70f613b1c278bdad9b585efb3cba96d
BLAKE2b-256 checksum
How to use checksums
ef8fd442d1d1c6b3eb80c24bf94350e02da607ca5d723143b5d706e38d12b7ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp314-cp314-macosx_11_0_arm64.whl

Download URL casacure-3.8.34-cp314-cp314-macosx_11_0_arm64.whl
Size 2.1 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
967c36ab1ed702f912f32891d4b88179cdd9a0bf7401c7c0b8bf3399079858f6
BLAKE2b-256 checksum
How to use checksums
c1cf8b4f9346d154b8926fccc6a570b57668b671769c9675a7a2f1d3b0650dca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp313-cp313-win_amd64.whl

Download URL casacure-3.8.34-cp313-cp313-win_amd64.whl
Size 2.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
46075aa9e0d4728ae6a928631fa361c9b55f6a7876f9ab4bdc9a55f91af39930
BLAKE2b-256 checksum
How to use checksums
4d7ff99da52fea6306f407108c2d0befd2fb8c003c78b086b9944dc52f3c563d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL casacure-3.8.34-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.2 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
341eaf59c7aca3e9d27085092bf22b464881ed110c28e18e32e5bbc36c6810d3
BLAKE2b-256 checksum
How to use checksums
3f4ccd91e5a29653ae1e18d5b4b101a2651ef635c9a9f31ecd636cb103a1daa7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL casacure-3.8.34-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.1 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
4e7dd1c390b0119192d2726dd8a5af142ece2b932a86c4478de561641d1d1c0b
BLAKE2b-256 checksum
How to use checksums
832d677f84e534ecf8dd233b56b57a3e62eae6c986e12f976df85424c3115156
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp313-cp313-macosx_11_0_arm64.whl

Download URL casacure-3.8.34-cp313-cp313-macosx_11_0_arm64.whl
Size 2.1 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
505df7f42893d12b36b350b6ccb227c8d75b32e4d3aff63c937668b030128e00
BLAKE2b-256 checksum
How to use checksums
12b36ef2bbaa8e77f5334681b3e54a13a064bc77c5a0458f7c307af3d173edd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp312-cp312-win_amd64.whl

Download URL casacure-3.8.34-cp312-cp312-win_amd64.whl
Size 2.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
33d50b9c57d5c77036eed0212f49e141402e3fc581bce6795fc2e73aeed8a929
BLAKE2b-256 checksum
How to use checksums
74ee24e34e5fff0a53d9bf543831cbbbddff203423442550656b16683bb9fbd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL casacure-3.8.34-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.2 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4017f86e7d43dbcd4651c2fb120d534039b4a418d616acbb103a999e3ba38f57
BLAKE2b-256 checksum
How to use checksums
48a8afb46afb4840d411f5b4fdb7b7a2f34ad06dff0d51a7abcedc501a1c5692
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL casacure-3.8.34-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.1 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
c2cac3ac4fe89181d961ebc99417a2b01cd446cc8853e05b80ec975408f967b5
BLAKE2b-256 checksum
How to use checksums
f4397ca1b564210453387c418105945a9a2bf85c829fce70ff98c3f648bd7839
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp312-cp312-macosx_11_0_arm64.whl

Download URL casacure-3.8.34-cp312-cp312-macosx_11_0_arm64.whl
Size 2.0 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
84508ed9a742f8037ce06cd69c9a482816bc5239e349e0b33946cf9bfa97df88
BLAKE2b-256 checksum
How to use checksums
299e3b1d047b08c1be071aded336fd8e8a026d22701f70dcf0ee5bc075b301db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp311-cp311-win_amd64.whl

Download URL casacure-3.8.34-cp311-cp311-win_amd64.whl
Size 2.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
44abf6bffd216d9ed844a1a8b74c1f775b9c655710f4bac0260510bae31d4c2a
BLAKE2b-256 checksum
How to use checksums
48e0a799bacf7bd87df2dda90c94d9002ace3cbbdc3b3d9f2c5feb66096e59b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL casacure-3.8.34-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.2 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7a55afb4ccacb4e31cb9c16e7636c7f878c790740b8bbdc93187d3bcf3cffd22
BLAKE2b-256 checksum
How to use checksums
3042dc018e6bc56e5a77beaae265367fef0626dc7852cbebb3d226f95c047880
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL casacure-3.8.34-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.1 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
5716fa7f3c018011238716f47b089be649298b57bf1b815a9bd5b21b9cb9cb68
BLAKE2b-256 checksum
How to use checksums
20ffbd0a4dbaa3469ec360b4c0a7ac2dd0af7463fec456478e63018cad13f3e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp311-cp311-macosx_11_0_arm64.whl

Download URL casacure-3.8.34-cp311-cp311-macosx_11_0_arm64.whl
Size 2.1 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4a91f6d7a4176bdbc53ddd5d2297ba3a0530b857a8ef2b7cd78fb96c44c447b0
BLAKE2b-256 checksum
How to use checksums
8274ff5db19d6a329d54bf01ed39d12d5165744c4b65f440a730ccb16401dd12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp310-cp310-win_amd64.whl

Download URL casacure-3.8.34-cp310-cp310-win_amd64.whl
Size 2.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
044ae3b4618a05aa6c9db7f5cace58ec40e9d34eeb9a5d65545b0cf021b984c3
BLAKE2b-256 checksum
How to use checksums
da0184d72a5fc1104f4d0352301278f97222c3de833325507e3b4848fd9c4303
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL casacure-3.8.34-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.2 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a493a20f590252c10c08dcd98e80fb0ac88c240f482576b83ee722594f7600b1
BLAKE2b-256 checksum
How to use checksums
0e3fad6c429f56e8561b635873640b077f12b302e2ffca450a63bbfca5b5c413
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL casacure-3.8.34-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.1 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
bbd0f98283e40a60c594dd0d8ca4719c00847bfb57aa60d7a3aa423677157424
BLAKE2b-256 checksum
How to use checksums
43f9b59297c0318ab012e2951061e86727bebe8a1fef95fc96e10250db283ece
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL casacure-3.8.34-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.2 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a3c7dd06cbd838fa84b3ffcb629eca0d4fa4c592890c5f6b0713ec61df65b530
BLAKE2b-256 checksum
How to use checksums
ae7f0f626bca8930f0962fec156c078925fa9de54ccc9a992948d6b7613c058d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / casacure-3.8.34-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL casacure-3.8.34-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.1 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
f775a6bc0ccced8eab077ae22d2ae7097c838d9507c52fb635047c4cba67adc6
BLAKE2b-256 checksum
How to use checksums
6a4fe12a1650a52b9ad5127321b09fe19d3efdddc1598d9b8295c42e03653a50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log
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