Skip to content

OCLP Python SDK

oclp is the reference Python implementation of the Open Computation Lifecycle Protocol (OCLP). It provides strict record models, RFC 8785 canonical JSON, SHA-256 record digests, record and graph validation, profile helpers, and an optional local DuckDB catalog.

The SDK implements the standard; it does not define it. The canonical source for protocol meaning, schemas, examples, and cross-language conformance vectors is the OCLP standard documentation.

What it is for

Use the SDK when a Python application needs to describe durable computation lineage without adopting an orchestration engine or a hosted provenance service. An application chooses when to create Computation, Execution, Artifact, ArtifactSet, Evidence, and Event records. OCLP preserves and validates those observations; it does not run the computation.

application code --> oclp records --> catalog / files / registry --> consumers
                                  \-----------------------------> Cyclops

Cyclops is a separate read-only explorer. It reads published OCLP records but does not change how a producer executes a job.

Optional integrations

The base package has no data-science or model-framework dependency. Install only the integrations a project declares—such as oclp[catboost] or oclp[xgboost]. See Artifact formats and library integrations for the supported representations, their persistence formats, installation extras, and compatibility boundaries.

Boundaries

The SDK intentionally does not provide a scheduler, a workflow DSL, automatic dependency capture, a remote artifact store, or a model tracker. Those are application or ecosystem concerns that can produce and consume the same OCLP records.

Start with getting started, then see records and canonicalization for the core SDK operations. For a complete consumer implementation with CatBoost, a local DuckDB catalog, and parallel MLflow experiment tracking, see the end-to-end bike-demand example.