{"library":"schedula","title":"Schedula","description":"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.","language":"python","status":"active","last_verified":"Tue May 12","install":{"commands":["pip install schedula","pip install 'schedula[all]'"],"cli":{"name":"schedula","version":"Traceback (most recent call last):"}},"imports":["import schedula as sh\ndsp = sh.Dispatcher(...)"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import schedula as sh\n\n# 1. Define a Dispatcher, which is the main model for your dataflow\ndsp = sh.Dispatcher(name='my_simple_workflow')\n\n# 2. Define functions and add them to the Dispatcher using the decorator\n@sh.add_function(dsp, outputs=['y'])\ndef add_one(x):\n    print(f\"Executing add_one with x={x}\")\n    return x + 1\n\n@sh.add_function(dsp, outputs=['z'])\ndef multiply_by_two(y):\n    print(f\"Executing multiply_by_two with y={y}\")\n    return y * 2\n\n# 3. Dispatch the workflow with initial inputs and desired outputs\ninitial_inputs = {'x': 5}\ndesired_outputs = ['z']\n\ntry:\n    results = dsp.dispatch(inputs=initial_inputs, outputs=desired_outputs)\n    print(f\"\\nFinal result for 'z': {results['z']}\")\nexcept Exception as e:\n    print(f\"An error occurred during dispatch: {e}\")\n","lang":"python","description":"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.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-12","installed_version":null,"pypi_latest":"1.6.15","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":90,"avg_install_s":13.1,"avg_import_s":0,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"all","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"239.9M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"schedula","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"30.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"all","exit_code":1,"wheel_type":null,"failure_reason":"timeout","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"schedula","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":3.4,"import_time_s":0,"mem_mb":0.1,"disk_size":"31M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"all","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"345.0M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"schedula","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"33.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"all","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":null,"install_time_s":37.8,"import_time_s":0,"mem_mb":0,"disk_size":"347M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"schedula","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":2.2,"import_time_s":0,"mem_mb":0.1,"disk_size":"34M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"all","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"329.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"schedula","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"24.9M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"all","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":null,"install_time_s":34,"import_time_s":0,"mem_mb":0,"disk_size":"332M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"schedula","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":2.1,"import_time_s":0,"mem_mb":0.1,"disk_size":"25M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"all","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"329.1M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"schedula","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.2,"disk_size":"24.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"all","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":null,"install_time_s":33.2,"import_time_s":0,"mem_mb":0,"disk_size":"332M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"schedula","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":1.9,"import_time_s":0,"mem_mb":0,"disk_size":"25M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"all","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":null,"install_time_s":0.1,"import_time_s":0,"mem_mb":0,"disk_size":"246.8M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"schedula","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"30.3M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"all","exit_code":1,"wheel_type":null,"failure_reason":"timeout","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"schedula","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":2.9,"import_time_s":0,"mem_mb":0.1,"disk_size":"31M"}]}}