Metadata-Version: 2.4
Name: contractmodel
Version: 0.1.0
Summary: Python-native data contracts powered by a Canonical Contract Model and Pydantic.
License-File: LICENSE
Requires-Python: >=3.10
Requires-Dist: pydantic>=2.7
Requires-Dist: pyyaml>=6.0
Provides-Extra: all
Requires-Dist: pandas>=2.0; extra == 'all'
Requires-Dist: polars>=0.20; extra == 'all'
Requires-Dist: pyarrow>=15.0; extra == 'all'
Requires-Dist: rdflib>=7.0; extra == 'all'
Requires-Dist: rich>=13.0; extra == 'all'
Requires-Dist: typer>=0.12; extra == 'all'
Provides-Extra: cli
Requires-Dist: rich>=13.0; extra == 'cli'
Requires-Dist: typer>=0.12; extra == 'cli'
Provides-Extra: pandas
Requires-Dist: pandas>=2.0; extra == 'pandas'
Provides-Extra: parquet
Requires-Dist: pyarrow>=15.0; extra == 'parquet'
Provides-Extra: polars
Requires-Dist: polars>=0.20; extra == 'polars'
Provides-Extra: semantic
Requires-Dist: rdflib>=7.0; extra == 'semantic'
Description-Content-Type: text/markdown

# ContractModel Implementation Blueprint

ContractModel is a Python-native data contract framework that uses a Canonical Contract Model (CCM) as the stable internal representation and bridges ODCS, Pydantic V2, Pandas, Polars, FastAPI, quality tools, registries, and semantic web standards.

This repository blueprint is designed to be handed directly to Cursor, Claude Code, or another AI coding assistant.

## Build Order

1. Implement the Canonical Contract Model.
2. Implement ODCS import.
3. Implement Pydantic model generation.
4. Implement record and JSON validation.
5. Implement Pandas and Polars validation.
6. Implement contract diffing.
7. Implement CLI.
8. Implement exports.
9. Implement plugin system.
10. Implement semantic extensions.

## Core Package

```python
from contractmodel import DataContract

contract = DataContract.from_yaml("examples/customer_events.odcs.yaml")
CustomerEvent = contract.to_pydantic()

result = contract.validate_record({
    "event_id": "550e8400-e29b-41d4-a716-446655440000",
    "customer_id": "C123",
    "event_timestamp": "2026-06-23T12:00:00Z"
})
```

## Design Principle

The CCM must not mirror ODCS, Pydantic, JSON Schema, Avro, SQL, or any one vendor format. All external formats are adapters into and out of the CCM.
