Tutorials¶
Step-by-step guides to master PyCharter's features. The data contract is the single source of truth; all tutorials use contract name and contract version (or a contract file) where applicable.
Prefer a quick win?
Use the Cookbook (30-second recipes) or Start here before a full tutorial.
YAML starters
See Templates overview for contract, pipeline, streaming worker, and vocabulary template packs.
Visual workflow
See Contract → ETL → quality
for diagrams of step contract: flags and row vs batch quality.
Quick start (30 seconds each)¶
| Topic | One snippet |
|---|---|
| ETL | Pipeline(HTTPExtractor(url="...")) \| Rename({...}) \| FileLoader(path="out.json") then await pipeline.arun() |
| Contracts | parse_contract_file("c.yaml") → metadata.to_data_contract() → Validator.from_dict(contract) |
| Quality | check_quality(contract=contract, data=records) or QualityCheck(store).run(contract_name="user", contract_version="1.0.0", data=...) |
| Metadata store | store.store_json_schema("user", "1.0.0", schema); store.get_contract("user", "1.0.0"); store.list_contracts() |
| API & UI | pycharter api and pycharter ui serve |
Learning paths¶
graph LR
A[ETL Pipelines] --> B[Contracts & Validation]
B --> C[Quality Monitoring]
C --> D[Contract Store]
D --> E[REST API & UI]
- Start here — score + pass/fail in one script
- Quality monitoring — Parts 1–2 and scheduling
- Periodic quality monitoring — cron, worker, pipelines
- Comparisons — vs Great Expectations, Soda, etc.
Available Tutorials¶
-
Building ETL Pipelines
Learn to build data pipelines with extractors, transformers, and loaders.
Duration: 30 minutes
-
Data Contracts & Validation
Define contracts, coercion rules, and validation logic for your data.
Duration: 25 minutes
-
Data Quality Monitoring
Monitor quality metrics, track violations, and set threshold alerts.
Duration: 20 minutes
-
Contract Store & Schema Registry
Store, version, and retrieve schemas using different backends.
Duration: 20 minutes
-
REST API & Web UI
Use PyCharter's API server and interactive web interface.
Duration: 15 minutes
Prerequisites¶
Before starting the tutorials, ensure you have:
- Python 3.11+ installed
- PyCharter installed (
pip install pycharter[server,pipeline]) - Basic knowledge of Python async/await
- Familiarity with JSON Schema (helpful but not required)
Tutorial Format¶
Each tutorial includes:
- Overview - What you'll learn
- Prerequisites - What you need before starting
- Step-by-step instructions - Hands-on coding
- Code examples - Copy-paste ready snippets
- Exercises - Practice what you've learned
- Next steps - Where to go from here
Getting Help¶
If you get stuck:
- Check the API Reference for detailed documentation
- Search GitHub Issues
- Ask on GitHub Discussions