skillfed

schedula

Produce a plan that dispatches calls based on a graph of functions, satisfying data dependencies.

schedula v1.6.15 3.3M downloads/30d#2,664 on PyPI60
Copyleft license EUPL 1.1+ Active released

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

Schedula is a flow-based programming library that automatically manages control flow by building a directed acyclic graph (DAG) of functions and their data dependencies, then selects and executes the optimal path to compute requested outputs from given inputs.

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

pip

pip install schedula

uv

uv add schedula

poetry

poetry add schedula

Installing schedula

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)

Evidence: schedula-1.6.15-py2.py3-none-any.whl

Keywords: flow-based programming, dataflow, parallel, asynchronous, async, scheduling, dispatch, functional programming, dataflow programming

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

Tags

dataflow programmingdag execution schedulerflow-based programming pythonautomatic dependency resolutionfunctional pipeline dispatcherasynchronous task schedulingdata dependency graph
dataflow-executiondag-schedulerfunctional-programming

More Scientific/Engineering packages