Metadata-Version: 2.5
Name: labqoat
Version: 0.1.2
Summary: Typed Python SDK and lab command-line client for the Labqoat platform
Author: Labqoat
License-Expression: LicenseRef-Proprietary
License-File: LICENSE
Requires-Python: <3.14,>=3.13
Requires-Dist: botocore[crt]<2,>=1.40
Requires-Dist: click<9,>=8.4
Requires-Dist: httpx<0.29,>=0.28.1
Requires-Dist: keyring<26,>=25
Requires-Dist: msgspec<0.20,>=0.19.0
Requires-Dist: pyarrow<24,>=21.0.0
Requires-Dist: rich<15,>=14.3
Description-Content-Type: text/markdown

# Labqoat

`labqoat` is the public Python SDK and the `lab` command-line client for the
shared Labqoat cloud platform. Application repositories contain only authored
resources—models, jobs, datasets, evaluations, and transforms. Terraform,
Kubernetes, persistence, and control-plane services stay in the platform
repository and are deployed once.

## Install

```bash
uv tool install labqoat
# or
pipx install labqoat
```

Python projects that import the SDK should also declare `labqoat` as a normal
dependency.

## Start a project

```bash
lab init my-lab-project
cd my-lab-project
uv sync

lab model new audio/my-model
lab train new audio/my-training-job
lab dataset new audio/my-dataset
```

Authenticate once, then open the AWS dashboard with the same stored session:

```bash
lab auth
lab auth ui
```

The browser handoff is automatic; the bearer token is not printed or placed in
the HTTP request URL.

The generated repository has this shape and no infrastructure code:

```text
my-lab-project/
├── datasets/
├── evals/
├── jobs/
├── models/
├── transforms/
├── pyproject.toml
└── README.md
```

Run `lab <group> --help` for the command surface. Local `check`, `test`, and
`build` commands do not require cloud authentication. `submit` and `deploy`
require a clean pushed Git commit and send a source snapshot to the one shared
AWS builder; user repositories never contain or apply Terraform.

## Development

```bash
uv sync --all-groups --locked
uv run ruff format --check .
uv run ruff check .
uv run pyright
uv run pytest
uv build
```

## Releases

Every push to `main` that passes CI is published to PyPI automatically. The
workflow increments the latest successful release tag's patch version, builds
the distributions, publishes them, and pushes the matching `vX.Y.Z` Git tag.

The repository must have a GitHub Actions secret named `PYPI_API_TOKEN` whose
value is a PyPI token allowed to publish `labqoat`.
