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.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. 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.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 (Rust Study API only), 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 56 names in 1.10: the 1.9 contract plus prepare, load, TransportQuery and InterferenceQuery. AnomalyAttribution and ChangeAttribution types exist for the query axis; analyze() refuses them — the licensed cells are Rust Study only. 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 keep their 1.9 behaviour (bare numbers, 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; analyze() refuses). 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.10.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.10.0
File
antecedent-1.10.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
antecedent-1.10.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.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
antecedent-1.10.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
antecedent-1.10.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
antecedent-1.10.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.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
antecedent-1.10.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
antecedent-1.10.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
antecedent-1.10.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.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
antecedent-1.10.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
antecedent-1.10.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
antecedent-1.10.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.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
antecedent-1.10.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 152.8 MB

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

Download URL antecedent-1.10.0-cp314-cp314-win_amd64.whl
Size 9.8 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
c5fe2f7ca82317ea097baa4a120312accbdcbaf96849aae7456a3f2e624cc0f4
BLAKE2b-256 checksum
How to use checksums
f22a0890b50491d2298a974c43f94e87bb4943cecb6ad0c5eaeb2ca8ba187d8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL antecedent-1.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 10.2 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2afe72c6eed6f266fe5516e0dec28cb2cd432d086e9b9de5dda2237c40ea8967
BLAKE2b-256 checksum
How to use checksums
7dc7cce786947e1b29e7468dba81f22a2bebab736b396c3c60a61c4fd59cf2b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL antecedent-1.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.4 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d710eb2dc9f5c2839814d88a09a35ee1839d8d3ee2f084faa8b26c593914bcc9
BLAKE2b-256 checksum
How to use checksums
d2a492ea13ec281ce6e8a1090189640abf3d8c7fcb6df5a775133284d83f8534
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL antecedent-1.10.0-cp314-cp314-macosx_11_0_arm64.whl
Size 8.8 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2d7f64bfdad2749831666880fc45c86ce5f207e9d8c02eb5b9a2151e141625ca
BLAKE2b-256 checksum
How to use checksums
7bc2a4fa3ae31eb8f47acb7cbc0ea57d91d3e34cac7c0b2129edc7eecde77a79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp313-cp313-win_amd64.whl

Download URL antecedent-1.10.0-cp313-cp313-win_amd64.whl
Size 9.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
1785a7946d1976572c025d360c792d7e6e0ae14bd403e7f9d8946ce8ad7af90a
BLAKE2b-256 checksum
How to use checksums
980b49151eee7b6237e1c513aeef6dec89c21f3c257a18c8653ffa3602bdcca6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL antecedent-1.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 10.2 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ef493d18984acd22d9522385e3beaf8f284656d4683864b57ae774b848d7f85c
BLAKE2b-256 checksum
How to use checksums
03fad0179570f797fad315890947920bfba37674a7b792984f7507b078667b98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL antecedent-1.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.4 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
113556c7ddb3ca05a8cc499892209ba2542856942160704018c16a8f381ec3dc
BLAKE2b-256 checksum
How to use checksums
cb2455587f8f6c3043899400da86941403b4b986452e79603f00738332452a20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL antecedent-1.10.0-cp313-cp313-macosx_11_0_arm64.whl
Size 8.8 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c6fc5c7f4fbd253817a2b3a51b1b90d05b4c01a783410e85a282aea2a76c9959
BLAKE2b-256 checksum
How to use checksums
a11539d1d1b8fe8d9d2e95ec5ffad4fe9c4e0e1ac75c75953823cc8e37d63aef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp312-cp312-win_amd64.whl

Download URL antecedent-1.10.0-cp312-cp312-win_amd64.whl
Size 9.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
8d149358b9f3c34517d9d4113bfaeac4174ea651464764b4c7be7015c2892e87
BLAKE2b-256 checksum
How to use checksums
4c95b66492a8c584ec2c53ae1c96a681737428493a4dc19aa6b012b5716348ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL antecedent-1.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 10.2 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
28199123c5244ec049ee12f0d08542551b3cd2a3f8ceb463150e8701e8cec5fa
BLAKE2b-256 checksum
How to use checksums
8dbe55578a1672f8e039e26fc4997369150a8dacef05760e339005e9ea268b20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL antecedent-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.4 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
727a465e453e0551ae5467f114d9a0afb9d414b55f38ad01d990109fc8bc7e58
BLAKE2b-256 checksum
How to use checksums
7ac6f81b9a585351c0f986b9899b0e9955fddd49bea659df4ff00ec467c28345
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL antecedent-1.10.0-cp312-cp312-macosx_11_0_arm64.whl
Size 8.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b6aa0e31c811cd9c167236c7d81ab8f72d87a4711e256bb32ce666983fcdd2ea
BLAKE2b-256 checksum
How to use checksums
a86c25431539c2c94d7caa0d1093a88b9d8ea7c21a64e5c5c4a48ac6a345f506
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp311-cp311-win_amd64.whl

Download URL antecedent-1.10.0-cp311-cp311-win_amd64.whl
Size 9.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
7bd7390d87768984888f3c3053e4773b6e210f19f02ecee4fb287b545b0c113a
BLAKE2b-256 checksum
How to use checksums
b43d1913605c22db487c2381d24474c4c27ce6465cd0d6c2fd12d03f15810747
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL antecedent-1.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 10.2 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b125a3140057bd3d87a25c8777d656b12383e24801a500fd021990500ea3fdbd
BLAKE2b-256 checksum
How to use checksums
3eaa0c7c2a51fe5e87e24f103b4d07d633c7aafdd9adb4a31b196befa8c7b670
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL antecedent-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.4 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d20e081b6ec8da03b3e87b4a9780fb4ee67b3f8c0901c4a14cf7f627d03cc94c
BLAKE2b-256 checksum
How to use checksums
03178baf2ac0007f648ada6daca95714a4f2f1721403120736152ea2763feb1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL antecedent-1.10.0-cp311-cp311-macosx_11_0_arm64.whl
Size 8.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
36ea712005e38e86ed3168c58499c3fa7496215bc764fdc9c31484a8bc25ea1c
BLAKE2b-256 checksum
How to use checksums
95b671d65f8cbb10e3f680e68a3f8350e221f5fafffb6f9b69e5dfbc1ffa026b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","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.10.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