Data Product CLI
The dataproduct CLI is an open-source command-line tool for working with
data products defined with the
Open Data Product Standard (ODPS).
It is the data-product sibling of
datacontract-cli (which
targets the Open Data Contract Standard) and mirrors its technology and
release mechanism. The tool is written in Python and can be used standalone, in
CI/CD, or as a Python library.
The behavior of each command is specified in
specs/.
Install
uv tool install --python python3.11 dataproduct-cli
# or
pip install dataproduct-cli
Commands
init — create a data product
dataproduct init # writes ./dataproduct.odps.yaml
dataproduct init my.odps.yaml # custom path
dataproduct init --overwrite # replace an existing file
dataproduct init --template <url|path> # seed from a template or existing product
lint — validate against the ODPS standard
dataproduct lint # lints ./dataproduct.odps.yaml
dataproduct lint my.odps.yaml
dataproduct lint --all-errors # report every schema violation
dataproduct lint --output-format junit --output TEST-dataproduct.xml
dataproduct lint --json-schema ./odps.schema.json # validate against a custom schema
Validation is schema-only in 0.1: the data product is checked against the
bundled ODPS v1.0.0 JSON Schema. Exit code is 0 when valid, 1 otherwise.
publish — publish to Entropy Data
export ENTROPY_DATA_API_KEY=... # from Entropy Data → Settings → API Keys
dataproduct publish my.odps.yaml
publish sends PUT {host}/api/dataproducts/{id} with an x-api-key header.
The host defaults to https://api.entropy-data.com and can be overridden with
ENTROPY_DATA_HOST. The referenced team must already exist in your org.
Configuration
| Purpose | Variable (with fallbacks) |
|---|---|
| API host | ENTROPY_DATA_HOST → DATAMESH_MANAGER_HOST → DATACONTRACT_MANAGER_HOST → https://api.entropy-data.com |
| API key | ENTROPY_DATA_API_KEY → DATAMESH_MANAGER_API_KEY → DATACONTRACT_MANAGER_API_KEY |
.env files are loaded automatically.
Use as a library
from dataproduct.data_product import DataProduct
run = DataProduct(data_product_file="dataproduct.odps.yaml").lint()
assert run.result == "passed"
DataProduct(data_product_file="dataproduct.odps.yaml").publish()
Development
See AGENTS.md.
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dataproduct_cli-0.0.1.tar.gz.
File metadata
- Download URL: dataproduct_cli-0.0.1.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44d14c0bdd271a5f8a41f4b1a7254c720f8e90d2fa44b9e1c6dc63c5ce89b0df
|
|
| MD5 |
0ec93d6277a943a8100cbb40af756b1f
|
|
| BLAKE2b-256 |
dc244950c06b204f96bd33328d5520d624435c583c34fd9f93a4d4b903737ca9
|
Provenance
The following attestation bundles were made for dataproduct_cli-0.0.1.tar.gz:
Publisher:
release.yaml on datacontract/dataproduct-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dataproduct_cli-0.0.1.tar.gz -
Subject digest:
44d14c0bdd271a5f8a41f4b1a7254c720f8e90d2fa44b9e1c6dc63c5ce89b0df - Sigstore transparency entry: 2406550536
- Sigstore integration time:
-
Permalink:
datacontract/dataproduct-cli@3920952890e2355fa71a1a41d8e119ca1c634f84 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/datacontract
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@3920952890e2355fa71a1a41d8e119ca1c634f84 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dataproduct_cli-0.0.1-py3-none-any.whl.
File metadata
- Download URL: dataproduct_cli-0.0.1-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07db0ce734946427d0f7ee0f6f4f3103c7dad8fe19533ddd4609590c9269aee0
|
|
| MD5 |
dca4f27c894ec74e6bc99ee218469cf9
|
|
| BLAKE2b-256 |
214153aa6d45730dd5c487983c062640320bdeb20b67643dbaecd873130d502d
|
Provenance
The following attestation bundles were made for dataproduct_cli-0.0.1-py3-none-any.whl:
Publisher:
release.yaml on datacontract/dataproduct-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dataproduct_cli-0.0.1-py3-none-any.whl -
Subject digest:
07db0ce734946427d0f7ee0f6f4f3103c7dad8fe19533ddd4609590c9269aee0 - Sigstore transparency entry: 2406550545
- Sigstore integration time:
-
Permalink:
datacontract/dataproduct-cli@3920952890e2355fa71a1a41d8e119ca1c634f84 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/datacontract
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@3920952890e2355fa71a1a41d8e119ca1c634f84 -
Trigger Event:
push
-
Statement type: