Skip to content

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.

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

ophamin --help
ophamin verify        # checks every required dep is importable

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:

pip install -e ".[all,dev,property_test,docs,mcp]"

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

docker build -t ophamin:0.8.0 .
docker run --rm ophamin:0.8.0 --help

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)

git config core.hooksPath .githooks

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.