Skip to main content

Open Data Products Python SDK

PyPI version Python Support License: Apache-2.0 PyPI Downloads

open-data-products is a Python SDK and CLI for the OpenDataProducts.org standards family: ODPS, ODPC, ODPG, ODPV, and ODPR.

Use it to validate data product documents, build catalogs and graphs, inspect portfolio source intake, run LLM-assisted generation workflows, expose a local MCP server, and give AI agents a consistent standards-aware API.

Install

pip install open-data-products

Optional extras:

# Outlook .msg intake support
pip install "open-data-products[email]"

# Data Contract CLI integration
pip install "open-data-products[contracts]"

# Embedded llama.cpp generation support
pip install "open-data-products[llama-cpp]"

# Development tools
pip install "open-data-products[dev]"

Python 3.8 or newer is required.

What It Provides

Area Capabilities
Cross-spec API Detect, load, validate, explain, summarize, and resolve references across ODPS, ODPC, ODPG, and ODPV documents
CLI Run validation, generation, catalog, graph, vocabulary, portfolio, OKF, contract, resource, manifest, and MCP workflows through open-data-products
Portfolio workflows Build, refresh, sync, render, localize, explain, and inspect portfolio workspaces from objectives, use cases, signals, and product source lanes
Document intake Read Markdown, text, YAML, JSON, EML, MSG with the email extra, DOCX, PPTX, PDF, CSV, and XLSX source files for portfolio workflows
Agent surfaces Run a safe-class stdio MCP server and generate an ARWS-compatible agent manifest
LLM generation Generate ODPC fragments, ODPG graphs, and ODPS product YAML from source notes using local or hosted providers
Data Contracts Wrap ODCS 3.0/3.1/3.2 contracts into conservative ODPS 4.2 drafts, resolve ODPS contract references, validate external contracts through optional datacontract-cli, extract schemas, check alignment, and generate reports

Quick CLI Examples

Most commands print human-readable output by default. Add --json for CI, scripts, MCP clients, and agents.

Run the SDK through Python:

# Validate and inspect standards documents
python3 -m open_data_products.cli validate examples/product.yaml
python3 -m open_data_products.cli explain examples/product.yaml --json
python3 -m open_data_products.cli refs examples/product.yaml --json
python3 -m open_data_products.cli summary examples/product.yaml

# Discover bundled schemas, prompts, vocabulary records, and guidance
python3 -m open_data_products.cli resources --json
python3 -m open_data_products.cli resources --id generation.prompt.system --json

# Agent surfaces
python3 -m open_data_products.cli manifest --json
python3 -m open_data_products.cli serve

After installation, the console script provides the same commands:

open-data-products validate examples/product.yaml
open-data-products explain examples/product.yaml --json

Wrap an ODCS contract without changing its source:

open-data-products product wrap-contract --input contracts/orders.yaml \
  --output products/orders.yaml --json

The resulting ODPS document is a private draft with reported defaults and missing business evidence. It uses the original contract as an external reference unless --inline-contract is selected.

Choose the draft depth with optional enrichment:

# Minimal technical wrapper
open-data-products product wrap-contract --input contracts/orders.yaml --output products/orders.yaml

# Business description and discovery tags
open-data-products product wrap-contract --input contracts/orders.yaml --output products/orders.yaml --enrich

# Rich ODPS draft
open-data-products product wrap-contract --input contracts/orders.yaml --output products/orders.yaml --enrich --full-draft

See Data Contract workflows for the generated fields and provider configuration.

Discover technical portfolio evidence from a contract repository without declaring any contract to be an approved data product:

open-data-products portfolio discover-contracts contracts/ \
  --output portfolio-discovery/ --json

The command writes a normalized contract inventory, a source-linked Data Contract Intelligence artifact, review-only typed opportunities, and a static HTML report. The report separates standalone product candidates, multi-contract boundary proposals, and rationalisation opportunities; it also lists contracts without a current opportunity signal. Duplicate and schema-overlap findings are technical evidence, not approved product boundaries.

Without --json, the command prints the same inventory, interface analysis, priority evidence, typed opportunities, and no-current-signal contracts as the HTML report. Use --json for the same information in structured form.

Portfolio source intake can be inspected without calling an LLM:

python3 -m open_data_products.cli portfolio intake \
  --objectives sources/objectives/ \
  --use-cases sources/use-cases/ \
  --signals sources/signals/ \
  --products sources/products/ \
  --config generation.config.yaml \
  --json

Portfolio build uses the same source lanes and prompt budget controls:

python3 -m open_data_products.cli portfolio build \
  --objectives sources/objectives/ \
  --use-cases sources/use-cases/ \
  --signals sources/signals/ \
  --products sources/products/ \
  --output generated/portfolio/

LLM Generation

Generation defaults to local Ollama-compatible settings, and can also use embedded llama.cpp, OpenAI-compatible local servers, NVIDIA NIM, Claude, and hosted providers configured in generation.config.yaml.

open-data-products config generation --copy-to generation.config.yaml
open-data-products config generation --config generation.config.yaml --check

open-data-products generate \
  --config generation.config.yaml \
  --input source_docs/products/ \
  --kind product-reference \
  --output generated/

Documentation

The full SDK guide that used to live in this README is now here:

Focused user guides:

Project references:

Development

git clone https://github.com/Open-Data-Product-Initiative/odps-python
cd odps-python
pip install -e ".[dev]"
pytest -q

Before publishing a package, verify the PyPI description renders:

python3 -m build
python3 -m twine check dist/*

Acknowledgments

Thanks to the Open Data Product Initiative community, Chris Howard / Kitard for the original odps-python foundation, devlouie for the MCP layer and agent surface, and the Data Contract CLI project for the optional contract execution engine.

License

Apache License 2.0. See LICENSE for details.

Metadata

Release files for open-data-products 0.6.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for open-data-products 0.6.4
File Size Uploaded Provenance Actions
open_data_products-0.6.4.tar.gz 3.3 MB With provenance Details for open_data_products-0.6.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for open-data-products 0.6.4
File Interpreter ABI Platform Actions
open_data_products-0.6.4-py3-none-any.whl Python 3 none any Details for open_data_products-0.6.4-py3-none-any.whl

Total release size: 3.8 MB

Release files / open_data_products-0.6.4.tar.gz

Download URL open_data_products-0.6.4.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
3b2d350aeac369dd8f161cbcea95766fc9444db3f35701cdad51b38a161816c4
BLAKE2b-256 checksum
How to use checksums
5b21673f665a3f3b5008389b5a82f7094409b2e87fcfeef2132b274fd3f6735b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.

Transparency log

Release files / open_data_products-0.6.4-py3-none-any.whl

Download URL open_data_products-0.6.4-py3-none-any.whl
Size 537.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f398c9faf28193c6706209916dd09e2d9e4d480fde68a6bf0d32520fa3ee31bb
BLAKE2b-256 checksum
How to use checksums
aefa86b1961a6a36647629483839c91e71fc9b41e89f5396120e3bf0e645e505
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.

Transparency log

Security for open-data-products 0.6.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for open_data_products-0.6.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.6.4 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page