The reference Python implementation of the Open Computation Lifecycle Protocol.
OCLP is a language-neutral standard for durable computation provenance. This package provides Python models, canonical JSON serialization, digest helpers, validation, portable profile helpers, and an optional local DuckDB catalog.
The protocol specification, schemas, examples, and cross-language conformance
vectors live in the separate
open-computation-lifecycle
repository. The SDK follows that specification; it does not define it.
Full SDK documentation is published at evanz.github.io/oclp-python.
pip install "oclp[duckdb]"Omit [duckdb] if the local record catalog is not needed. The SDK is an
experimental pre-1.0 package: APIs and protocol support may change between
minor releases. Pin a published version for reproducible deployments.
For unreleased changes, install directly from GitHub:
pip install "oclp[duckdb] @ git+https://github.com/EvanZ/oclp-python.git@main"Replace main with a reviewed immutable commit SHA when testing an unreleased
build reproducibly.
For development:
git clone https://github.com/EvanZ/oclp-python.git
cd oclp-python
uv sync --group dev
uv run pytest
uv run ruff check .oclp is deliberately an SDK, not an orchestrator or a hosted provenance
service. Applications decide when to create records; consumers such as
Cyclops can then inspect them.
The duckdb extra supplies a simple local catalog for resolving
content-bound records and their locations. It is optional implementation
infrastructure, not a requirement of the OCLP standard.
GitHub main contains ongoing development. PyPI receives intentional,
versioned releases published from a GitHub Release through PyPI Trusted
Publishing. Early releases use PEP 440 pre-release versions (such as
0.3.0a0) while the OCLP protocol and SDK API are still evolving. See the
GitHub releases for changes
and installation versions. Maintainers can follow the
release instructions.
The bike-demand service demo is a staged, self-contained consumer project for returning to an end-to-end OCLP design: source data, feature preparation, temporal model folds, evaluation, model release packaging, and FastAPI inference. It has its own dependencies so the SDK's core installation remains small.