Skip to main content

CauliFlow

image image mage

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)

Source distribution for cauliflow 0.2.0
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)

Table of built distributions (wheels) for cauliflow 0.2.0
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

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.2.0 This release

2 release files Full 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