Metadata-Version: 2.4
Name: axion-lab
Version: 0.0.7
Summary: Artifact-first Experiment Evaluation System
Author-email: elda27 <kaz.birdstick@gmail.com>
Requires-Python: >=3.12
Requires-Dist: aioboto3>=13.0.0
Requires-Dist: aiosqlite>=0.20.0
Requires-Dist: alembic>=1.14.0
Requires-Dist: asyncpg>=0.30.0
Requires-Dist: boto3>=1.35.0
Requires-Dist: fastapi>=0.115.0
Requires-Dist: google-cloud-storage>=2.14.0
Requires-Dist: httpx>=0.28.0
Requires-Dist: psycopg2-binary>=2.9.0
Requires-Dist: pydantic-settings>=2.6.0
Requires-Dist: pydantic>=2.10.0
Requires-Dist: pytest-asyncio>=1.3.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: python-ulid>=3.0.0
Requires-Dist: sqlalchemy>=2.0.35
Requires-Dist: uvicorn[standard]>=0.32.0
Provides-Extra: dev
Requires-Dist: mypy>=1.13.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
Requires-Dist: pytest-cov>=6.0.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.8.0; extra == 'dev'
Requires-Dist: types-boto3>=1.35.0; extra == 'dev'
Description-Content-Type: text/markdown

# Axion Lab

Backend package for the Axion Lab experiment evaluation system. Provides the FastAPI server, data models, DP runner, and storage adapters.

## Prerequisites

- Python 3.12+
- [uv](https://docs.astral.sh/uv/)

## Setup

```bash
# Install dependencies
uv sync --all-extras
```

## Build

```bash
# Build the Python package
uv build

# Or from the repository root
make build-Axion Lab
```

## Usage

### Start the API server

`axion_lab server`, `axion-lab server`, and `python -m axion_lab server` all start the same API server. The command automatically runs migrations before startup. By default it uses SQLite + file storage for local development (and respects explicit environment variables when provided).

```bash
uv run axion_lab server --reload --host 0.0.0.0 --port 8000
```

Default local values:

- `DATABASE_URL=sqlite+aiosqlite:///./axion_lab.db`
- `DATABASE_TYPE=sqlite`
- `OBJECT_STORE_PROVIDER=file`
- `OBJECT_STORE_LOCAL_PATH=./data/object_store`

### Run tests

```bash
uv run pytest
```

### Lint

```bash
uv run ruff check src/
```

## Project Structure

```
src/
├── axion_lab/            # Core library (models, repositories, storage, DP)
├── axion_lab_server/     # FastAPI application and routers
└── axion_lab_alembic/    # Database migrations
```
