{"library":"open-data-contract-standard","title":"Open Data Contract Standard (Python)","description":"The `open-data-contract-standard` Python library provides a Pydantic model for reading and writing YAML files conforming to the Open Data Contract Standard (ODCS). It's extracted from the Data Contract CLI and its version number mirrors the major and minor versions of the ODCS it supports. The library is actively maintained, currently at version 3.1.2, supporting ODCS v3.1.0 and above.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install open-data-contract-standard"],"cli":{"name":"datacontract","version":"sh: 1: datacontract: not found"}},"imports":["from open_data_contract_standard.model import OpenDataContractStandard"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from open_data_contract_standard.model import OpenDataContractStandard\n\n# Example 1: Load a data contract specification from a string\ndata_contract_str = \"\"\"\nversion: 1.0.0\nkind: DataContract\nid: 53581432-6c55-4ba2-a65f-72344a91553b\nstatus: active\nname: my_table\napiVersion: v3.1.0\n\"\"\"\ndata_contract_from_string = OpenDataContractStandard.from_string(data_contract_str)\nprint(\"--- Data Contract from string ---\")\nprint(data_contract_from_string.to_yaml())\n\n# Example 2: To load from a file, you would use from_file\n# Ensure 'data_contract.yaml' exists in the same directory\n# with valid ODCS content for this to run without error.\n# import os\n# file_path = 'data_contract.yaml'\n# with open(file_path, 'w') as f:\n#    f.write(data_contract_str)\n# data_contract_from_file = OpenDataContractStandard.from_file(file_path)\n# print(\"\\n--- Data Contract from file ---\")\n# print(data_contract_from_file.to_yaml())\n# os.remove(file_path) # Clean up file\n","lang":"python","description":"This quickstart demonstrates how to load an Open Data Contract Standard (ODCS) specification from a string using the `OpenDataContractStandard` Pydantic model and then print it back as a YAML string. It includes comments for how to load from a file, which requires an existing YAML file.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"3.1.2","pypi_latest":"3.1.2","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":80,"avg_install_s":3,"avg_import_s":0.72,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"open-data-contract-standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.53,"mem_mb":12.1,"disk_size":"30.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"open-data-contract-standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.7,"import_time_s":0.37,"mem_mb":12.1,"disk_size":"30M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"open-data-contract-standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.98,"mem_mb":13.3,"disk_size":"33.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"open-data-contract-standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3,"import_time_s":0.81,"mem_mb":13.3,"disk_size":"33M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"open-data-contract-standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.99,"mem_mb":13.2,"disk_size":"24.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"open-data-contract-standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.6,"import_time_s":0.98,"mem_mb":13.2,"disk_size":"25M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"open-data-contract-standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.54,"mem_mb":9.6,"disk_size":"24.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"open-data-contract-standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.8,"import_time_s":0.55,"mem_mb":9.6,"disk_size":"25M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"open-data-contract-standard","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"open-data-contract-standard","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":1.6,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}