Conversation
Contributor
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #205 +/- ##
==========================================
+ Coverage 95.98% 96.02% +0.03%
==========================================
Files 140 139 -1
Lines 9797 9819 +22
Branches 568 567 -1
==========================================
+ Hits 9404 9429 +25
Misses 275 275
+ Partials 118 115 -3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
ff8b6f4 to
b20e614
Compare
Reworks ccflow/examples/tpch as a more illustrative ccflow example: a registry of typed providers wired together in YAML, instead of a single context-dispatched data generator and query runner. The discriminator (table name / query id) becomes a Pydantic field on each model instance, so each registered provider has a fixed output schema. A shared TPCHDuckDBBackend (BaseModel) owns the DuckDB connection and runs dbgen exactly once; every TPCHTableProvider and TPCHAnswerProvider references it via /tpch/backend, so a single scale_factor override on the backend flows through to all 22+8 providers. TPCHQuery is a generic CallableModel parameterised by query_id and an explicit tuple of input table providers, replacing the previous side-table mapping. The bundled config/conf.yaml is heavily commented as a teaching example of the BaseModel/CallableModel distinction, registry cross-references via /abs/path strings, and per-instance dependency wiring. Signed-off-by: Pascal Tomecek <pascal.tomecek@cubistsystematic.com>
hintse
approved these changes
Apr 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reworks
ccflow/examples/tpchto be more illustrative of how ccflow is used in practice — a registry of typed providers wired together in YAML — rather than a single context-dispatched data generator and query runner.Why
The old example had two anti-patterns:
TPCHDataGeneratorproduced 8 different output schemas depending onTPCHTableContext.table— one model whose return type changed by context.TPCHQueryRunnerdispatched byTPCHQueryContext.query_id, with the table dependencies of each query hidden in a_QUERY_TABLE_MAPside-table rather than expressed as model fields.Both shapes are convenient but obscure how ccflow is actually used in practice, where each registered model has a fixed output schema and dependencies are explicit Pydantic fields.