Simple AI workflow orchestration with time travel for development
Project description
Ombra - Simple AI Workflow Orchestration with Time Travel
Simple Python workflow orchestration with checkpointing and time travel for development.
Installation
For local development:
# From this directory
uv run examples/test_basic.py
# Or install locally in another project
uv add --editable /path/to/ombra
Quick Start
from ombra import Workflow
# Create a workflow
wf = Workflow(name="my_workflow")
# Decorate your functions
@wf.step()
def fetch_data(query: str) -> dict:
return {"query": query, "results": ["item1", "item2"]}
@wf.step()
def process_data(data: dict) -> list:
return [item.upper() for item in data["results"]]
# Run normally - checkpoints saved automatically
data = fetch_data("AI frameworks")
processed = process_data(data)
# List all checkpoints
wf.list_checkpoints()
# Time travel: Resume from any step
result = wf.resume_from("process_data")
# Resume with modified inputs
result = wf.resume_from(
"process_data",
modify_inputs={"data": {"query": "test", "results": ["new"]}}
)
Features
- Decorator-based API - Write normal Python functions
- Automatic checkpointing - Every step execution is saved
- Time travel - Resume from any step
- Modify inputs - Change inputs when resuming for debugging
- File-based storage - Simple pickle files, no external services
- Zero dependencies - Just Python stdlib
Checkpoints
Checkpoints are saved to .ombra_checkpoints/{workflow_name}/ directory. Each checkpoint includes:
- Step name and timestamp
- Input arguments (args and kwargs)
- Output values
- Metadata
Development Only
This is designed for development and debugging workflows, not production. The checkpoint system helps you:
- Debug complex workflows step by step
- Avoid re-running expensive operations
- Test different inputs at any step
- Understand workflow state at each stage
Next Steps
This is a minimal MVP. Future additions:
- Async support
- Automatic flow chaining
- DAG support for parallel execution
- Retry and error handling decorators
- SQLite storage option
- Better visualization of checkpoints
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ombra-0.1.0.tar.gz.
File metadata
- Download URL: ombra-0.1.0.tar.gz
- Upload date:
- Size: 81.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fcfb7948cb267d74a84bcfefd980e95567cc2e43d504a06478f1725eff013b3
|
|
| MD5 |
df3c27054c2a143a6c7c0f1f4315f1ec
|
|
| BLAKE2b-256 |
8d9bddd6a50596795d99cc9d340541f1a234a4451572e1787c324e864e9510a5
|
File details
Details for the file ombra-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ombra-0.1.0-py3-none-any.whl
- Upload date:
- Size: 33.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f48395cc372a0e511e33106f49392d8b9bb25ef4924dfd43d732f318c10c5dc6
|
|
| MD5 |
19f3340cb41a49a8ffaee7233ec75d34
|
|
| BLAKE2b-256 |
5e2076a97896f459934c94acd2ae8621d718cb01312e2ae15f5e8ca7d6d78d19
|