Metadata-Version: 2.4
Name: aspara
Version: 0.1.0
Summary: Blazingly fast metrics tracker for machine learning experiments
Author: TOKUNAGA Hiroyuki
License-Expression: Apache-2.0
Requires-Dist: polars>=1.37.1
Requires-Dist: aspara[tracker] ; extra == 'all'
Requires-Dist: aspara[dashboard] ; extra == 'all'
Requires-Dist: aspara[remote] ; extra == 'all'
Requires-Dist: aspara[tui] ; extra == 'all'
Requires-Dist: aspara[docs] ; extra == 'all'
Requires-Dist: uvicorn>=0.27.0 ; extra == 'dashboard'
Requires-Dist: sse-starlette>=1.8.0 ; extra == 'dashboard'
Requires-Dist: aiofiles>=23.2.0 ; extra == 'dashboard'
Requires-Dist: watchfiles>=1.1.1 ; extra == 'dashboard'
Requires-Dist: pystache>=0.6.8 ; extra == 'dashboard'
Requires-Dist: fastapi>=0.115.12 ; extra == 'dashboard'
Requires-Dist: lttb>=0.3.2 ; extra == 'dashboard'
Requires-Dist: numpy>=1.24.0 ; extra == 'dashboard'
Requires-Dist: msgpack>=1.0.0 ; extra == 'dashboard'
Requires-Dist: mkdocs>=1.6.0 ; extra == 'docs'
Requires-Dist: mkdocs-material>=9.6.0 ; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.24.0 ; extra == 'docs'
Requires-Dist: mkdocs-autorefs>=0.5.0 ; extra == 'docs'
Requires-Dist: requests>=2.31.0 ; extra == 'remote'
Requires-Dist: uvicorn>=0.27.0 ; extra == 'tracker'
Requires-Dist: fastapi>=0.115.12 ; extra == 'tracker'
Requires-Dist: python-multipart>=0.0.22 ; extra == 'tracker'
Requires-Dist: textual>=0.47.0 ; extra == 'tui'
Requires-Dist: textual-plotext>=0.2.0 ; extra == 'tui'
Requires-Python: >=3.10
Provides-Extra: all
Provides-Extra: dashboard
Provides-Extra: docs
Provides-Extra: remote
Provides-Extra: tracker
Provides-Extra: tui
Description-Content-Type: text/markdown

# Aspara

The loss must go on. Aspara tracks every step of the descent, all the way to convergence.


![Dashboard Screenshot](https://raw.githubusercontent.com/prednext/aspara/main/docs/images/dashboard-screenshot.png)

## Why Aspara?

- Fast by design: LTTB-based metric downsampling keeps dashboards responsive
- Built for scale: manage hundreds runs without friction
- Flexible UI: Web dashboard and TUI dashboard from the same data

## Try the Demo

Want to see Aspara in action without installing? Try the live demo.

**[https://prednext-aspara.hf.space/](https://prednext-aspara.hf.space/)**

The demo lets you explore the experiment results dashboard with sample data.

## Requirements

- Python 3.10+

## Installation

```bash
# Install with all features
pip install aspara[all]

# Or install components separately
pip install aspara              # Client only
pip install aspara[dashboard]   # Dashboard only
pip install aspara[tracker]     # Tracker only
```

## Quick Start

**1. Log your experiments (just 3 lines!)**

```python
import aspara

aspara.init(project="my_project", config={"lr": 0.01, "batch_size": 32})

for epoch in range(100):
    loss, accuracy = train_one_epoch()
    aspara.log({"train/loss": loss, "train/accuracy": accuracy}, step=epoch)

aspara.finish()
```

**2. Visualize results**

```bash
aspara dashboard
```

Open http://localhost:3141 to compare runs, explore metrics, and share insights.

**3. Or use the Terminal UI**

```bash
pip install aspara[tui]
aspara tui
```

![TUI Screenshot](https://raw.githubusercontent.com/prednext/aspara/main/docs/images/terminal-screenshot.png)

Navigate projects, runs, and metrics with Vim-style keybindings. Perfect for SSH sessions and terminal workflows.

## Documentation

- [Getting Started](docs/getting-started.md)
- [Dashboard Guide](docs/advanced/dashboard.md)
- [User Guide](docs/user-guide/basics.md)
- [API Reference](docs/api/index.md)

## Development

See [DEVELOPMENT.md](DEVELOPMENT.md) for development setup and guidelines.

**Quick setup:**
```bash
pnpm install && pnpm build  # Build frontend assets
uv sync --dev               # Install Python dependencies
```
