Metadata-Version: 2.4
Name: floom-sdk
Version: 0.1.8
Summary: Turn Python functions into web apps. Type hints become UI, API, and shareable links.
Home-page: https://github.com/floomhq/floom
Author: floom
Author-email: floom <hello@floom.dev>
License: MIT
Project-URL: Homepage, https://floom.dev
Project-URL: Documentation, https://github.com/floomhq/floom#quick-start
Project-URL: Source, https://github.com/floomhq/floom
Project-URL: Tracker, https://github.com/floomhq/floom/issues
Project-URL: LLM Documentation, https://floom.dev/llms.txt
Project-URL: Agent Guide, https://github.com/floomhq/floom/blob/main/docs/AGENT_GUIDE.md
Keywords: fastapi,floom,sdk,api,deployment,web-app,auto-ui,type-hints,self-hosted,docker,mcp,agent,llm
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Provides-Extra: dataframe
Requires-Dist: pandas>=2.0.0; extra == "dataframe"
Requires-Dist: pyarrow>=14.0.0; extra == "dataframe"
Provides-Extra: excel
Requires-Dist: pandas>=2.0.0; extra == "excel"
Requires-Dist: openpyxl>=3.1.0; extra == "excel"
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: pandas>=2.0.0; extra == "dev"
Requires-Dist: pyarrow>=14.0.0; extra == "dev"
Requires-Dist: openpyxl>=3.1.0; extra == "dev"
Dynamic: author
Dynamic: home-page
Dynamic: requires-python

# floom SDK

Python SDK for building apps on floom.

## Installation

The SDK is automatically available in the floom runtime. For local development:

```bash
pip install -e .
```

Or install from PyPI:

```bash
pip install floom-sdk
```

## Quick Start

```python
from floom import app, remember

@app.action
def greet(name: str) -> dict:
    visits = (remember("visits") or 0) + 1
    remember("visits", visits)
    return {"message": f"Hello, {name}! Visit #{visits}"}
```

Paste this into floom, hit "Go Live," and share the link.

## Features

- **`@app.action`** - Mark functions as runnable actions with auto-generated UI
- **`remember()` / `forget()`** - Built-in key-value storage across runs
- **`storage`** - Full storage API (`get`, `set`, `delete`, `list`)
- **`save_artifact()`** - Write outputs that users can download
- **`save_dataframe()`** - Save pandas/polars DataFrames in multiple formats
- **`context`** - Access secrets and uploaded JSON data
- **Zero Dependencies** - Core functionality has no required dependencies

## Documentation

See the [SDK Guide](../../../docs/SDK_GUIDE.md) for complete documentation and examples.

## Sample Apps

Check out the sample apps in `../samples/`:

- `hello-world` - Minimal greeting action
- `extract-company` - URL scraping with artifacts
- `image-analysis` - File upload and image processing
- `bulk-processor` - Batch processing with error handling
- `opendraft` - Multi-action app example

## Development

```bash
# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run tests with coverage
pytest --cov=floom --cov-report=html
```

## License

MIT
