schedula
Produce a plan that dispatches calls based on a graph of functions, satisfying data dependencies.
Decision gist · record as of 2026-08-14
Yes, with conditions. Schedula is production-stable, actively maintained, and has no known vulnerabilities. Install it if you need automatic dataflow scheduling and can accept EUPL 1.1+ copyleft obligations. The zero runtime dependencies and pure-Python distribution make installation friction minimal. Avoid if your project requires proprietary licensing.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Installation is straightforward with no runtime dependencies, distributed as a pure Python wheel.
- The package is actively maintained with recent commits and has been in production use since 2017.
License · maintenance · safety
EUPL 1.1+ (copyleft) — Licensed under EUPL 1.1+ (copyleft). Users must comply with copyleft obligations when distributing derivative works; proprietary projects should review compatibility before adoption.
last release 2026-03-04 (163 days) · last repo commit 2026-03-21 · 60 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 3,313,636 downloads/mo, #2,664 on PyPI
Alternatives
Verify before relying
pip install schedula
import schedula as sh
dsp = sh.Dispatcher(name='example')
@sh.add_function(dsp, outputs=['result'])
def add(a, b):
return a + b
output = dsp(inputs={'a': 1, 'b': 2})- Whether the modified Dijkstra algorithm for DAG path selection is documented with complexity guarantees.
- Specific performance characteristics when handling models with many nodes.
- Whether optional extras (plot, web, parallel) are production-ready or experimental.
What it is and what it does
Schedula is a dynamic flow-based programming environment that automatically manages program control flow by representing computations as a directed acyclic graph (DAG) where nodes are functions and edges represent data dependencies. Given any set of inputs, it determines the optimal execution path using a modified Dijkstra algorithm and executes only the necessary functions to compute requested outputs.
The library originated from a need to automatically populate missing database values using interdependent physical formulas, and was developed to support the CO2MPAS vehicle simulator. It handles multiple input/output combinations without requiring separate control flow graphs for each case. Schedula supports asynchronous and parallel execution, interactive visualization of workflows, and can convert models into web API services through optional extras.
Use it for
- Build scientific simulation models with interdependent formulas where input combinations vary and execution paths must be determined dynamically.
- Create data processing pipelines that automatically resolve missing intermediate values by computing them from available inputs.
- Develop web services that expose computational models as APIs, automatically handling different input/output combinations.
- Debug and optimize complex workflows by visualizing the actual execution DAG and identifying which functions were called.
- Implement parallel or asynchronous computation models where function dependencies are automatically managed.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, with conditions.
Schedula is production-stable, actively maintained, and has no known vulnerabilities. Install it if you need automatic dataflow scheduling and can accept EUPL 1.1+ copyleft obligations. The zero runtime dependencies and pure-Python distribution make installation friction minimal. Avoid if your project requires proprietary licensing.
Install
schedula on PyPI
Before you install
Installation is straightforward with no runtime dependencies, distributed as a pure Python wheel. The package is actively maintained with recent commits and has been in production use since 2017.
License in practice
Licensed under EUPL 1.1+ (copyleft). Users must comply with copyleft obligations when distributing derivative works; proprietary projects should review compatibility before adoption.
Quickstart
pip install schedula
import schedula as sh
dsp = sh.Dispatcher(name='example')
@sh.add_function(dsp, outputs=['result'])
def add(a, b):
return a + b
output = dsp(inputs={'a': 1, 'b': 2})
Verify before relying
- Whether the modified Dijkstra algorithm for DAG path selection is documented with complexity guarantees.
- Specific performance characteristics when handling models with many nodes.
- Whether optional extras (plot, web, parallel) are production-ready or experimental.
Package facts
| License | EUPL 1.1+ copyleft |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 163 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,313,636 / month, #2,664 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: European Union Public Licence 1.1 (EUPL 1.1)Natural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: OS IndependentOperating System :: POSIXOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonTopic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Information AnalysisTopic :: Software Development :: Libraries :: Python ModulesTopic :: Utilities |
Evidence: schedula-1.6.15-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “dataflow programming”
- schedulaSchedula is a flow-based programming library that automatically…
- apache-beamApache Beam is a unified framework for defining and executing batch…
- simpleflowSimpleflow provides a Python library for writing distributed dataflow…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also apache-airflow-core · simpleflow · adagio · dask · APScheduler · apache-hamilton · jobflow · distributed · google-cloud-dataflow-client