Skip to main content

Reference implementation of the Open Data Contract Standard (ODCS)

Project description

odcs — Rust & Python reference implementation for ODCS

CI Crates.io PyPI Documentation License

odcs validates Open Data Contract Standard (ODCS) YAML/JSON files locally and in CI.

It checks that your contract document is well-formed and conforms to ODCS v3.1.0 — schema, quality rules, SLAs, ownership, and server metadata. It does not run quality checks against live data.

Release: 0.7.0 is on main and ready to publish. Push tag v0.7.0 to release to crates.io and PyPI. See Release status.

Install → validate in 60 seconds:

cargo install odcs   # or: pip install pyodcs
odcs validate contract.yaml

Until v0.7.0 is published, unpinned installs from crates.io/PyPI may serve 0.6.0. Pin 0.7.0 or install from source — see Release status.

New to ODCS? Read What is ODCS? first.

Upstream ODCS 3.1.0
Rust crate odcs
Python package pyodcs
Documentation odcs.readthedocs.io
Rust API docs docs.rs/odcs

Quick start

Save a minimal contract as contract.yaml:

version: "1.0.0"
apiVersion: "v3.1.0"
kind: "DataContract"
id: "hello-contract"
status: "draft"
schema:
  - name: customers
    properties:
      - name: customer_id
        logicalType: string
        required: true
odcs validate contract.yaml   # prints: valid

From code:

import pyodcs

report = pyodcs.parse_and_validate(open("contract.yaml", "rb").read(), format="yaml")
assert pyodcs.is_valid(report)

Full walkthrough: Getting started · Installation

Documentation

Full docs: odcs.readthedocs.io

I want to… Read
Learn what ODCS is What is ODCS?
Get started in 5 minutes Getting started
Install Rust or Python Installation
Choose the right API API decision guide
Use the CLI CLI
Integrate in CI/CD CI/CD
Fix validation errors Troubleshooting
Browse examples Examples
Contribute Contributing
Report a security issue SECURITY.md

Status: Alpha pre-1.0 — see ROADMAP.md and Release status.

This repository implements the standard; it is not the ODCS specification itself.

Pipeline

ODCS Document → Parser → Canonical Object Model → Validator → Diagnostics

Execution, pipeline composition, and transformation semantics are out of scope. See non-goals.

Contributing

See CONTRIBUTING.md. When implementation guidance conflicts with the upstream ODCS specification, the upstream specification wins.

License

Apache License 2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyodcs-0.7.0.tar.gz (133.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyodcs-0.7.0-cp39-abi3-win_arm64.whl (2.7 MB view details)

Uploaded CPython 3.9+Windows ARM64

pyodcs-0.7.0-cp39-abi3-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.9+Windows x86-64

pyodcs-0.7.0-cp39-abi3-win32.whl (2.6 MB view details)

Uploaded CPython 3.9+Windows x86

pyodcs-0.7.0-cp39-abi3-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

pyodcs-0.7.0-cp39-abi3-musllinux_1_2_i686.whl (3.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

pyodcs-0.7.0-cp39-abi3-musllinux_1_2_armv7l.whl (3.4 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

pyodcs-0.7.0-cp39-abi3-musllinux_1_2_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

pyodcs-0.7.0-cp39-abi3-manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

pyodcs-0.7.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

pyodcs-0.7.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ s390x

pyodcs-0.7.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.8 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ppc64le

pyodcs-0.7.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (3.5 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ i686

pyodcs-0.7.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

pyodcs-0.7.0-cp39-abi3-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

pyodcs-0.7.0-cp39-abi3-macosx_10_12_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file pyodcs-0.7.0.tar.gz.

File metadata

  • Download URL: pyodcs-0.7.0.tar.gz
  • Upload date:
  • Size: 133.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for pyodcs-0.7.0.tar.gz
Algorithm Hash digest
SHA256 9832ab6fbdbdd3b53fbc8328d36492f5b98b294ee494f8b22ef05a31af016b62
MD5 7dc4c5f1f9dc528978f783cf2f71a85b
BLAKE2b-256 26446705a62ce6629bcfc7acec3b8659d163507b6eb7935cfe2fb6aed5136f04

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-win_arm64.whl.

File metadata

  • Download URL: pyodcs-0.7.0-cp39-abi3-win_arm64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.9+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 0d3f00ea64db897891e2a2be79e83b9f7d982d576980605f709adf2e1f1afbc9
MD5 24d59bc448d884ee5fd386c9e98f6033
BLAKE2b-256 3a3a8b8cf31ed82c4a8dedd713aeb3945d372a87f6ca667cb9f5ac46f2bc6175

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: pyodcs-0.7.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d7b641e646fab07b1a357a51a1040b34118331087b1bc56773f7df56bdfbacbc
MD5 dd0268bb0b0061bbcd2b33cd27ddf6e4
BLAKE2b-256 03d90ca55ea92c5406d3519e92d781bcccd268e3986cc4d462e8b05fb388382e

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-win32.whl.

File metadata

  • Download URL: pyodcs-0.7.0-cp39-abi3-win32.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: CPython 3.9+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 cafbff64e1a772ea038b88e1f74acb614c891882bf3bf9d58e10741060e9be00
MD5 bcf28cb48082c1d3777a52f86fb5f12f
BLAKE2b-256 96b507b79cf8da266f1cc1c024aff8ec8101b484da4cca8d536befe24e2ace24

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 18d1496c28052c0be633233cb8fff229f73218037b4bd79e95c788a74823606d
MD5 f64fffbadc82585b317d4889a2a06950
BLAKE2b-256 6ce4c7795136de5decf1b1ee05e3b03eb019c53023fabcd91f664e2a4eee85ea

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 0605ea8f160ebc1ca6462cbcc9d6aecaecbbd5303a378bfaa7696902eac76ad3
MD5 340df5d5e5b354022ce3957f7c8b6305
BLAKE2b-256 8b3766dfee417cb0c0d9e6547426937732d544f2fc90cdee91575a55031ff359

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 512480d0f36a20262363a3fded3d07b7a163bf3ad08d50a33ff6c39dfe562db0
MD5 3004a181b081e1aa9007d8803d5b193d
BLAKE2b-256 b2327913da00d5d22f54618525381d7645d74fea8190c5738952845394bbb01e

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8918e015060531347218577327179e55c7e3bfc1edae23706730324b57cfd7ee
MD5 ab200de5bcff0a23d29ce367714852ce
BLAKE2b-256 94449eff36674c4ea24927b4cbdce1942a626562189003fd9052c36150b191e3

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 57c80f14f59e23dba670d5e3e121f0a0ccf29732e453b045b38683ea37bd576d
MD5 a30ef708b5523a7efddf51194124b130
BLAKE2b-256 baeb98ebe3c3bfed10799dc287450ea2ebe9c5aabed43b7cd00404163b1f4337

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e3fb7a0e6300af8c579aed3997efc922bc38cab39db0c29f9a121e29df3f3d73
MD5 ea6ec25ef1e73663dbf12cd5a886e954
BLAKE2b-256 4df5d59400bbffe00b6331cb905f5e30b3d5b95d69892a59c4a97e405fc8592f

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 9a5ac37a9941026bc2c0d6bc5330d24c80172df7af8934c38ba9a63d979941b8
MD5 b7ec661917b9d2928282266569aa3667
BLAKE2b-256 6eadfd1c26d522072357fd74b5087cb02198b8017b3a2b93b944e36a774553ec

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7f40bb9f2b8864cde89dd804ad319a38fcc07841c41d26783685384a5d6e8bd4
MD5 edf3fa3cf2b1e2c8ece43d3493dc8d67
BLAKE2b-256 0f0dc4ac44d7d96f03eb6f8fca9e0617159b357abc775a94a970f6b0ab8cb2d4

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 06f8ee94242c848101fb042bc55d947dc28455912e892b8206302a7977abbcc0
MD5 448e0ecd087f0655819788981f3f6a9a
BLAKE2b-256 af5c67158fbff2f4cb74dd019a4fc1ebc91bdde0147141a2e1f6346d586f9a67

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0a065a2bde3fe20527028a5dadb05acf56e2834895f4ef2fccef57ec13c63eb8
MD5 29fdbe793f64d2c4251dd8f80d80b278
BLAKE2b-256 3573370cc18f0140e8f761dba7c469dc243444bd37e5d771461509b25f1e947b

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a331adecd0b1b3c4ff598a434e3b0c737bd6458ddfe60b9c2b1b36168c5d3765
MD5 9fe50cb64b1b0098ab24038ec1ca959c
BLAKE2b-256 1fd89264e6c1b62b0f78fae3d9cc94358162bd0d3783fbd14d8d9cce68d37177

See more details on using hashes here.

File details

Details for the file pyodcs-0.7.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyodcs-0.7.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 dab80b7e3c4a416f3c3f9de976e0f38f1edfbffc72e417cdfdd80f33b02df3fd
MD5 4a6ff9227b298531c18cc817de0c3a97
BLAKE2b-256 6fcdff277bad75c48c6a9be390e25f05be369f20487112f14aecbdc960a128ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page