Installation¶
Ophamin requires Python 3.12 or 3.13 (the canonical CI matrix). The package is on the canonical GitHub repo; PyPI publishing is open work for a future release.
From GitHub (recommended for early adopters)¶
git clone https://github.com/IdirBenSlama/Ophamin.git
cd Ophamin
python3.12 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e ".[dev]"
Verify the install¶
Optional extras¶
Ophamin's pyproject ships a layered extras model. The canonical
list lives in
pyproject.toml
under [project.optional-dependencies] — what follows is the
high-level orientation:
| Extra | Adds | Use when |
|---|---|---|
dev |
pytest | always |
all |
matplotlib, pingouin, POT, tigramite, dowhy, ripser, scikit-tda, darts, pymc, numpyro, hypothesis, polars, duckdb, igraph, pycrdt, … | you want every scenario runnable |
audit |
ruff, bandit, mypy, vulture, radon, pip-audit, cyclonedx-python-lib | running the audit pillar |
property_test |
hypothesis, schemathesis, coverage, pytest-cov, pytest-benchmark | running property-tests + measuring coverage |
docs |
mkdocs-material, mkdocstrings | building this docs site |
causal |
dowhy, econml, causalml, tigramite | causal-discovery scenarios |
bayesian |
pymc, numpyro, arviz | Bayesian scenarios |
tda |
ripser, scikit-tda | topological-data-analysis pillars |
crdt |
pycrdt, y-py | CRDT-laws scenario |
viz |
matplotlib | reporting + meta-analysis charts |
mcp |
mcp | running ophamin mcp serve (E9.3 interop layer; AI-agent clients like Claude Code / Cursor / Cline) |
telemetry |
opentelemetry-api, opentelemetry-sdk, prometheus_client | richer instrumentation pillar (the canonical setup_otel() in core works without this; the extra adds richer probes) |
Install several at once:
Non-Python ports¶
Two cross-language ports of the wire-format read + write API are available as standalone packages for consumers that don't need the full Python framework:
# Rust crate (read + write)
cargo add ophamin-proof@0.21.2
# JavaScript / TypeScript package (read + write)
npm install @ophamin/proof@0.21.2
Both ports verify byte-equivalent signatures against Python-emitted
proofs — see
docs/INTEROP_OVERVIEW.md for the full
cross-host interop catalogue.
Notes on the macOS lockfile¶
The repository ships requirements-lock.darwin-py314.txt — a
local-environment snapshot of the author's macOS Python 3.14 venv,
useful for forensic reference. It is not portable across platforms
or Python versions (e.g. gudhi==3.12.0 has no linux/arm64 Python 3.12
wheel, so this lockfile breaks fresh installs on Linux ARM).
The Dockerfile + CI therefore install from pyproject.toml directly —
fresh resolution against Python 3.12 inside Linux containers.
Docker¶
The image is core-only (pip install -e . with no extras). Many
optional extras need C/C++ build tools that python:3.12-slim doesn't
ship. For full-surface development use the local venv on a
build-tool-equipped host.
Pre-push hook (developers)¶
The pre-push gate runs (1) pytest, (2) coverage ≥ 77 %, (3)
mypy --strict on the full package, (4) ruff. Any single failure
aborts the push. CI on GitHub runs the same gates plus a pip-audit
job.