Metadata-Version: 2.4
Name: bossalabs
Version: 0.1.0
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: boto3
Requires-Dist: requests
Requires-Dist: fire
Requires-Dist: tomli; python_version < "3.11"
Requires-Dist: requests-toolbelt>=1.0.0
Requires-Dist: mypy
Requires-Dist: ruff
Requires-Dist: pytest
Requires-Dist: types-requests
Requires-Dist: tqdm>=4.67.3
Requires-Dist: python-dotenv>=1.2.2

[![python](https://img.shields.io/badge/python-3.13-blue?logo=python)](https://www.python.org/)
[![CI](https://github.com/computervisionsports/bossa-client/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/computervisionsports/bossa-client/actions/workflows/ci.yml)

# BossaLabs Python Client

Small Python client for requesting upload authorization and uploading
video files using a presigned S3 POST.

## Installation

```bash
uv venv .venv
source .venv/bin/activate
uv pip install -e .
```

Or with plain pip:

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

Or from PyPI:

```bash
pip install bossalabs
```

## Python usage

```python
from bossalabs import Client

client = Client(
    api_key="YOUR_API_KEY",
    model="MODEL_NAME"
)

result = client.upload_video("/path/to/video.mp4")
print(result)
```

## CLI usage

After installation, you can run:

```bash
bossalabs process-video "/path/to/video.mp4" "MODEL_NAME" --api_key "YOUR_API_KEY"
```

## Documentation

Full documentation is built with [MkDocs](https://www.mkdocs.org/) and
[Material for MkDocs](https://squidfunk.github.io/mkdocs-material/).

### Install documentation dependencies

```bash
uv sync --group docs
```

### Serve docs locally

Preview the site with live reload:

```bash
uv run mkdocs serve
```

Open [http://127.0.0.1:8000](http://127.0.0.1:8000) in your browser.

### Build static HTML

Generate the static site into the `site/` directory:

```bash
uv run mkdocs build
```

The HTML output is written to `site/` (gitignored). Deploy that folder to any
static hosting provider.

### What is documented

The docs cover the public user-facing API:

- `bossalabs.Client` — authorize and upload video files
- `bossalabs.UploadClientError` — authorization failure type
- `bossalabs.API_BASE_URL` — default API endpoint constant
- `bossalabs` CLI — `process-video` command

Internal modules (`bossalabs.models`, scripts, and private helpers) are
excluded from the API reference.
