Where PyCharter fits in your stack¶
Choose PyCharter when the same data requirements need to be reviewed, versioned and executed in more than one place. A contract can guard an application boundary, a pipeline step and an agent's candidate output. Start inside your existing application; grow into declared pipelines and operational evidence when those solve your next problem.
The intended complete experience connects requirements, bounded verification, delivery, independent health and recovery. See the product journey and current capability scope for the distinction between that destination and today's qualified paths.
Choose by the job you need to do¶
The tools below overlap. These are useful starting points, not claims that a tool has only one capability or that PyCharter is a universal replacement. Product descriptions link to their maintainers' documentation, reviewed 2026-10-17.
| Your main job | A useful starting point | When to consider PyCharter alongside it |
|---|---|---|
| Validate typed objects in a Python application | Pydantic defines and validates models | You want reviewable contract files, named rules and reuse across applications or pipeline boundaries |
| Validate tabular data with DataFrame-oriented schemas and checks | Pandera provides data validation for supported dataframe libraries | You also need the requirements carried into contract-bearing pipelines and application/agent checks |
| Define data expectations and run validation workflows | Great Expectations provides expectations and validation tooling | Evaluate which artifact and workflow best fits your enforcement boundaries and existing operations |
| Express and run data quality checks | Soda provides checks and quality workflows | You also want explicit record acceptance inside a Python application or pipeline step |
| Test properties of warehouse models | dbt data tests check assertions on data resources | You need validation before or outside the warehouse transformation boundary |
| Define, validate and exchange data contracts | Data Contract CLI supports contract operations, testing and import/export | Compare actual runtime, connector and interchange requirements; both projects cover contract workflows |
| Schedule and observe jobs | Your existing Prefect, Airflow or Dagster deployment | Use PyCharter inside a job to declare and enforce data requirements; retain the scheduler's lifecycle controls |
The strongest reasons to try PyCharter¶
You are repeating the same rules. Put them in a versioned artifact and reuse that definition where data enters, changes or leaves a system.
You need an explicit acceptance boundary. Attach a contract to the step that must enforce it, then check both a valid input and a deliberate rejection. The local feed example demonstrates this directly.
An agent helps produce or change data workflows. Give it relevant context, verify its candidate against your contract and inspect the result. Keep source truth, coverage, publication and authorization as explicit additional concerns.
You want to begin small. The first-record example needs no hosted service, registry or database. You can evaluate usefulness before adding an operational deployment.
Keep what already works¶
If a local Pydantic model fully solves your application boundary, you may not need another contract layer. If warehouse tests already cover your quality requirements, add runtime enforcement only where it closes a real gap. Keep your existing scheduler and observability tools unless a concrete requirement calls for a change.
When exchanging definitions, check the supported ODCS semantics. Format conversion does not imply that every imported check can execute natively, and contract conformance alone does not prove complete or factually correct data.
Evaluate with a small real task¶
- Choose one record type or bounded feed with a costly recurring failure.
- Define the requirement, accept a valid case and reject the known failure.
- Reuse the contract at a second boundary or in a pipeline.
- Compare setup, diagnosis and change effort with your current approach.
- Qualify the deployment profile before relying on scheduled or shared operation.