Antecedent
Antecedent is an identification-first causal inference engine for Python (with a native Rust core). It takes an analysis from causal structure through estimation, diagnostics, interventions, and counterfactuals — without silently treating discovered graphs as ground truth.
Use it when you need a causal effect you can defend: identification is checked before anything is estimated, refuters run against the estimate by default, and 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.
Requires CPython 3.11–3.14. Install from PyPI:
pip install antecedent
Paste this block and run it. It simulates a confounded dataset, checks that the effect is identified, estimates it, and runs refuters against the estimate:
import numpy as np
from antecedent import AverageEffect, analyze
rng = np.random.default_rng(0)
n = 2000
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
result = analyze(
data={"season": season, "price": price, "sales": sales},
graph=[("season", "price"), ("season", "sales"), ("price", "sales")],
query=AverageEffect(treatment="price", outcome="sales"),
)
print(
result.identification
) # NonparametricallyIdentified via backdoor.adjustment, adjusting for season
print(result.estimate) # ate=1.48, analytic and bootstrap standard errors
print(result.validation) # refuters ran and passed
The same analyze() call scales from this 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 and the documentation for the
full API.
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 1.5 Python walkthrough 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(...)
)
print(result.identification, result.estimate, result.validation)
# 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 is frozen at 52 names as of 1.9 (the 50-name 1.7
contract plus AnomalyAttribution and ChangeAttribution). Those two
types exist for the query axis; analyze() refuses them — the licensed
cells are Rust Study only. TransportQuery / InterferenceQuery stay
stage modules (antecedent.transport, antecedent.interference).
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.9.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: 136.1 MB
Release files / antecedent-1.9.0-cp314-cp314-win_amd64.whl
| Download URL | antecedent-1.9.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 8.7 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d6fd3e7f756e76b6f5c92604b6a7eb5220ff41b2771a3f95efcf3d4baf14b5b5
|
|
BLAKE2b-256 checksum How to use checksums |
ff8de83dcead37476473299120f7c71b71a1956a2396f61d4c05fea23792bf0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | antecedent-1.9.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
c2d45201d05b4f33b65ed4b2571e028041e09c9ce36d6911dd5b13bc9c01e8ff
|
|
BLAKE2b-256 checksum How to use checksums |
9116425bf62541569abeb07f1ef1158d41e59f70acb461d32801c65544a5eaf7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | antecedent-1.9.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 8.4 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
4ad089fdae1467ae92bbfea0b8a2929651dc355da86ce03fefffbbe9b7f43f16
|
|
BLAKE2b-256 checksum How to use checksums |
93931869ce2d787c2766a12f1dbf06fc2e806845177d0919646d91b92c9066a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | antecedent-1.9.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 7.8 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2cf0666af515d6603013a8db1b8f8b295e2b18c2127397fb7468ee8563d8c954
|
|
BLAKE2b-256 checksum How to use checksums |
fcf6752105423ce2da6802da76caec8cde791dcad204c66bfee97bf0630f172f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp313-cp313-win_amd64.whl
| Download URL | antecedent-1.9.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 8.7 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bc164c370422d2f08888c75382c183e194ef38bca75ed97b0c0484009bda41cb
|
|
BLAKE2b-256 checksum How to use checksums |
5e89ee8e55f4441475f2f9cb424a6ffe29bad27247f4e4eeafea07ed475308a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | antecedent-1.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cf61797239cb1a55e760f9de9ff28b7207a90bb3183c9b50ba762ceda1ace431
|
|
BLAKE2b-256 checksum How to use checksums |
738c4d7de7dff0ac40112cb10ada85d2060d19c2ba88a5b5e01fd15677a217b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | antecedent-1.9.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 8.4 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
fc2e4ea3592e8bac0cd303c39f6354021d1ba9fbe81d994e0d2374af95615ab5
|
|
BLAKE2b-256 checksum How to use checksums |
adcf6e25ba6d2d098eea785a09381532beaca89fb33726611d73350defc7ccb3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | antecedent-1.9.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 7.8 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a86392b007b33442fb282675bea7b4e76dad254775a51820d4659f5170489864
|
|
BLAKE2b-256 checksum How to use checksums |
c05e7323e38e1ea9756a0dc6535a4b6637b91e1ed09a73724cb22b45e164e5b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp312-cp312-win_amd64.whl
| Download URL | antecedent-1.9.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 8.7 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
52c88cee40befe213b2836546e3654118d6b15604ee9f7c398494d389510b523
|
|
BLAKE2b-256 checksum How to use checksums |
0921c34014c105a013dd00588b58674444e3790441e826bc44bea85a6a0f3b83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | antecedent-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
7d3fc4eb253d26141df16228b9e78917dbf07ecac11704d902c730758d8dd55c
|
|
BLAKE2b-256 checksum How to use checksums |
31654a82dc74ab571cb179dd85d01f4efd8f4cb3eb8a6d0f67b9b123f8defdb3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | antecedent-1.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 8.4 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
1798a9bc8f41dca6653149335e92fe8ee8152a194f93ceabf3af951620c4eec9
|
|
BLAKE2b-256 checksum How to use checksums |
414f4854a5aab84418a179057b91489d02b6d6e4afdd82d4908f9eac9ce52cc6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | antecedent-1.9.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 7.8 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8ebba5748883f1b57a932f3abe38039a29ca7d7129629b4a44f2a570bd0cce28
|
|
BLAKE2b-256 checksum How to use checksums |
9b711e99bbdf51fafba588464533446815c16ce98c57638b4be7a2fe16ed8f37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp311-cp311-win_amd64.whl
| Download URL | antecedent-1.9.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 8.7 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ce59d76e3606467a1d252a54aff063b4a62bde6c48191d62c46d7893d2418173
|
|
BLAKE2b-256 checksum How to use checksums |
994fe9b5bffedc78e0211cee45e4869a2085dbca52c71f987a7ff4af12365596
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | antecedent-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
0fe64d1e97d12b9c650179335404bf34f3644067c3a78a8d06102596a9d98b68
|
|
BLAKE2b-256 checksum How to use checksums |
48ddaabbfc1a074021796884d6c735fffd7b74ea579bdf25024d752899b952ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | antecedent-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 8.4 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
3485d450cfe7df3d5763291aac997923ca28ebaba851d6faac17d2ab2b87880f
|
|
BLAKE2b-256 checksum How to use checksums |
68ea41d584161beddb69c794071c5f9cd08a38c4382d9bb6fca04242c9a8c2a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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.9.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | antecedent-1.9.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 7.9 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7bde04442f5ac3c73377f4dd20486132c5dc1917c6a29c9e2645f921d9fb875c
|
|
BLAKE2b-256 checksum How to use checksums |
dbc927419be2d7ee27407851407ad64926895d36ad221b8ebf4c13975a9b93d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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}
|