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.6.0 is on main and ready to publish. Push tag v0.6.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

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.6.0.tar.gz (129.6 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.6.0-cp39-abi3-win_arm64.whl (2.7 MB view details)

Uploaded CPython 3.9+Windows ARM64

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

Uploaded CPython 3.9+Windows x86-64

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

Uploaded CPython 3.9+Windows x86

pyodcs-0.6.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.6.0-cp39-abi3-musllinux_1_2_i686.whl (3.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

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

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

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

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

pyodcs-0.6.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.6.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.6.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.6.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.6.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.6.0-cp39-abi3-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

pyodcs-0.6.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.6.0.tar.gz.

File metadata

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

File hashes

Hashes for pyodcs-0.6.0.tar.gz
Algorithm Hash digest
SHA256 1b7bffeb94c8c86f32eb1164f3c959a3210eec20f8a1622b20fac9d2f3adc284
MD5 f4124399c210c3fcdcb0f2707b0a759b
BLAKE2b-256 775737fb6e7de9c3e342bf54f837d40d790fca89f5061a1dd8ec51452d89c41e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyodcs-0.6.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.6.0-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 c3d7fbf6e55d2ff1fab8764cdbc2a83e849d8bceb8d846ebd5cf8306c7fc1376
MD5 3854ccd734494d385eab53548e873020
BLAKE2b-256 50c7270d49aac1a47a3753906f740697fc7f9fe53acd37fb735c5e18ff6a98f8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyodcs-0.6.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.6.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0c79e4a4440c76cf76d7e9000c614a69618daf0b0adc6db163274e782bdda949
MD5 1449eb83def56272e649c132224b439c
BLAKE2b-256 041781b1446b79cb2e82f531b3c852c8d29b067b224e352786715d5727e21f7f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyodcs-0.6.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.6.0-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 d1ea949c95b8ef4382bb1f225c4c6453ce23f3fd61015af924500f7d84998d52
MD5 dfa5ec539479d6d6e398a567c8d7a988
BLAKE2b-256 1366bf9379331393147b642ede96a96dcfa2b9c553526b6a568bbfc8e658bd60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9cba214af20d01013186693672a74d102b83b2f19c03590347241dd2d4253834
MD5 c505224e9fd682c2d79ce71c81a635c9
BLAKE2b-256 d2f191bac3436a05c3a9098fe0b402972e0f959218ed713f5a4939431c336a4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a8c6c5136d2293c960a44b02ccf5d91195236de72bd9b1762efc27bef9104402
MD5 85ece4deeaba78fdc1ab8b6d3f39ae7c
BLAKE2b-256 cbb99dec38d523ca8ae3504c854f1489faf5e02353b5028f724f985e9585938e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 07e8867180003aef1fdbf00e8f39b451b5eb6e35c74043bfd27b08b3e9984051
MD5 f148b5e3bd47ad9abada84774756789a
BLAKE2b-256 ca0f7fc57cc5844574c7265bef5a499b660ffaafd94649899e8e5bcfd398a63d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d4b7e21e11244e87dd8adbf0c12fceea01306743ef58e0f65e6e3f3a1f93e527
MD5 7876c14a154b275fe34b3dd04ce7c181
BLAKE2b-256 9d2fbd97d065ae80390f6ce7ab3a8b8d5d49565ae51fb77291d9c1c925d08901

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 411650b7225e47afca1933c096dcc275d3797a321ce286a4259ffd03aa5de466
MD5 6b44bbab2e86f49a95000af11639cd64
BLAKE2b-256 6edfee2d6b58c7305328541e80153c57db43330600405c8a7ffbdf69f3a0b6cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7bcdb00f54c8acf69d65ce52ea5345996b51e6e358613bff4bb4716916e44e49
MD5 5f0557e22cc92eda41ab077e32ed3094
BLAKE2b-256 a086984b6f3918e50fc98e43d2626506d6e2a2fcb71907b1d8588ce9fc36b297

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 605f7473eff729867ea8045fc75fc3d9e47e6879da016d4a6dc2cd0e00d58861
MD5 3ef9335d7ac3f966cfe603c6f9d24b0a
BLAKE2b-256 68f1334b3602ebf939936b8bcba27d9c2e1316ae9bb8273481cb1a3df5a259ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 34054aa2227dc00f0fd259f6600751e0767118f889a57821ab841150d0d04eb9
MD5 4e10502c7095ec6e5eaa0bc0c4c92bbe
BLAKE2b-256 bb15c958651d7bfa98efb5bd75a38823dd7787bd7374cd2cdb0cc99ab5e774b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 abbfa5bae8c80e307d385283aeec6599214f2a4fcfe670cdcf106955b4fa7a15
MD5 7d446c414d97aad680115bc62308d149
BLAKE2b-256 3dc49b20768ea5784c41c6f8bc19d57029dda93c574da27bfb37491f83993c66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 864fa7cdf0402b83236e11d3fa27265d8b84af6f70da761a819297adfeff9755
MD5 a031fb9effc574117528f1fd07e593d4
BLAKE2b-256 e6902221fa4f3da2885c86e700c780270e1eb81832c2aa3fc023aa31e19d4e53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bcecde4197b3a62791856a9039270dedf9cf157c45b25637511c0dbc84b52f17
MD5 eda6a108f0db620a308a5f487e3d2b70
BLAKE2b-256 2e0620b590d6d6531248fdd249aea242ac67efa1e0795d805345960fa817da7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f4e8894e3949922dedf6097b895b2f558a1b6b82b964c16ff19fe1caa7598124
MD5 23855c02b441b5c3900f0f38f1f283eb
BLAKE2b-256 5376c7fc81cd3269da7578f46050fa513c0f039ee58b9fbad64fd50080ec90bd

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