Back to snippets
odcs_sdk_data_contract_create_validate_export_yaml.py
pythonThis 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}")