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_projectonDag;m_separatedonAdmg/Pag) Identifier/Estimatorenums (wire ids) plus string kwargsidentify(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), plusAnomalyAttribution/ChangeAttribution(root types;analyze()refuses). Temporal dose × horizon uses the sameResponseCurve/InterventionResponsetypes with keyword-onlyhorizons,policy, andtreatment_lag(seeexamples/python/temporal_response_curve.py). antecedent.discovery— PC, GES, LiNGAM, NOTEARS, FCI/RFCI, PCMCI family, Bayesian posteriorsantecedent.validation.validate_pcmci_*— discovery stability (block bootstrap, FPR, grids, …)antecedent.model/antecedent.counterfactual—FittedGcm,sample_do,counterfactual_iteantecedent.population—PopulationRegistry/target_*for named predicates and custom-distribution IPWantecedent.gcm—fit_gcm_discovered/attribute_*_discovereddiscover-then-attribute compositionantecedent.state.CausalState— incremental state with retained batches, events, suff-stats, particle filterrefute="full"|"placebo"|Falseon staticanalyze(refute=Trueis aTypeError; leave it unset for the licensed default). Static and temporalResponseCurve/InterventionResponselicense validationnoneonly; requesting a scalar refuter suite raisesCausalUnsupportedError.- RD:
estimator="rd.sharp"withrunning_variable/cutoff/bandwidth - Graph interchange on the classes:
Dag.from_dot/.to_dotand 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 inexamples/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)
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}
|