-
Notifications
You must be signed in to change notification settings - Fork 6
Build from Source
ccflow is written in Python. While prebuilt wheels are provided for end users, it is also straightforward to build ccflow from either the Python source distribution or the GitHub repository.
As a convenience, ccflow uses a Makefile for commonly used commands. You can print the main available commands by running make with no arguments
> make
build build the library
clean clean the repository
fix run autofixers
install install library
lint run lints
test run the testsccflow has a few system-level dependencies which you can install from your machine package manager. Other package managers like conda, nix, etc, should also work fine.
Clone the repo with:
git clone https://github.com/Point72/ccflow.git
cd ccflowPython build and develop dependencies are specified in the pyproject.toml, but you can manually install them:
make requirementsNote that these dependencies would otherwise be installed normally as part of PEP517 / PEP518.
Build the python project in the usual manner:
make buildccflow has linting and auto formatting.
| Language | Linter | Autoformatter | Description |
|---|---|---|---|
| Python | ruff |
ruff |
Style |
| Markdown | mdformat |
mdformat |
Style |
| Markdown | codespell |
Spelling |
Python Linting
make lint-pyPython Autoformatting
make fix-pyDocumentation Linting
make lint-docsDocumentation Autoformatting
make fix-docsccflow has extensive Python tests. The tests can be run via pytest. First, install the Python development dependencies with
make developPython
make testThis wiki is autogenerated. To made updates, open a PR against the original source file in docs/wiki.
Tutorials
- Overview
- First Steps
- Configuring Models
- Defining Workflows
- Building an ETL Pipeline
- Composing an ETL Application
- Building a Configurable Calculator
How-to Guides
- Overview
- Install ccflow
- Configure Complex Values
- Bind Logic to Configs
- Run Workflows from the CLI
- Cache Results
- Retry on Failure
Reference
Explanation
Developer Guide