Metadata-Version: 2.4
Name: fastloop
Version: 0.1.2
Summary: A Python package for deploying stateful loops
Project-URL: Homepage, https://github.com/beam-cloud/fastloop
Project-URL: Repository, https://github.com/beam-cloud/fastloop
Project-URL: Issues, https://github.com/beam-cloud/fastloop/issues
Author-email: Luke Lombardi <luke@beaml.cloud>
License: MIT
Keywords: agentic,ai,baml,workflow
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.12
Requires-Dist: aioboto3>=15.0.0
Requires-Dist: cloudpickle>=3.1.1
Requires-Dist: fastapi>=0.115.14
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: redis[asyncio]>=6.2.0
Requires-Dist: uvicorn>=0.35.0
Provides-Extra: dev
Requires-Dist: baml-py>=0.90.0; extra == 'dev'
Requires-Dist: beam-client>=0.2.165; extra == 'dev'
Requires-Dist: beta9>=0.1.207; extra == 'dev'
Requires-Dist: fastmcp==2.9.0; extra == 'dev'
Requires-Dist: pip>=25.1.1; extra == 'dev'
Requires-Dist: pyodide-build>=0.30.5; extra == 'dev'
Description-Content-Type: text/markdown

# FastLoop

A Python package for building and deploying stateful loops.

## Installation

```bash
pip install fastloop
```

## Usage

### Basic Example

```python
from fastloop import FastLoop, LoopContext, LoopEvent

app = FastLoop(name="my-app")

@app.event("start")
class StartEvent(LoopEvent):
    user_id: str
    message: str

@app.loop(name="chat", start_event=StartEvent)
async def chat_loop(context: LoopContext):
    # Get the initial event
    start_event = await context.wait_for(StartEvent)
    print(f"User {start_event.user_id} started chat: {start_event.message}")
    
    # Your loop logic here
    context.stop()

if __name__ == "__main__":
    app.run(port=8000)
```

## Development

This project uses `uv` for dependency management.

```bash
# Install dependencies
uv sync

# Run tests
uv run pytest

# Build package
uv build
```

## License

[Add your license here] 