ccflow (Composable Configuration Flow) is a collection of tools for workflow configuration, orchestration, and dependency injection.
It is intended to be flexible enough to handle diverse use cases, including data retrieval, validation, transformation, and loading (i.e. ETL workflows), model training, microservice configuration, and automated report generation.
The framework provides:
- a way to manage hierarchical, strongly typed configurations and the relationships between them through composition
- a way to associate user-defined functions with configurations, and in doing so, to define and name configurable workflow graphs
- a way to manage dependency injection and inversion of control for objects in these graphs
- flexibility in how to interact with configurations and workflows, including files/command line, native python/Jupyter notebook, Airflow/job scheduler, REST API, etc (in progress)
It heavily leverages pydantic, and users are expected to implement their own configuration and workflow building blocks by implementing pydantic models.
It also integrates closely with hydra for file-based configuration and command line interaction, but can also be used natively from Python without it.
This library was partially inspired by this blog post by Suneeta Mall (@suneeta-mall).
We have taken these ideas a step further by introducing the concept of the ModelRegistry, which allows for the configs to be managed without hydra, and also allows us to implement dependency injection.
We aim to provide additional (and optional) tools for workflow orchestration on top of the configuration framework.
Documentation
Our wiki is organized along the four kinds of documentation:
- Tutorials — hands-on lessons, from First Steps through building ETL applications to a configurable calculator driven from the CLI.
- How-to Guides — recipes for specific tasks like configuring complex values, caching, and retries.
- Reference — the core types, built-in models, and options.
- Explanation — the design goals, core concepts, and why ccflow leans on Hydra.
Installation
ccflow can be installed via pip or conda, the two primary package managers for the Python ecosystem.
To install ccflow via pip, run this command in your terminal:
pip install ccflow
To install ccflow via conda, run this command in your terminal:
conda install ccflow -c conda-forge
Community
- Contribute to
ccflowand help improve the project
License
This software is licensed under the Apache 2.0 license. See the LICENSE file for details.
Metadata
Release files for ccflow 0.9.4
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 | Actions |
|---|---|---|---|---|
| ccflow-0.9.4.tar.gz | 434.4 kB | Without provenance | Details for ccflow-0.9.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ccflow-0.9.4-py3-none-any.whl | Python 3 | none | any | Details for ccflow-0.9.4-py3-none-any.whl |
Total release size: 975.9 kB
Release files / ccflow-0.9.4.tar.gz
| Download URL | ccflow-0.9.4.tar.gz |
|---|---|
| Size | 434.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
566c45aeaab679728f561dbe8f629202ea6dbc300b4cbc137f6cf18290bacbec
|
|
BLAKE2b-256 checksum How to use checksums |
cae0decead080f9d5d4377ef6c211f39f6074181e9d7793a518daf160709a148
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / ccflow-0.9.4-py3-none-any.whl
| Download URL | ccflow-0.9.4-py3-none-any.whl |
|---|---|
| Size | 541.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eff553a9ad52ca4a71f67de6cd3c5ea20d4b504c8d5d5634b163baea937f7d58
|
|
BLAKE2b-256 checksum How to use checksums |
233fb59686a2f560cc1910fdbb2cd88713c66224e8c98ece2c959a644ea86d13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for ccflow 0.9.4
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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.