Metadata-Version: 2.4
Name: pyronin
Version: 0.0.1a0
Summary: Official Python SDK for the Ronin control plane.
License: Apache-2.0
Project-URL: Homepage, https://github.com/SauronShepherd/ronin
Project-URL: Repository, https://github.com/SauronShepherd/ronin
Project-URL: Issues, https://github.com/SauronShepherd/ronin/issues
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# pyronin

`pyronin` is the official Python SDK for the Ronin control plane.

> **Alpha:** `0.1.0a2` establishes the public client shape while the Ronin control-plane API is still under active development.

## Install

```bash
pip install pyronin
```

## Submit and observe a job

```python
from pyronin import Ronin

ronin = Ronin("http://localhost:8080")
job = ronin.submit(
    project="demo",
    target="daily-etl",
    parameters={"date": "2026-09-04"},
    idempotency_key="daily-etl-2026-09-04",
)

print(job.id)
print(job.status())
result = job.wait()
print(result.state)
```

## Query registered Parquet data

When the server has an SQL engine configured, the SDK exposes the bounded,
project-authorized read-only query surface:

```python
result = ronin.execute_sql(
    project="demo",
    sql="SELECT count(*) AS rows FROM events",
)
print(result.columns[0].name, result.rows)
```

The SDK is intentionally a control-plane client. It does not execute Python, Spark, Docker, Kubernetes, Fabric, Databricks, or other provider runtimes itself. Those concerns remain behind Ronin server/orchestrator adapters.

## Initial API

- `Ronin.submit(...)`
- `Ronin.get_job(...)`
- `Ronin.list_jobs(...)`
- `JobHandle.status()`
- `JobHandle.wait()`
- `JobHandle.cancel()`
- `JobHandle.events()`
- `Ronin.execute_sql(...)`

Transports are replaceable so HTTP is not embedded in the public job model. Authentication is also transport-side; tokens are never persisted by job objects.

## Project

Ronin is Apache-2.0 licensed and developed at https://github.com/SauronShepherd/ronin.
