Metadata-Version: 2.4
Name: antecedent
Version: 2.0.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: License :: OSI Approved :: MIT License
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: numpy>=1.26
Requires-Dist: pydantic>=2.13.5
Summary: Identification-first causal inference: discovery, identification, estimation, interventions, and counterfactuals under structural uncertainty
License: MIT OR Apache-2.0
Requires-Python: >=3.11
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://antecedent.readthedocs.io/
Project-URL: Homepage, https://github.com/iridae-dev/antecedent
Project-URL: Release notes, https://github.com/iridae-dev/antecedent/blob/main/CHANGELOG.md
Project-URL: Repository, https://github.com/iridae-dev/antecedent

# Antecedent for Python

> Install from PyPI: `python -m pip install antecedent`. `calibrated` still requires a coverage record that attests the installed build.

Antecedent exposes the same causal contract as the Rust facade. The root namespace contains 56 names; see [the naming dictionary](../docs/api_naming.md). Start with a query and graph, identify it, estimate on data, inspect the claim, and export or refresh the study when appropriate.

```python
import antecedent as ant

query = ant.AverageEffect("treatment", "outcome")
result = ant.analyze(data, graph=graph, query=query)
print(result.answer)
print(result.inspect().to_dict())
```

For large adjustment problems, 2.0 adds configured DML, DR-Learner, and causal-forest estimators. The standard wheel includes the CPU-native `NeuralNet` nuisance learner; no separate Python extra is needed. These estimators use held-out nuisance predictions and disclose their learner, folds, overlap, and uncertainty limitations; they do not make a CATE interval appear where none was estimated.

Structural transport uses `antecedent.transport.Transport` with explicit target and evidence information. Evidence availability is not inferred from a column name or a selection label.

Read the [Python workflow](../docs/python-workflow.md), [supported analyses](../docs/supported-analyses.md), and [2.0 release notes](../docs/release-notes/v2.0.0.md). The [support matrix](../docs/support-matrix.md) remains authoritative.

