Metadata-Version: 2.4
Name: cascades-sdk
Version: 0.2.0
Summary: Python SDK for Cascades workflow orchestration
Author: Noir Stack LLC
License-Expression: MIT
Project-URL: Homepage, https://github.com/no1rstack/cascades
Project-URL: Documentation, https://github.com/no1rstack/cascades/tree/main/sdk/python
Project-URL: Repository, https://github.com/no1rstack/cascades
Project-URL: Issues, https://github.com/no1rstack/cascades/issues
Keywords: cascades,workflow,orchestration,dag,task,flow
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.25.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: mypy>=1.8.0; extra == "dev"
Requires-Dist: black>=24.0.0; extra == "dev"
Requires-Dist: build>=1.2.0; extra == "dev"
Requires-Dist: twine>=5.0.0; extra == "dev"

# Cascades SDK (Python)

PyPI package for the Cascades workflow orchestration control plane.

## Install

```bash
pip install cascades-sdk
```

## Quick start

```python
from cascades_sdk import task, flow, CascadesClient, wait_for_completion
from cascades_sdk.compiler import build_dag_from_flow

@task
def add(a: int, b: int) -> int:
    return a + b

@flow
def math_flow(a: int, b: int):
    return add(a, b)

dag = build_dag_from_flow(math_flow, {"a": 1, "b": 2})

client = CascadesClient(base_url="http://localhost:3000", api_key="your_api_key")
flow_id = client.register_flow("math_flow", dag)
run_id = client.trigger_flow(flow_id, {"a": 1, "b": 2})
result = wait_for_completion(client, run_id)
print(result.get("result"))
```

## What this SDK provides

- `@task` and `@flow` decorators
- Deterministic DAG capture/compilation
- Thin HTTP API client for flow registration and runs
- Polling helpers (sync + async)

## Publish to PyPI

```bash
python -m build
python -m twine check dist/*
python -m twine upload dist/*
```
