ccflow-etl
Domain-neutral ETL building blocks for ccflow callable models.
ccflow-etl provides reusable support primitives for ETL-style workflows built as concrete ccflow CallableModel graphs. It keeps generic execution concerns here and leaves workflow-specific behavior to the package or application that owns the workflow.
Install
pip install ccflow-etl
Connector-backed cache and artifact stores are provided by connector packages that own their I/O. Generic checkpointing belongs in ccflow proper.
| Package | Type | Integration |
|---|---|---|
ccflow-s3 |
generic, storage | S3-backed artifact IO and cache |
ccflow-db |
generic, cache | database-backed cache store |
ccflow-email |
generic, publisher | email publishers for ETL notifications |
ccflow-celery |
generic, evaluator | Celery-based evaluator for ETL task execution |
Quick Start
ccflow-etl installs shared Hydra entry points for running and explaining configured callables:
cc-etl +context.path=./example-output.json +context.payload.message='hello from ccflow-etl' +context.overwrite=true
cc-etl-explain +context.path=./example-output.json
Most projects provide their own config directory and still use the shared entry point:
cc-etl --config-path ./config --config-name text_stats +context.input_path=./notes.txt +context.output_path=./stats.json
What It Provides
- Shared CLI entry points:
cc-etlandcc-etl-explain. - Date expansion:
Interval,BaseCalendar, built-in calendars,BackfillContext, andBackfillModel. - Generic credential models and a
/credentialsHydra registry for package extension. - Generic extract task composition through
/tasks,/datasets, and/outputsconfig selections. - Handoff metadata:
ETLArtifactfor typed stage artifacts. - Artifact IO contracts:
ArtifactExistsModel,ArtifactWriteModel,ArtifactPublishModel, andNoOpArtifactStorefor backend-neutral existence checks, writes, publication, and artifact URIs. - File artifacts:
ArtifactMaterializeModelandArtifactWriteFileModelstream artifacts to and from local files. When the store exposeshead(), materialization saves the source identity next to the downloaded file and reuses a cached file only when that saved identity still matches the source's version ID (or ETag) and size; otherwise it downloads again. - Task and output composition:
ExtractTaskModel,LocalFileOutput,NoOpArtifactStore, and/tasks//outputsconfig selections. - Format-aware writes and cache handoffs:
LocalWriteModel,CachePutModel,CacheGetModel,PayloadCodec,LocalCacheStore, and no-op cache defaults. - Retry integration: compatibility exports for
ccflowRetryPolicyandRetryModel; useccflow.evaluators.RetryEvaluatorfor runtime evaluator retries. - Execution policy:
ExecutionPolicyfor shared max-concurrency hints and rate spacing that evaluators and connector models can consume through the/executionHydra group. - Datasets:
DatasetDefinitiondeclares a date-partitioned dataset (key template, store, optional local copy, format, schema, and calendar of expected partitions) and provides keys, existence and missing-partition checks, explain records, writes with lineage sidecars, local-first reads, and Polars lazy scans over a date range (pip install ccflow-etl[polars]).DatasetReadModelexposes a range as a graph node. - Run reporting:
RunSummaryfor structured counts by status and artifact stage.
Documentation
- CLI And Config
- Building Pipelines
- Backfills And Calendars
- Handoffs, Formats, And Reliability
- API Reference
- Development
Package Boundaries
ccflow-etl owns domain-neutral ETL contracts, generic credential shapes, and helpers. It does not own application workflows, provider clients, connector clients, provider-specific credential semantics, dataset inventories, dataset-specific schemas, run reporting evaluators, checkpointing, or domain-specific rules. Durable store implementations should live in connector packages and integrate through generic cache and artifact IO contracts.
Metadata
Release files for ccflow-etl 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ccflow_etl-0.4.1.tar.gz | 38.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ccflow_etl-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 93.4 kB
Release files / ccflow_etl-0.4.1.tar.gz
| Download URL | ccflow_etl-0.4.1.tar.gz |
|---|---|
| Size | 38.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
46503b62061ae0fde9708940dcbc2fa4819413a663b3288e3bc88c3c77fde6b9
|
|
BLAKE2b-256 checksum How to use checksums |
2cb66b32834fe66dfa506af73c0560ca512cfa493a54b62782389d957e8403eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / ccflow_etl-0.4.1-py3-none-any.whl
| Download URL | ccflow_etl-0.4.1-py3-none-any.whl |
|---|---|
| Size | 54.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4bad7c7b76fbb6b5c3b140db5a63aa84decc69b2751dee8d686db24701d7f4b9
|
|
BLAKE2b-256 checksum How to use checksums |
301d808a26fe3198f3525021e07437c68e95a99e7f3602b78bdb055cc81bea86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for ccflow-etl 0.4.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.