Skip to main content

Runnable

Runnable

Transform any Python function into a portable, trackable pipeline in seconds.

python: Pypi License Code style: black MyPy Checked Tests:


🚀 30-Second Transformation

Your existing function (unchanged!):

def analyze_sales():
    total_revenue = 50000
    best_product = "widgets"
    return total_revenue, best_product

Make it runnable everywhere:

from runnable import PythonJob

def main():
    PythonJob(function=analyze_sales).execute()

if __name__ == "__main__":
    main()

🎉 Success! Your function now runs the same on laptop, containers, and Kubernetes with automatic tracking and reproducibility.

🔗 Chain Functions Without Glue Code

def load_customer_data():
    return {"count": 1500, "segments": ["premium", "standard"]}

def analyze_segments(customer_data):  # Name matches = automatic connection
    return {"premium_pct": 30, "growth_potential": "high"}

# What Runnable needs (same logic, no glue):
from runnable import Pipeline, PythonTask

def main():
    Pipeline(steps=[
        PythonTask(function=load_customer_data, returns=["customer_data"]),
        PythonTask(function=analyze_segments, returns=["analysis"])
    ]).execute()

if __name__ == "__main__":
    main()

Same pipeline runs unchanged on laptop, containers, and Kubernetes.

⚡ Installation

pip install runnable

For development:

uv sync --all-extras --dev

Run examples:

uv run examples/01-tasks/python_tasks.py

📊 Why Choose Runnable?

  • 🎯 Easy to adopt: Your code remains as-is, no decorators or imposed structure
  • 🏗️ Bring your infrastructure: Works with your platforms, not a replacement
  • 📝 Reproducibility: Automatic tracking without additional code
  • 🔁 Retry failures: Debug anywhere, retry from failure points
  • 🧪 Testing: Mock/patch pipeline steps, test functions normally
  • 💔 Move on: Easy removal - just delete runnable files, your code stays

🎯 Core Strengths & Extensibility

Runnable excels at data pipeline orchestration:

  • Data processing pipelines
  • ML model training workflows
  • ETL operations
  • Batch job orchestration
  • Scientific computing reproducibility

🧪 Extensible Architecture & Experimental Features:

Runnable's plugin-based architecture demonstrates its extensibility through experimental features like:

  • Async streaming capabilities - Proof of concept for real-time processing (local execution)
  • Loop workflows - Dynamic iteration patterns for complex data processing
  • Custom executors - Extensible to any infrastructure via plugins

For production agentic frameworks, consider specialized tools like Pydantic AI, LangChain, or CrewAI, which are purpose-built for complex LLM applications.

📖 Documentation

Complete Documentation →

🔀 Pipeline Types

Linear Pipelines

Simple sequential execution of Python functions, notebooks, or shell scripts.

Parallel Branches

Execute multiple branches simultaneously for improved performance.

Map Patterns

Execute pipelines over iterable parameters for batch processing.

Arbitrary Nesting

Combine parallel, map, and sequential patterns as needed.

🆚 Why Choose Runnable?

Runnable Kedro Metaflow Airflow
Zero Code Changes ✅ Wrap existing functions ❌ Restructure to nodes ❌ Convert to FlowSpec ❌ Rewrite as DAG tasks
Environment Portability Same code: laptop→container→K8s→Argo Deployment-specific configs AWS-focused with --with flags Platform-specific operators
Mixed Task Types Python + Notebooks + Shell Python nodes only Python steps only Requires separate operators
Plugin Extensibility Auto-discovery via entry points kedro-* packages Limited extensions Complex plugin development
Parameter Passing Automatic by name matching Manual catalog definitions Flow state management Manual XCom operations

🚀 Time to Value

Runnable:

pip install runnable
# Wrap your existing function - done!

Others:

  • Learn framework conventions
  • Restructure existing code
  • Configure project structure
  • Set up deployment configs

Ready to get started? Check out our 30-second demo for immediate results!

Metadata

Release files for runnable 0.50.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 runnable 0.50.0
File Size Uploaded Provenance
runnable-0.50.0.tar.gz 131.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for runnable 0.50.0
File Interpreter ABI Platform
runnable-0.50.0-py3-none-any.whl Python 3 none any Details

Total release size: 297.9 kB

Release files / runnable-0.50.0.tar.gz

Download URL runnable-0.50.0.tar.gz
Size 131.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c93d061f04125d6ab88d7de29aa5ca55c5493809353e77c237fcf77f41e728f1
BLAKE2b-256 checksum
How to use checksums
45720da6556dd71a543d09f2498fc20b88b22844b5da26391db352739b72015c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / runnable-0.50.0-py3-none-any.whl

Download URL runnable-0.50.0-py3-none-any.whl
Size 166.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c7ad1152037c8df4f534b3285668052ab740e66343e740ec82c3e3a788aa7449
BLAKE2b-256 checksum
How to use checksums
6a323e60f9cc4809bcdb07b452a5fe248ab056430ea25574bd63844dc260b21d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for runnable 0.50.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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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

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