CauliFlow
CauliFlow allows you to construct and run workflows by connecting multiple nodes in a YAML-format file. CauliFlow enables the creation of flexible, reusable workflows by utilising three types of variable: Flowdata, Blackboard and Macros. Although CauliFlow is primarily designed to work with EPICS PVs, it can also be used for other purposes. For more details, please refer to Documentation
Installation
CauliFlow requires Python 3.11 or higher.
To install CauliFlow with pip, run the following command:
pip install cauliflow
To confirm that the installation was successful, run:
cauliflow --version
You should see an output like the following:
cauliflow 0.1.0
Usage
CauliFlow loads workflows from a YAML-format file.
Create a file named increment.yml, write the following content into it.
---
sequential:
flows:
- name: "init"
flow:
- message:
name: "increment"
msg: 0
out_bb: yes
- name: "main"
flow:
- interval:
name: "interval"
interval: "{{ macro.interval | float }}"
- message:
name: "add"
msg: "{{ bb.increment + 1 }}"
out_bb: yes
out_field: "increment"
- message:
name: "out_msg"
msg: "{{ 'Count: ' + bb.increment | str }}"
- stdout:
name: "out"
src: "{{ fd.out_msg }}"
macros:
interval: "1"
In the above flows, two flows are executed sequentially.
The init flow runs first and sets the value of the increment key in the blackboard to 0.
After that, the main flow is executed at regular intervals, controlled by an interval node. Each time it runs, the add node increments the value of increment key in the blackboard and updates the value. Next, the out_msg node creates a message string and writes it to the flowdata. This string is then passed and printed to the standard output by the out node.
The interval parameter of the interval node is configured using a macro.
Since the macro value is passed as a string, the filter is used to convert it to a float.
To run the flows, use the cauliflow run command. the incremented value is showed every second.
$ cauliflow run increment.yml
Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
You can change the interval value by specifying the macro at runtime.
$ cauliflow run -m interval 5 increment.yml
Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
Metadata
Release files for cauliflow 0.2.0
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 |
|---|---|---|---|---|
| cauliflow-0.2.0.tar.gz | 125.3 kB | With provenance | Details for cauliflow-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cauliflow-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for cauliflow-0.2.0-py3-none-any.whl |
Total release size: 154.7 kB
Release files / cauliflow-0.2.0.tar.gz
| Download URL | cauliflow-0.2.0.tar.gz |
|---|---|
| Size | 125.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7cc59ed4a3ee4dbe2cba623286ee8a24cbc9701990eeccc726b09a75768dc87a
|
|
BLAKE2b-256 checksum How to use checksums |
cab217cec3136f782349658fb4f02042dc2113d6e789d6b6ce0bd99a345725b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 28, 2025.
Transparency logRelease files / cauliflow-0.2.0-py3-none-any.whl
| Download URL | cauliflow-0.2.0-py3-none-any.whl |
|---|---|
| Size | 29.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6bf9889c19f391f857c5b3e4eaa23c95c17d07bb21691ed69f628a990a9da8d6
|
|
BLAKE2b-256 checksum How to use checksums |
36c30124f93fec1ec2815ec0ff747ce90bb0d0be2e2161718e15e3d3586f1e57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 28, 2025.
Transparency logSecurity for cauliflow 0.2.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for cauliflow-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 28, 2025.
Transparency logA 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.