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.5.0 is on main and ready to publish. Push tag v0.5.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.5.0.tar.gz (126.5 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.5.0-cp39-abi3-win_arm64.whl (2.7 MB view details)

Uploaded CPython 3.9+Windows ARM64

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

Uploaded CPython 3.9+Windows x86-64

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

Uploaded CPython 3.9+Windows x86

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

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

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

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

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

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

pyodcs-0.5.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.5.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.5.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.5.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.5.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.5.0-cp39-abi3-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

pyodcs-0.5.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.5.0.tar.gz.

File metadata

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

File hashes

Hashes for pyodcs-0.5.0.tar.gz
Algorithm Hash digest
SHA256 9e17d82badee03d22c0281bc76dc8c7e4663179cb14e7eacee2b023b9eb90844
MD5 4831264ff605eb7053c9ce175015187d
BLAKE2b-256 6374b42215dc1eb4a32c08a90d5435653a78ac8fddacc11e01c9500c83c4f028

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyodcs-0.5.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.5.0-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 8a54c7a72bd48f2583f72668e6fdc6fe52261b04181b4246f2f1b75fd438c7c8
MD5 ef89bd7fadce372c60d4a3b3fc805d0d
BLAKE2b-256 f45e7ac1d9242593988e845422be8af7a6287c9b5c9a63ad2eadf5d724ace390

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyodcs-0.5.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.5.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fb77a6c3bd4470719d6124e452aacba3f8e7bb7a74c48fd40d76bdebd269f4da
MD5 d1cd5e73debc74f434c0f6daea6541e7
BLAKE2b-256 f4908bb1648961e40987a54be2d9942b68cc0f40d26ff35231aaea6a8a4017fa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyodcs-0.5.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.5.0-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 5cceafb3957a76a49e99c05e175178e139b7c605ea8a1409893dc94cc51a74ca
MD5 0a3b546af7504ae63daa80d0de0ed16d
BLAKE2b-256 55af8514d785b3eb7e719876dd654e2b9ebf94a8ee439de881a2d6334adf8fc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ab86c5876911fa5f8267ce8d832d3ce5dd93ab51c7d256fe393bb35be13646c6
MD5 2fdf5e940ba13a9cf578ed2e3746a7e3
BLAKE2b-256 7e7e7af16e46a3a254a62fec6888c07c285f5f4a95aad1ec5a86190b02a71c68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c1990809cd9194d169fb6374c6316396f2abe8c14f9d327b64d4f0daa9ac1f81
MD5 979d52b1febf3b0ec43bcf99a61a7bf8
BLAKE2b-256 80604d5277d7e1f4fcd98d0ef635d4f0d07f9b8394a629a8ef9ce169ef7ae0eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 b36754be7521d36a10cbce0b478a6f839767453392669c748af48df2774586bc
MD5 ef07830810e8c1a9a68a594a91fed281
BLAKE2b-256 bcdc6db8dc63976c065b9b0bbb86385913872d65d814387e8a53cdaa4fa1304f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4e6dcc5ac322dd1fd78123c7e1ff602f36e5c634b2f7f3b757cb8a9d9b4f0656
MD5 4ddeb8e423d62680d82d2c25100bbfb1
BLAKE2b-256 8a0d507ebc1fd3a8bd3253998b9ad8b318a5673f4440e5a6653f8505501bd5f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d0b3ce0005798ddf9efbafd6717269ae1f17a147f492b31631f57a867e94083e
MD5 c289a83d84838e68e7966840b96d0b39
BLAKE2b-256 d2c538e1fbb38d492b344b49588c31eba5304135fa29c7c80a177740628f38d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 24ca54e7f1ea3727594f7343a7daec967040b5ea93c9f2efe16113e7ec6734d3
MD5 768a78bfb4840019cf486dd1c9634c0d
BLAKE2b-256 65cb290f17018b34f6adc13a287e005e3d819d6b5ed1083a5013663cad0692ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 15a207ed6cc5f4f68c7252badf1f9e596fe3fd323d8c726430c042c794b566e2
MD5 dcff39ed49131d35d611352d12e49a27
BLAKE2b-256 fa3b45206d1d45e48e71430101b003d5272cf1e8f62e5e5b28a2d470eeffb060

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 48372dc92f1bafe86682d4712d9e4180630736d91bbfee258c88baed1484b384
MD5 f98dad44acb0fa866dd8e9a88918224f
BLAKE2b-256 e8041a87b769d5c97353dc21569074194a905605af1df9ad38e93b057c936ef6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e1a2e2cf467479f592b869c96dad51056d3d986834aa814cadeb071e64763af7
MD5 a006e370ef377d26f86c092850e4a2e1
BLAKE2b-256 bdbb6e81a145bf7205526877d0ee2d8f809c5cfc7f2d4c1a0614ab8deca5892e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 69323f6146e61fc752dff72f28b3ad7c290703163703371c7b6e7b6dd49cce98
MD5 eab4b49b6e047c45eab5bc51f5dae107
BLAKE2b-256 73eff241f33de7cf20abdf93fe579965b2f72e754566efc46be42f8fdcdbdfe8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37a9881c232566c79f1705490339ce4553ad2d906b612d8f84cf283d10a09e8e
MD5 6f233e4f61c08c9d992ec941fedc5b04
BLAKE2b-256 3ab401952111a5cee1a4da654892873270b299bb0dadfdf46445886c26d00c67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyodcs-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8eeb3e0bea5bcd0bf09a1381d8fc84c790c79265774d175188d997d8e63c1adb
MD5 dbc199ddae4fde97468730480253fc1d
BLAKE2b-256 9e7c3297a0eb1f143a273040daaaf56c1838c5ca8add81b8d7e864acddbf8297

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