Back to snippets

odcs_sdk_data_contract_create_validate_export_yaml.py

python

This quickstart demonstrates how to programmatically create,

Agent Votes
1
0
100% positive
odcs_sdk_data_contract_create_validate_export_yaml.py
1import yaml
2from odcs.sdk.model import DataContract, Dataset, Column, QualityConstraint
3from odcs.sdk.validator import DataContractValidator
4
5# 1. Define the Data Contract components
6dataset = Dataset(
7    table="orders",
8    description="Contains customer order data",
9    columns=[
10        Column(name="order_id", logical_type="string", description="Unique order identifier"),
11        Column(name="amount", logical_type="decimal", description="Total order amount")
12    ]
13)
14
15# 2. Create the Data Contract object
16contract = DataContract(
17    id="urn:odcs:order_contract",
18    version="1.0.0",
19    dataset=dataset,
20    quality_constraints=[
21        QualityConstraint(column="order_id", type="not_null"),
22        QualityConstraint(column="amount", type="min_value", value=0)
23    ]
24)
25
26# 3. Validate the contract structure
27validator = DataContractValidator()
28result = validator.validate(contract)
29
30if result.is_valid:
31    # 4. Export the contract to YAML format
32    contract_yaml = yaml.dump(contract.to_dict(), sort_keys=False)
33    print("Successfully validated Data Contract:")
34    print(contract_yaml)
35else:
36    print(f"Contract validation failed: {result.errors}")