Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Data Product SDK

Turn an ODCS data contract plus a set of pure transforms into a running, quality-gated, multi-target data product. One codebase runs on DuckDB locally and Databricks/Spark in production, behind a ports/adapters seam, with a Write-Audit-Publish quality gate derived entirely from the contract.

Proprietary software. This package is not open source. Installing it grants you the right to use it; it does not grant the right to redistribute it or to create derivative works. See the LICENSE file inside the distribution for the full terms.

Install

pip install dataproduct-sdk                 # DuckDB target (default)
pip install "dataproduct-sdk[databricks]"   # + the Databricks/Spark production target
pip install "dataproduct-sdk[api]"          # + serve a published port as a REST endpoint

Requires Python 3.12+.

Scaffold a product

dataproduct init            # interview -> a complete, green product repo
cd <your-product>
dataproduct check           # the fitness-function battery
dataproduct run             # transform -> audit -> publish

What a product looks like

# product.py
from dataproduct import Product
import transforms as T

product = Product(name="orders", domain="sales")

@product.table("orders")
def orders(src):
    return T.build_orders(src.read("orders_raw"))

@product.view("public_orders", reads=["orders"])
def public_orders(orders):
    return T.build_public_orders(orders)

product.enable_observability()

You write three things: transformation logic (pure ibis expression-to-expression functions), declared constraints (an ODCS contract), and topology (which output ports exist and what feeds them). The SDK supplies everything else.

What the SDK does for you

Contract-derived quality Row and dataset rules are projected from the ODCS contract — no second place to keep them in sync. Each rule maps to an action: warn, quarantine the row, or hard-fail the dataset.
Write-Audit-Publish Every port is staged, audited, and only then published — by shape. Tables get an atomic swap, views are defined only after the audit passes, APIs get a black-box audit. A failed gate leaves the last good data serving.
Forensic quarantine Rejected rows are kept with the rule that rejected them, and completeness is accounted for so nothing silently disappears.
Portability Core and transforms are written against the ibis expression API only, so the identical pipeline and the identical gate run on DuckDB and on Databricks. Enforced, not just intended.
Fitness functions dataproduct check runs a battery of architectural checks — transform purity, module boundaries, WAP coverage, contract lint, schema conformance, placement drift.
Schema evolution dataproduct evolve plans a contract change and gates on plan freshness.
Offline introspection dataproduct explain projects what a run would do without touching a warehouse; dataproduct run --dry-run provably writes nothing.

CLI

dataproduct init | run | serve | audit | docs | check
             quarantine | observability | evolve | generate
             explain | contract draft

Add --format json to explain and run --dry-run for machine-readable output.

Extending it

Targets are resolved through the dataproduct.adapters entry-point group, so a new backend is a separate distribution — no fork and no change to this package. The core depends only on the Protocols in dataproduct.ports.

Licence and support

Proprietary — copyright (c) 2026 Leandro Kellermann de Oliveira, all rights reserved. For redistribution, OEM bundling, a source licence, or support: lkellermann@leandroasaservice.com

Metadata

Release files for dataproduct-sdk 0.1.0rc1

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

Built distribution (wheel)

Table of built distributions (wheels) for dataproduct-sdk 0.1.0rc1
File Interpreter ABI Platform
dataproduct_sdk-0.1.0rc1-py3-none-any.whl Python 3 none any Details

Release files / dataproduct_sdk-0.1.0rc1-py3-none-any.whl

Download URL dataproduct_sdk-0.1.0rc1-py3-none-any.whl
Size 147.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d8f250cad5fbd9cba2ed44aa20daf5a3d0549e16ee36d1158eb425162e9df91
BLAKE2b-256 checksum
How to use checksums
1387b8eafff9e2b1e6e458eadd423ed23a73b4af195f4d19efdf60f73266fd84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0rc1 This release

1 release file

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