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.9.0 is published on 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.9.0.tar.gz (153.8 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.9.0-cp39-abi3-win_arm64.whl (2.8 MB view details)

Uploaded CPython 3.9+Windows ARM64

pyodcs-0.9.0-cp39-abi3-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.9+Windows x86-64

pyodcs-0.9.0-cp39-abi3-win32.whl (2.7 MB view details)

Uploaded CPython 3.9+Windows x86

pyodcs-0.9.0-cp39-abi3-musllinux_1_2_x86_64.whl (3.7 MB view details)

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

pyodcs-0.9.0-cp39-abi3-musllinux_1_2_i686.whl (3.7 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

pyodcs-0.9.0-cp39-abi3-musllinux_1_2_armv7l.whl (3.5 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

pyodcs-0.9.0-cp39-abi3-musllinux_1_2_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

pyodcs-0.9.0-cp39-abi3-manylinux_2_28_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

pyodcs-0.9.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

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

pyodcs-0.9.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.5 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ s390x

pyodcs-0.9.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (4.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ppc64le

pyodcs-0.9.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (3.7 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ i686

pyodcs-0.9.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

pyodcs-0.9.0-cp39-abi3-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

pyodcs-0.9.0-cp39-abi3-macosx_10_12_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pyodcs-0.9.0.tar.gz
Algorithm Hash digest
SHA256 9f79e5f13778b8a4750b2da9b71f74194dff77147b05e08fbde53dbd45f6ec9b
MD5 dd43f79f8dff59205979f45fa64f45c7
BLAKE2b-256 f9028b8c86415720548d57ed1696f974147d43c42af224780fab0e37b7da0ba7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 90b02a46bbd9bacd50083f4950ed46ede78e6911bb160559cfb27e31c4780126
MD5 cad257948b03137e78185511b85ef884
BLAKE2b-256 2ab9eb8c7408075019461b4ded84c6f1453872491ced89fb1bdd6a2f283d7dd8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyodcs-0.9.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.0 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.9.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e59c1c0c579154efdc5896fca2236a119499436d9d46e168d826bd83bdb04895
MD5 2815dd88dcec79d664d59209b4bbabdd
BLAKE2b-256 7ba9123f1f00f6612c131d2f6f54ae0a17683e28203c329a82d3972e3314f3a8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 225f0f11fdcf774d1e8bfadbe7f6b5f2082fdcc8b16449c169f988dbbaa0f7da
MD5 27232a963b75346ba769f5b641ac2450
BLAKE2b-256 3430ebb71ee9b96f834ff888aeebee7d504a541b3ca1df6ae972d67cc9a98d81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 50c7f920154abfb26ccc6f098f08c1e394d921c61cf2c15718cfadf978abe1e4
MD5 e7be6c9497f6df972b3341027d08cc4e
BLAKE2b-256 02b80c828608fc852eae0856c216b5998b6b624a6897e21708f19f0c687238a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8ebbefe1e295c094a311bf63f791012ef2b872fe7aadcb5958e5e400a124cb13
MD5 94155054a1ed591e9c580920ee4ef8b3
BLAKE2b-256 6c1f3d8c6c1815a1696eb243e22e087bee865b2d9da0c410c228eb2b97064271

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 72f266026e7d410c1d1b6cb3b62629a47a304f1d34e99e047137a7f638de86b6
MD5 5169495a2bb9ba063689f1ab09ea4be1
BLAKE2b-256 b8387fa7d4cdac83a1d8291cb5c07fafc89ee9bcc398f4c38c88a531da03b472

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 96e2bc222b037a02d78b6bf5ce8fe3b37f0d9528a96e596f58aecf73f272ce63
MD5 85d5ec74b0cb2009363c0b6c40d32391
BLAKE2b-256 a24ec9a6214492208a5fefcd95d2b74644d3f0c245abb756799150a034a56df4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 77d063ba4f8ccb95df72c9a5de0968b792bffe87b5d5b160318b5931280d85e1
MD5 c3610286378aa5287c2fdc964fdd11da
BLAKE2b-256 55dc00b5b418409a932fa0109ff5dd4175debbbf7540cddf9eadfe1fb7abf4b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb5f2c7a1287d8dabde9ff339f07b426b7c622ceb6b1012f3882218e0263b86a
MD5 c6da412173ea306bd364d3da6828a43a
BLAKE2b-256 65e53c61f9905b21efe54e3128aad04b7fdff435cb00596aedecafdcdaeca5ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a7d2792293a9b5d19fb0fe4f77229dae8f04d7d6ee6bb321e309e7a171512ba2
MD5 9296ea3ce97925d0d5d50cc05e9e3696
BLAKE2b-256 33e34f79b9cb8d4f38468d47b1fcf8c0d697aea480426f623446ca94d9162609

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 9bc3005b1bb1b209181f6f7e0a9a32669615b4efa38be912eaa7b1c9f09fb5a1
MD5 9aa93999966b45ffc7aa859add8bffa6
BLAKE2b-256 f9dd8e78f4a437c01f3a2efdcdafcf12cd64364f38d9970b12a5d223dd0a47e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 43decc96977852bda24da893759be64a64f312099b403167b213b4018976d2da
MD5 a6c4ed86f4db3b12566bfc5d821d1dcd
BLAKE2b-256 504cab0c62412739e2bc212c821f972df444747362ca6c50dcaf5165b903c1f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ec2dd9b22b0698976f73bf4e221984e78b2f37b9bf95c3787930fc86349f470c
MD5 3f8c7224a6e84ea160cc282c9c1b10c2
BLAKE2b-256 302f4449aad051d9bd8a2ef274388ed13871c6384b5f950e1d48442728c92e8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f2fad462c6d2d9f9137a386a689db1758f195bc0e4303409a2c710db336a168
MD5 1d5580c0f8c0291f0b2cab2b9e81017c
BLAKE2b-256 60b8e15872a9bceb868c7eb1df5b865998d7af0b9c5a0d4f169542e624bf4b13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.9.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8c88b976fe08b65ace509892bfba11858b6d8b88e128fcd59e7d457547ff81d1
MD5 7d885ee165f05e3f7922f18b8fddfcac
BLAKE2b-256 908d223ec5f786f704ce4af05caf69235f5268747f3c015a476f2c681ea5b878

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