Skip to main content

Antecedent

import antecedent as ant

result = ant.analyze(data, graph=graph, query=ant.AverageEffect("treatment", "outcome"))
study = result.study
updated = study.refresh(new_data)
report = result.inspect().to_dict()
loaded = ant.load(result.export())

Antecedent is an identification-first causal inference engine for Python (with a native Rust core). analyze checks that the effect is identified before anything is estimated and runs refuters against the estimate. result.study keeps the compiled study, so study.refresh(new_data) re-executes the same program on new data. result.inspect().to_dict() is the whole report as JSON-safe data: answer, identification, support, uncertainty, assumptions, identities and calibration. ant.load(result.export()) round-trips the contracted execution through the Rust semantic consumer.

Uncertainty about the causal graph (a CPDAG, a PAG, a posterior over graphs) is carried through to the effect instead of being resolved by fiat, and discovered graphs are never silently treated as ground truth.

Requires CPython 3.11–3.14. Install from PyPI:

pip install antecedent

Paste this block and run it. It simulates two confounded datasets and runs the five lines on them:

import numpy as np
import antecedent as ant


def simulate(seed, n=2000):
    rng = np.random.default_rng(seed)
    season = rng.normal(size=n)  # confounder
    price = 0.7 * season + rng.normal(size=n)  # treatment
    sales = 1.5 * price + 2.0 * season + rng.normal(size=n)  # outcome, true effect = 1.5
    return {"season": season, "treatment": price, "outcome": sales}


data, new_data = simulate(0), simulate(1)
graph = [("season", "treatment"), ("season", "outcome"), ("treatment", "outcome")]

result = ant.analyze(data, graph=graph, query=ant.AverageEffect("treatment", "outcome"))
study = result.study
updated = study.refresh(new_data)
report = result.inspect().to_dict()
loaded = ant.load(result.export())

print(result.answer)  # Answer(kind='point', value=1.48..., ...)
print(updated.answer)  # the same program on new_data
assert loaded.acceptance.verified and loaded.answer == result.answer

result.answer is the safe way to read the number: a set-identified or partially identified analysis answers with bounds or partial, never an unrestricted scalar. The same analyze() call scales to temporal dose × horizon ResponseCurve surfaces, pulse and sustained contrasts, Bayesian graph-posterior mixtures that report unidentified structure mass, mediation, counterfactuals, and root-cause attribution — see the project README for worked examples, the Python workflow guide for studies, reports and portable executions, and the documentation for the full API.

1.11.0

The 1.11.0 release notes are the 1.x close-out on the 1.10 composition contract: licensed graph-posterior cells that now earn, GAC 40, parallel coverage seeds, and the 1.11 finding closeout. Every Antecedent analysis retains a reusable study and exports a contracted execution; custom validator results travel as caller-attested, not re-verifiable, evidence, and a row-weight retarget re-executes only on its own data snapshot. Every reported interval states its calibration: calibrated when a coverage record matches the execution and the execution is inside that record's scope; scope_not_assessed when a record matches but the execution is outside its scope or the record is a boundary; unavailable with a reason code when no record exists. Identities are distinct and stable: every IdentityDomain plus target_weights is domain-separated and registered in parity/identity.toml.

Earlier releases

These summaries describe the releases when they shipped. For current support, use the support matrix.

1.10.0

The 1.10.0 release notes cover composition of the existing 341 licensed cells: inspect/contract coordinates, the Rust inspect → preview → execute → claim → consume path for every licensed cell, retained studies on ordinary prepared routes, and portable claims.

1.9.0

The 1.9.0 release notes cover the calibration of licensed intervals (a two-sided repeated-sampling coverage gate, with boundary records disclosed at runtime), ADMG interventional distributions, accepted-Dag counterfactuals, Frequentist DBN-posterior mediation, and staged attribution / transport / interference cells (Rust Study API only). Behaviour changes: rd.sharp defaults to the HC1 SE, NaN and null float cells are missing values, and the default bootstrap count is 199.

1.8.0

The 1.8.0 release notes cover the Bayesian remainder of the staged handle: functional path, distribution, and ADMG ATE, static mediation, counterfactuals, derivatives, and ConditionalEffect graph-posterior mixtures.

1.7.0

The 1.7.0 release notes cover class-preserving Bayesian analyses on incomplete temporal graphs. The 1.6.0 release notes cover per-horizon temporal identification, sequential overlays, and observation-adjusted temporal curves. The Python walkthrough for local, distributional, and joint effects remains the guide for retargeting, CDFs, and joint interventions.

Development

For local development you need a Rust 1.85 toolchain. CI builds and smoke-tests wheels for the supported CPython range on Linux x86_64/aarch64 (manylinux), macOS arm64, and Windows x86_64 (default faer path; no system BLAS). Tagged releases publish wheels to PyPI and GitHub Release assets (see docs/development.md).

cd python
uv venv && source .venv/bin/activate
uv sync --group dev
maturin develop
pytest

Lint and types (local gate only — not part of wheel CI):

bash ../scripts/gate_python_lint.sh   # ruff check/format + mypy

Public API

Primary entry point is the OO facade:

import antecedent

g = antecedent.Dag.from_edges(["z", "t", "y"], [("z", "t"), ("z", "y"), ("t", "y")])
result = antecedent.analyze(
    data,  # dict[str, array] or pandas DataFrame
    graph=g,  # or an edge list
    query=antecedent.AverageEffect(treatment="t", outcome="y"),
    inference=antecedent.Frequentist(),  # or antecedent.Bayesian(...)
)
study = result.study
updated = study.refresh(new_data)
report = result.inspect().to_dict()
loaded = antecedent.load(result.export())
assert loaded.acceptance.verified

# Or stop before estimation with the same ordinary defaults:
prepared = antecedent.prepare(data, graph=g, query=antecedent.AverageEffect("t", "y"))
repeated = prepared.estimate()

# Identify without estimating:
id_only = antecedent.identify(
    graph=g,
    query=antecedent.AverageEffect(treatment="t", outcome="y"),
    identifier=antecedent.Identifier.BACKDOOR_ADJUSTMENT,
)

gcm = antecedent.model.fit_gcm(["z", "t", "y"], columns, list(g.edges()))
draws = gcm.sample_do({"t": 1.0}, n=200)

# Or discover then fit (never invents orientations; refuses incomplete PAG/FCI):
fitted, edges = antecedent.gcm.fit_gcm_discovered(
    data, discovery=antecedent.discovery.PC(alpha=0.05)
)

The root namespace contains 57 names: the analyze contract plus prepare, load, TransportQuery, InterferenceQuery, and Analysis. AnomalyAttribution and ChangeAttribution run their licensed Dag cells on analyze() and retain a study. TransportQuery and InterferenceQuery run their licensed cells on analyze() and retain a study like every other licensed route; antecedent.transport / antecedent.interference hold the selection diagram, designs, exposure mappings, the transport identification stage, and the unlicensed estimate_trial_effect / estimate utilities, which return bare numbers with no study or license. Everything else is reached through a stage module (antecedent.discovery, antecedent.priors, antecedent.errors, …).

Also exposed:

  • Typed graphs: Dag / Cpdag / Pag / Admg / TemporalDag (d_separated / latent_project on Dag; m_separated on Admg / Pag)
  • Identifier / Estimator enums (wire ids) plus string kwargs
  • identify(graph=…, query=AverageEffect(…)) — identify without estimating
  • Queries: AverageEffect, MediationEffect, Counterfactual, PulseEffect, SustainedEffect, InterventionalDistribution, PathSpecificEffect, ConditionalEffect, TemporalMediationEffect, InterventionResponse, plus the response family (ResponseCurve, AverageDerivative, PointDerivative, Elasticity, SemiElasticity, DirectionalDerivative, ResponseJacobian), plus AnomalyAttribution / ChangeAttribution (root types; licensed analyze(data, graph=Dag, query=...) at validation none). Temporal dose × horizon uses the same ResponseCurve / InterventionResponse types with keyword-only horizons, policy, and treatment_lag (see examples/python/temporal_response_curve.py).
  • antecedent.discovery — PC, GES, LiNGAM, NOTEARS, FCI/RFCI, PCMCI family, Bayesian posteriors
  • antecedent.validation.validate_pcmci_* — discovery stability (block bootstrap, FPR, grids, …)
  • antecedent.model / antecedent.counterfactual — FittedGcm, sample_do, counterfactual_ite
  • antecedent.population — PopulationRegistry / target_* for named predicates and custom-distribution IPW
  • antecedent.gcm — fit_gcm_discovered / attribute_*_discovered discover-then-attribute composition
  • antecedent.state.CausalState — incremental state with retained batches, events, suff-stats, particle filter
  • refute="full"|"placebo"|False on static analyze (refute=True is a TypeError; leave it unset for the licensed default). Static and temporal ResponseCurve / InterventionResponse license validation none only; requesting a scalar refuter suite raises CausalUnsupportedError.
  • RD: estimator="rd.sharp" with running_variable / cutoff / bandwidth
  • Graph interchange on the classes: Dag.from_dot / .to_dot and the JSON / GML / NetworkX peers
  • Design / state examples: examples/python/rank_designs.py, examples/python/causal_state_workflow.py, examples/python/temporal_response_curve.py, examples/python/staged_static_kinds.py (see ADR 0016 — no auto-rerun); catalog in examples/README.md

Build artifacts (_native.*.so) are gitignored; always maturin develop (or install a wheel) on a fresh checkout.

In 1.6, multi-step Sustained supports none/cheap/full validation in both inference modes, including DBN posterior mixtures. Full perturbations refit the sequential model; Bayesian checks retain mechanism PPC and composed-effect prior sensitivity. Temporal Soft multiplicative and truncated_shift compose across single, joint, and multi-step schedules; truncation applies to the propagated conditional mean, not a stochastic draw. Bayesian temporal observation curves and Sequence use an observed-data Gaussian SEM with latent-trajectory Gibbs sampling under an explicit ignorable trajectory coarsening assumption and distinct priors. See the observation contract for the conditioning assumptions; this is not Bayesian IPCW weighting.

In 1.3, antecedent.estimation.PreparedAnalysis also stages Frequentist DAG derivatives, static natural mediation, explicit-DAG unit counterfactuals, and the published observation-pair contract (selected AIPW, marginal KM, conditional Cox IPCW). Derivative cheap/full stay n/a; counterfactual sampling uncertainty is unavailable. See the 1.3 evidence ledger and the 1.2 ledger below for earlier Bayesian and sequential forms.

In 1.2, antecedent.estimation.PreparedAnalysis also supports the licensed Bayesian conditional, temporal-mediation and response forms, and multi-step SustainedEffect(..., window=(-2, -1)). Choose the validation suite when preparing these analyses; second-click refute() remains AverageEffect-only. export_artifact() retains the fitted posterior or response, while export_artifact(payload="query") retains the original query kind and variable IDs. Scalar posterior exports do not include the complete assumption or validation ledger; retain the analysis result alongside them. See the 1.2 evidence ledger for model restrictions and evidence.

Typed exceptions (CausalError and subclasses) mirror Rust CausalError categories. The native module antecedent._native remains available for advanced FFI use (including the flat AteAnalysisResult DTO; prefer nested AnalysisResult).

Metadata

Release files for antecedent 1.11.0

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

Built distributions (wheels)

Table of built distributions (wheels) for antecedent 1.11.0
File
antecedent-1.11.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
antecedent-1.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
antecedent-1.11.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
antecedent-1.11.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
antecedent-1.11.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
antecedent-1.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
antecedent-1.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
antecedent-1.11.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
antecedent-1.11.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
antecedent-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
antecedent-1.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
antecedent-1.11.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
antecedent-1.11.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
antecedent-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
antecedent-1.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
antecedent-1.11.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 160.6 MB

Release files / antecedent-1.11.0-cp314-cp314-win_amd64.whl

Download URL antecedent-1.11.0-cp314-cp314-win_amd64.whl
Size 10.3 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
a32c077d3daebefe7f64f7860daa9402338093bfce4455e74139905b4ac6e693
BLAKE2b-256 checksum
How to use checksums
7e493d74d0287edc641bf4c17c6e083ef43af5e38cfd3d7b231eff11f88c6937
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL antecedent-1.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 10.7 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e4a2412445eac334c8b74e9650309406a9ad323464782731b82de25badd3d759
BLAKE2b-256 checksum
How to use checksums
724e5b840196e263fd832b3e5c5b5b617a14f7fd40f18992f726b80004db781d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL antecedent-1.11.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
6d1fee550bb1dd33af3e4da81c4a25890bc4d9704bcf73575600fb0a6abaa348
BLAKE2b-256 checksum
How to use checksums
bd6fe7bcd4733d5c48d7fed9b4bc8049425d0114563835a3d3c9216304f6cb2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL antecedent-1.11.0-cp314-cp314-macosx_11_0_arm64.whl
Size 9.2 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0023f49c7e5f534886eec28059be9702192b0768c97b9b58eab23e1ff21f95e9
BLAKE2b-256 checksum
How to use checksums
c565f9e2fa9f750823647206ae012e0b080bd69ab97ca66c86095314dd6c22e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp313-cp313-win_amd64.whl

Download URL antecedent-1.11.0-cp313-cp313-win_amd64.whl
Size 10.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
177bec758e59f521014b92e82cfc82f10f358ef79b032af0bf7eaab031c34ed5
BLAKE2b-256 checksum
How to use checksums
f8db5560948a5c794bd4b75601cfb53f81dc79e1455c80dc56ef04fdb6b889ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL antecedent-1.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 10.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2e0255c5915a70fdfe83957f24013af9bb6ab7cb00c2a3330ea9603d6c12d329
BLAKE2b-256 checksum
How to use checksums
242320be54d68faa1c756d4ea03c4ef7695afbc32cfd6068d801454a7a811428
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL antecedent-1.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
aa33ab0f696e42168140145f9532228f82f84466052003c666c46c507d62de3f
BLAKE2b-256 checksum
How to use checksums
cb83f07ca519436363ddd023e17bf97a968abade7cccccdef262027f8504f290
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL antecedent-1.11.0-cp313-cp313-macosx_11_0_arm64.whl
Size 9.2 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8b114087f28d572d8015e54f01281dcb8732bd6c40bac82274b045a8f554cb05
BLAKE2b-256 checksum
How to use checksums
83c52d90b23fb1a2a9af164390b9fd955019d34bfa2c19ace9dfd79586be1fac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp312-cp312-win_amd64.whl

Download URL antecedent-1.11.0-cp312-cp312-win_amd64.whl
Size 10.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
4a4f61cde65ee3845affc9bd3f986a4e0df69e8f2d9e55d07ad35eaff88f11c7
BLAKE2b-256 checksum
How to use checksums
7021c3ef1597c236208a892f1e4dda4c6ca962b3be88c1943e6b91396d0de21c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL antecedent-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 10.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
76284a0c47453e6f2644ba6e14f728333701dc02af9110faefc172e63411046d
BLAKE2b-256 checksum
How to use checksums
77b2f81d6bf824dcb30ceec9426dfe3facb8f164c6d6fa6fe0a6888af7fdfef7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL antecedent-1.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
c13f0c0ede4a9b97affa5c2cecbb3472a7f7da4f96fa1937cc03f77063536e91
BLAKE2b-256 checksum
How to use checksums
e0a9db7f1e2f9d97088ca0522a3a1b1ace68625533caa4a353b930293db26ef9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL antecedent-1.11.0-cp312-cp312-macosx_11_0_arm64.whl
Size 9.2 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
beaae843162f9b19f4d8882eaa6fa22fc4cfa33b4823b43149946bcbdfe149f0
BLAKE2b-256 checksum
How to use checksums
6a9d92eaa978d8bd8d384ebdba0c4240f7ab715599036fb528d5255153aebd5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp311-cp311-win_amd64.whl

Download URL antecedent-1.11.0-cp311-cp311-win_amd64.whl
Size 10.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
0b47f27acc6a175980443010d31cddaabfde59296eae9d5d96f6475825f32178
BLAKE2b-256 checksum
How to use checksums
ef4d745bcdca053f8df18e07804f40f2870e948be23f3e1f35ed00f008f60b83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL antecedent-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 10.7 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
584ed52739f9a8b396a73b95274d820a8ce7a77fda94834aa6bd5ae1878435b2
BLAKE2b-256 checksum
How to use checksums
313d3a91d29168fa692b607617d248a905b22c4edeb32226a51f34dde5df56fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL antecedent-1.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
901ddfc4c3e9f3831bb28bb4f952d222079fca5684294879a87faa61722cfac5
BLAKE2b-256 checksum
How to use checksums
63da022307ddf27bc639b702449822536237ffb2ebcd1b6c3463d7e2189697a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / antecedent-1.11.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL antecedent-1.11.0-cp311-cp311-macosx_11_0_arm64.whl
Size 9.3 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
70ffce48d740b7dc330e3d521b836d6a0060a4d5a735ebb030013ad20b34fc57
BLAKE2b-256 checksum
How to use checksums
bf40066247c7fbe184dddf0c00c7db861099912bae51e8266b1f3b0151f22101
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

2.4.0

16 release files

2.3.0

16 release files

2.1.1

16 release files

2.1.0

16 release files

2.0.0

16 release files

This release

1.11.0 This release

16 release files

1.9.0

16 release files

1.7.0

16 release files

1.6.0

16 release files

1.5.0

16 release files

1.4.0

16 release files

0.9.0

16 release files

0.7.0

16 release files

0.6.1

16 release files

0.6.0

16 release files

0.5.2

16 release files

0.5.1

16 release files

0.5.0

16 release files

0.4.1

16 release files

0.4.0

16 release files

0.3.0

16 release files

0.2.0

16 release files

0.1.0

16 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