Metadata-Version: 2.4
Name: blackfish-ai
Version: 1.0.0a6
Summary: An open-source AI-as-a-Service platform.
Project-URL: bug-tracker, https://github.com/princeton-ddss/blackfish/issues
Project-URL: documentation, https://princeton-ddss.github.io/blackfish/
Author-email: Colin Swaney <colinswaney@princeton.edu>
License-Expression: MIT
License-File: LICENSE
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.12
Requires-Dist: advanced-alchemy<2,>=1.11
Requires-Dist: aiosqlite<0.22,>=0.21
Requires-Dist: alembic<2,>=1.14
Requires-Dist: colorlog<7,>=6.9
Requires-Dist: fabric<4,>=3.2.2
Requires-Dist: httpx<1,>=0.28
Requires-Dist: huggingface-hub<2,>=1.4.1
Requires-Dist: jinja2<4,>=3.1.5
Requires-Dist: litestar<3,>=2.16
Requires-Dist: log-symbols<0.1,>=0.0.14
Requires-Dist: pillow<13,>=12
Requires-Dist: prettytable<4,>=3.12
Requires-Dist: psutil<8,>=7.1.3
Requires-Dist: pydantic<3,>=2.10.6
Requires-Dist: python-dotenv<2,>=1.2.1
Requires-Dist: requests<3,>=2.32.3
Requires-Dist: rich-click<2,>=1.8.9
Requires-Dist: types-paramiko<5,>=4.0.0.20250822
Requires-Dist: types-psutil<8,>=7.1.3.20251202
Requires-Dist: types-pyyaml<7,>=6.0.12
Requires-Dist: types-requests<3,>=2.32.0.20241016
Requires-Dist: uvicorn<0.39,>=0.38
Requires-Dist: websockets<17,>=16
Requires-Dist: yaspin<4,>=3.1
Provides-Extra: uv
Requires-Dist: uv>=0.5.18; extra == 'uv'
Description-Content-Type: text/markdown

# Blackfish AI

Python package `blackfish-ai` - the core backend for the [Blackfish](../) MLaaS platform.

For project overview, installation, and usage instructions, see the [main README](../README.md).

## Development Setup

```bash
cd lib
uv sync                    # Install dependencies
uv run blackfish --help    # Verify CLI works
```

## Common Commands

```bash
# Development (using justfile)
uv run just test           # Run tests with coverage
uv run just lint           # Lint and format
uv run just coverage       # Generate coverage badge
uv run just docs           # Build documentation

# Database Migrations
uv run alembic revision --autogenerate -m "description"
uv run alembic upgrade head
```

## Project Structure

```
lib/
├── src/blackfish/
│   ├── cli/              # CLI commands (rich-click)
│   ├── server/           # Litestar app, routes, models
│   └── build/            # Built frontend (generated)
├── tests/                # pytest tests
└── docs/                 # MkDocs documentation
```

## Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `BLACKFISH_HOST` | Server host | `localhost` |
| `BLACKFISH_PORT` | Server port | `8000` |
| `BLACKFISH_DEBUG` | Enable debug mode (0/1) | `1` |
| `BLACKFISH_HOME_DIR` | Blackfish home directory | `~/.blackfish` |
| `BLACKFISH_BASE_PATH` | API base path | `/` |
| `BLACKFISH_STATIC_DIR` | Static files directory | (bundled) |
| `BLACKFISH_CONTAINER_PROVIDER` | Container provider | (auto-detect) |
| `BLACKFISH_MAX_FILE_SIZE` | Max upload file size | `1000000000` |

## Documentation

- [Full Documentation](https://princeton-ddss.github.io/blackfish/)
- [Main README](../README.md)
