Registry / workflow / schedula

schedula

JSON →
library1.6.15pypypi✓ verified 82d ago

Schedula is a dynamic flow-based programming environment for Python that automatically handles the control flow of programs. It produces a plan that dispatches calls based on a graph of functions, satisfying data dependencies. The library helps to define and execute dataflow execution models, extract sub-models, and can be used to deploy web API services. It is currently at version 1.6.15 and is actively maintained with regular updates.

pip install schedula
INSTALL
IMPORT
SIG · SCHEDULA
S
schedula
workflowpythonv1.6.15
Install
10.6s avg
Import
Disk
263MB
Pass rate
8/ 10
Env Coverage8 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.6.15 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
glibc
py 3.10
✓ —
7/8 runs
py 3.11
✓ —
✓ 15.19s
py 3.12
✓ —
✓ 13.75s
py 3.13
✓ —
✓ 13.41s
py 3.9
✓ 0.01s
7/8 runs
263MB installed
● package 263MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Dispatcher
from schedula import Dispatcher
import schedula as sh

This quickstart demonstrates how to define a simple dataflow model using `schedula.Dispatcher`, add functions with data dependencies using the `@sh.add_function` decorator, and then execute the workflow by calling `dispatch` with initial inputs and desired outputs. Schedula automatically determines the execution order based on data dependencies.

import schedula as sh # 1. Define a Dispatcher, which is the main model for your dataflow dsp = sh.Dispatcher(name='my_simple_workflow') # 2. Define functions and add them to the Dispatcher using the decorator @sh.add_function(dsp, outputs=['y']) def add_one(x): print(f"Executing add_one with x={x}") return x + 1 @sh.add_function(dsp, outputs=['z']) def multiply_by_two(y): print(f"Executing multiply_by_two with y={y}") return y * 2 # 3. Dispatch the workflow with initial inputs and desired outputs initial_inputs = {'x': 5} desired_outputs = ['z'] try: results = dsp.dispatch(inputs=initial_inputs, outputs=desired_outputs) print(f"\nFinal result for 'z': {results['z']}") except Exception as e: print(f"An error occurred during dispatch: {e}")
schedula --version
Debug
Known issues
gotchaMany advanced functionalities (like plotting, web API generation, or specific parallel execution strategies) are provided via 'extras'. These must be explicitly installed using `pip install 'schedula[extra_name]'` or `pip install 'schedula[all]'`.
fix
Review the documentation for required extras and install them, e.g., `pip install 'schedula[plot]'`.
affects: All versions
gotchaThe 'plot' extra, which enables visualizing your dataflow models, relies on the external Graphviz system library. Installing `schedula[plot]` only installs the Python bindings; Graphviz itself (and its `dot` executable) must be installed separately on your operating system and be accessible in your system's PATH.
fix
Install Graphviz from its official website (graphviz.org/download/) and ensure its `bin` directory is added to your system's PATH.
affects: All versions
gotchaWhile `schedula` supports asynchronous and parallel dispatching, there is an inherent performance cost associated with creating and managing threads/processes. For very short-duration tasks, this overhead might negate the benefits of concurrency.
fix
Benchmark your specific use case to determine if concurrent execution provides a performance gain or if a synchronous execution model is more efficient for your workload.
affects: All versions
Upgrade
Version history
1.6.15latest on PyPI · released Mar 4, 2026
Audit
Dependencies
cryptographyoptionalRequired for cryptographic examples/use cases in documentation, typically installed separately if needed.
GraphvizoptionalRequired system-wide (not just Python package) for the 'plot' extra to render workflow diagrams.
Agent activity
30 hits · last 30 days
node
26
OpenAI (training)
1
Resources
schedula — pip install schedula · libregistry