Skip to main content
ccflow logo, 'ccflow' with letters in color

Build Status codecov GitHub issues License PyPI Version

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:

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 ccflow and 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)

Source distribution for ccflow 0.9.4
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)

Table of built distributions (wheels) for ccflow 0.9.4
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.9.4 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page