Skip to main content

vdjtools

vdjtools — immune-repertoire analysis

PyPI CI docs python license

Get started · Guides · Commands · API · Examples · Glossary

Analysis of T- and B-cell receptor repertoire sequencing: read any format, measure diversity and overlap, correct batch effects, score generation probability against a native V(D)J model, and reduce a whole repertoire to one comparable feature vector.

vdjtools reads the output of every common repertoire pipeline into one canonical AIRR table backed by polars, and every analysis takes and returns that same table — so results chain together instead of needing a converter between each step.

A clean-room Python + C++ rewrite of the Groovy/Java vdjtools, built on arda (germline reference and annotation), seqtree (fuzzy search and e-values) and vdjmatch (overlap and TCRnet).

Install

pip install vdjtools

That is the whole installation — every capability below works from it, with no extras to opt into. Wheels are prebuilt for CPython 3.10–3.13 on Linux, macOS (Apple Silicon) and Windows and include the native C++ extension; a source install compiles it. The three engines above are base dependencies, imported lazily so import vdjtools stays light.

Two optional extras exist because each has a working alternative:

pip install "vdjtools[overlap]"   # scikit-learn, for cluster_samples(method="mds")
pip install "vdjtools[sc]"        # single-cell bridges: anndata, awkward, mudata, pyyaml

Quickstart

from vdjtools import io as vio, stats, overlap

sample = vio.read("clones.tsv")          # MiXcr, immunoSEQ, AIRR, Parquet, native — detected
stats.diversity_stats(sample)            # richness, Chao1, Shannon, inverse Simpson, d50
stats.segment_usage(sample, "v")         # V-gene usage

cohort = vio.read_samples(vio.read_metadata("metadata.txt"), base_dir="samples/")
overlap.overlap_matrix(cohort)           # pairwise repertoire overlap

The same thing with no Python:

vdjtools diversity     sampleA.tsv sampleB.tsv -o diversity.tsv
vdjtools segment-usage *.tsv --segment v -o usage.tsv
vdjtools overlap       *.tsv -o overlap.tsv

Every command writes to -o — TSV, or Parquet when the path ends in .parquet / .pq — or to stdout, so commands pipe. Analysis commands also take a metadata table (-m plus --base-dir) and parallelise over samples with -t/--threads.

Getting started walks through this in about ten minutes, with no data to download.

Where to start

You want to Go to
Get a first result from a file you already have Getting started
Clean, filter, downsample or batch-correct a cohort Pre-processing
Measure diversity, overlap, gene usage, spectratype Guides
Score Pgen, or fit a model to your own reads Model workshop
Reduce each sample to one feature vector for a classifier Signatures
Work with 10x data, or hand off to scirpy / dandelion Single cell
Look up a command or a function Commands · API
Check what a term means Glossary

What is in the box

Module What it does
vdjtools.io Readers for native vdjtools, AIRR Rearrangement TSV and Parquet; format-detecting converters for MiXcr, MiGec, Adaptive immunoSEQ, IMGT/HighV-QUEST, Vidjil, RTCR, TRUST4 and arda; metadata-driven batches and hive-partitioned cohorts
vdjtools.stats Diversity (richness, Chao1, Efron-Thisted, Shannon, Simpson, d50), coverage-based Hill-number rarefaction with bootstrap intervals, spectratype, V/D/J/C usage
vdjtools.model Native V(D)J recombination model: Pgen over nucleotides and amino acids, the Hamming-1 ball, sequence generation, EM inference, tandem-D support, and a 13-command model workshop
vdjtools.overlap Exact and similarity-aware repertoire overlap, TCRnet and ALICE neighbourhood enrichment, sample clustering
vdjtools.preprocess Format conversion, the three filtering axes, frequency handling, downsampling, error correction, V/J-usage batch correction, pooling and joining
vdjtools.features Junction physicochemical profiles and k-mer summaries
vdjtools.biomarker Incidence association against binary, per-HLA-allele or stratified conditions; co-occurrence pairing; metaclonotypes
vdjtools.dynamics Longitudinal clonotype tracking: paired within-donor expansion testing, the VDJtrack recapture model, an edgeR NB-exact caller
vdjtools.signature One fixed, named, already-standardised feature vector per repertoire, rotated through a published corpus
vdjtools.sc Single-cell ingestion, chain pairing and QC, paired Pgen, round-trip interop with scirpy, dandelion and scRepertoire

Recombination models, built in

Models for all seven human loci ship in the wheel — no OLGA install and nothing to download:

from vdjtools.model import load_bundled, native

model = load_bundled("TRB", source="olga")            # or source="learned"
native.pgen_aa(model, "CASSLAPGATNEKLFF")             # 3.595e-08
native.pgen_aa(model, "CASSLAPGATNEKLFF", mismatches=1)   # and its whole Hamming-1 ball

Pgen agrees with OLGA to 1e-15 on every locus while being several times faster, and adds tandem-D support that OLGA and IGoR lack. You can also fit a model to your own non-productive reads, audit it against its germline, compare two models parameter by parameter, and render its recombination Bayes net — see the model workshop.

In 5.0, remove the previously unused labels keyword from model.analyze.compare_models. Use compare_net_dot(..., labels=("first", "second")) to label comparison graphs.

Signatures

One repertoire in, one fixed-width named feature vector out, standardised against a published reference corpus so your matrix and a collaborator's are in the same coordinate system without either of you fitting a scaler:

vdjtools signature --corpus blood samples/*.tsv.gz -o vsig.tsv
mir       signature --corpus blood samples/*.tsv.gz -o rsig.tsv   # the geometry half, from mirpy

Nine corpora are published, all at 256 components per locus. blood (11,117 real samples, 947 study groups), tissue (21,131 / 1,934) and deep-tcr (3,936 amplicon samples, TRA+TRB) are fitted on real repertoires; the synthetic ones need no cohort at all and rebuild byte for byte anywhere. Artifacts are fetched and digest-verified on first use rather than bundled.

--corpus is required: a signature is comparable to another one only if both were rotated through the same corpus, and nothing about the numbers would say otherwise. Signatures · How they were fitted · Channels

Performance

The Pgen, generation, EM and diversity hot paths are a native C++ core reached through pybind11; everything else is polars. Single thread, Apple M3, bundled human TRB model:

Operation Throughput vs OLGA
Nucleotide Pgen, single-D VDJ 0.5 ms/seq 9×
Amino-acid Pgen 0.6–0.9 ms/seq 8.6×
Amino-acid Pgen over the Hamming-1 ball 15 ms/seq 8.7×
Sequence generation, raw draws 32,100 seq/s —
Sequence generation, productive_only=True 8,960 seq/s —

The productive filter costs 3.6× on TRB and 5.1× on IGH (19,900 raw draws/s against 3,930 productive), because out-of-frame and stop-codon draws are discarded and redrawn. Batched Pgen parallelises over sequences (11× on 16 cores, and identical to the serial result); the EM E-step parallelises over reads (6.7× on 8 threads). Memory: 63 MB resident for import vdjtools plus one model, 123 MB with all seven loaded.

Reproduce the in-repo half with RUN_BENCHMARK=1 pytest tests/python -k benchmark.

Development

Uses uv — one repo-local .venv, no conda:

uv venv && source .venv/bin/activate
uv pip install -e ".[dev,test]"       # builds the _core C++ extension
pytest tests/python -q

bash setup.sh --dev-parents --tests does the same and editable-installs sibling checkouts of seqtree, arda and vdjmatch if present. You need a C++ toolchain (Xcode Command Line Tools on macOS, build-essential on Linux). MMseqs2 is needed only for arda's annotation path.

Citing

For the v2 rewrite, cite this repository. For the original tool, cite Shugay et al., PLoS Computational Biology 2015. The VDJtrack recapture model in vdjtools.dynamics is Pavlova, Zvyagin and Shugay (2024).

License

GPL-3.0-or-later. The legacy Groovy/Java v1.x tool lives on the legacy-1.x branch, with its releases under the repository tags v0.0.1 … 1.2.1.

Running signatures across samples

vdjtools signature --corpus blood --jobs 8 samples/*.tsv -o signatures.parquet

--jobs controls worker threads. It defaults to 1; use 0 to request all available cores or a positive count to set the budget explicitly. Each worker uses one thread per numerical kernel and shares fitted resources. Workers read one sample at a time; output follows input order. Positive counts must fit the CPU allocation.

For the Python cohort API, pass zero-argument readers to defer file loading into workers. Closures and lambdas work; callbacks must not mutate shared resources. Serial mode runs without a pool. Numerical import pools are kept at one thread.

Model-build resource budgets follow the same rule: build_all(..., workers=8) runs up to eight builds with one kernel thread each. build_model(..., threads=8) and infer_native(..., threads=8) instead assign eight kernel threads to one build.

CPU budgets

Import vdjtools before numerical libraries in fresh workers. Persistent numerical pools use one thread; native kernels receive allocation-aware budgets (threads=1 serial, threads=0 all allocated CPUs, or a positive count within the allocation). CPU affinity, SLURM per-task allocations and cgroup parent quotas are respected. Sample workers use serial inner kernels. Excessive or nested budgets raise. Existing multi-thread Polars pools require a fresh interpreter for outer thread parallelism.

Metadata

Release files for vdjtools 5.0.2

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

Source distribution (sdist)

Source distribution for vdjtools 5.0.2
File Size Uploaded
vdjtools-5.0.2.tar.gz 1.4 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for vdjtools 5.0.2
File
vdjtools-5.0.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
vdjtools-5.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
vdjtools-5.0.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
vdjtools-5.0.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
vdjtools-5.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
vdjtools-5.0.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
vdjtools-5.0.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
vdjtools-5.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
vdjtools-5.0.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
vdjtools-5.0.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
vdjtools-5.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
vdjtools-5.0.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 24.0 MB

Release files / vdjtools-5.0.2.tar.gz

Download URL vdjtools-5.0.2.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
fc0a384e0feb60ff377faaeb85733e6c80114758f7544add0c7ad309fc493b66
BLAKE2b-256 checksum
How to use checksums
d6f3ee329a959f2c2815f1e7f3d1b3009c29bdecada5939de2133f8cae93724d
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp313-cp313-win_amd64.whl

Download URL vdjtools-5.0.2-cp313-cp313-win_amd64.whl
Size 1.9 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
af4b6ab13b51059c57c9e7681064b74e9f6f3bcccb2d51d969ea81461bc6e256
BLAKE2b-256 checksum
How to use checksums
8ce4ede1a5c1f122f6073b1d941e2da1a4cca7a8a2d229dddfb1077f9a78da7c
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL vdjtools-5.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
70167634182e0a8b96a16515c19d94cf0de9f2be71b86e2d08b0dc217f851bc6
BLAKE2b-256 checksum
How to use checksums
f40e36dc7c82cc5a8fcb7dbb3831a49e89c84c0d93aa5886addbd8fc53fbedba
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL vdjtools-5.0.2-cp313-cp313-macosx_11_0_arm64.whl
Size 1.9 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e71f49640b214b3b354e03b2ec911a71f2fde2ba0058cb94e2064bcc484fd046
BLAKE2b-256 checksum
How to use checksums
53c6fc8fc22fc17a20621562a40f21674f3fc175b3b0a663f24945b8d20ab8a8
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp312-cp312-win_amd64.whl

Download URL vdjtools-5.0.2-cp312-cp312-win_amd64.whl
Size 1.9 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
794137079203916d4ea510d95f901e43b1b13e97d55938327bb432875124d243
BLAKE2b-256 checksum
How to use checksums
38c17e3f7913e3cf49b4f4281cdf7ffb15629c54856da3b046d65cf9aa9e7fbe
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL vdjtools-5.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a2d6c6d5324351a5513c4fd3352f74e338376d65ce4d12f7ca35fe5682a3d0f6
BLAKE2b-256 checksum
How to use checksums
758973e322815835b06ca1b4d978c039caf835d20794367fe14b0a6bf56c1ffe
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL vdjtools-5.0.2-cp312-cp312-macosx_11_0_arm64.whl
Size 1.9 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8405c35626aee5049b699c150e2ef9fbece189b7b4a569726218e479f9864272
BLAKE2b-256 checksum
How to use checksums
bf5b6a2fbcc8bf23f706f64415cb7ab0351a00756beab57a3386b8dc6333acad
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp311-cp311-win_amd64.whl

Download URL vdjtools-5.0.2-cp311-cp311-win_amd64.whl
Size 1.9 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
33b1e6af32ca6e27d73ad4fc2769fb16ef35c7cee549479ad8cb16366b9dea0b
BLAKE2b-256 checksum
How to use checksums
104707dcfc279f290d452db45c8cee322255c679f82a04cf9868be65f2650491
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL vdjtools-5.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
264af505eb93cf1adf73867df0fccba93e38a1343550e763adc129006d440ad1
BLAKE2b-256 checksum
How to use checksums
a5763c24919354910c57136fb3097f3298be5a6a72173b18440eb21f8c29aea1
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL vdjtools-5.0.2-cp311-cp311-macosx_11_0_arm64.whl
Size 1.9 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
567a26077142c5543fc144a0d25171a4188776575e02e14f4c092aae4e5b9504
BLAKE2b-256 checksum
How to use checksums
7ec50e957300ae79fc4cde30bb34458434b6f1fc2e952fd6e7e681d49e724286
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp310-cp310-win_amd64.whl

Download URL vdjtools-5.0.2-cp310-cp310-win_amd64.whl
Size 1.9 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b9078c138e574f458bb521d51749a6b9de13562947fa240f526ec4e3131bf4f0
BLAKE2b-256 checksum
How to use checksums
c4ec09715cc8cbddb35b5d0e67813fdc78991893ced7bbee0ed31559ec8768c5
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL vdjtools-5.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7a702eced1a4b25568a9d8070a2bf92770f74e7e13408e868106ce0617ce4a12
BLAKE2b-256 checksum
How to use checksums
cda681bad803cc16cf6d22bd5acdb21a907cdaa34510eb6479f3544b0d524c6d
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 12, 2026.

Transparency log

Release files / vdjtools-5.0.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL vdjtools-5.0.2-cp310-cp310-macosx_11_0_arm64.whl
Size 1.9 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
22d8018792b078436078402876cd35c4b06057db4b2318b002c37e91bc47aebb
BLAKE2b-256 checksum
How to use checksums
41ae7702c3ec0810f15f62c05bd7b904bfe471de13a6a04be64c513e592d3746
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 12, 2026.

Transparency log

Release history Release notifications | RSS feed

5.1.0

13 release files

This release

5.0.2 This release

13 release files

5.0.1

13 release files

4.8.0

13 release files

4.7.0

13 release files

4.6.1

13 release files

4.5.0

13 release files

4.3.0

13 release files

4.2.0

13 release files

4.1.0

13 release files

4.0.1

13 release files

3.9.3

13 release files

3.9.2

13 release files

3.9.1

13 release files

3.9.0

13 release files

3.8.0

13 release files

3.7.3

13 release files

3.7.0

13 release files

3.6.1

13 release files

3.6.0

13 release files

3.4.0

13 release files

3.1.2

13 release files

3.1.1

13 release files

3.1.0

13 release files

3.0.0

13 release files

2.9.0

13 release files

2.8.0

13 release files

2.7.0

13 release files

2.6.0

13 release files

2.5.1

13 release files

2.3.0

13 release files

2.2.1

13 release files

2.2.0

13 release files

2.1.0

13 release files

2.0.0

13 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