Contracts¶
Schema contracts allow you to define and validate the expected shape of your data sources over time.
Models¶
Data contract models.
ColumnContract
¶
Bases: BaseModel
Contract for a single column.
Checks can be simple strings ("not_null", "unique") or dicts with params ({"range": {"min": 0.01}}, {"accepted_values": ["USD", "EUR"]}).
SchemaContract
¶
Bases: BaseModel
Schema contract defining expected columns.
SLAConfig
¶
Bases: BaseModel
Service Level Agreement configuration.
ContractConfig
¶
Bases: BaseModel
Full data contract configuration.
ContractViolation
¶
Bases: BaseModel
A single contract violation.
SchemaDrift
¶
Bases: BaseModel
Schema drift detected between contract and actual table.
ContractResult
¶
Bases: BaseModel
Result of contract validation.
ContractChange
¶
Bases: BaseModel
A single change between two contract versions.
Validator¶
Data contract validation.
validate_contract(contract, connection, sources=None)
¶
Validate a data contract against a live data source.
Performs three types of validation: 1. Schema check: compares actual columns against contract definition. 2. SLA check: validates freshness, completeness, availability. 3. Per-column checks: expands column-level checks (not_null, unique).
Diff¶
Contract diff: compare two versions of a data contract.
diff_contracts(old, new)
¶
Compare two contract versions and return the list of changes.
Identifies added/removed/changed columns, type changes, SLA changes, and marks breaking changes.