salute-api
Shared FastAPI runtime for Salute NLP scenarios: webhook, health, Pydantic message models, device-aware logging, and a MetricsSender protocol.
Install from PyPI:
pip install salute-api
# or
uv add salute-api
Quiz apps can still path-depend on a local checkout:
dependencies = ["salute-api"]
[tool.uv.sources]
salute-api = { path = "../salute-api", editable = true }
Layout
src/salute_api/ FastAPI factory, models, logging, metrics, scenario walker
tests/ contract and logging tests
ci/pipeline.py release version and API compatibility checks
Ruff and ty settings in this pyproject.toml are the shared baseline. Apps extend the ruff config with:
[tool.ruff]
extend = "../salute-api/pyproject.toml"
Checks
uv sync
uv run ruff check .
uv run ruff format --check .
uv run ty check src tests
uv run pytest
uv run python ci/pipeline.py check
Release
version in pyproject.toml and __version__ in src/salute_api/__init__.py must be the same numeric x.x.x. On the default branch, GitLab CI lints, tests, classifies the API diff as patch, minor, or major, writes that version, rebuilds, and waits. The deploy job is manual. It tags vX.Y.Z and uploads dist/ to PyPI.
Set masked CI variables before deploying:
UV_PUBLISH_TOKEN— PyPI API token from https://pypi.org/manage/account/token/GITLAB_TOKEN— project token withwrite_repository, used to push the release commit and tag
Tag pipelines are skipped, so the tag push does not publish again.
Local build:
uv build
uv publish
# or with an explicit token:
# uv publish --token $UV_PUBLISH_TOKEN
Release files for salute-api 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| salute_api-0.1.0.tar.gz | 18.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| salute_api-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.0 kB
Release files / salute_api-0.1.0.tar.gz
| Download URL | salute_api-0.1.0.tar.gz |
|---|---|
| Size | 18.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8a8de4793ba79f98d3e597c0cb5f235606965e49323ade4e3d28ac0821b552ae
|
|
BLAKE2b-256 checksum How to use checksums |
02ea3dda8f114bc4324460459a359e976f34d4a4ad89de66f7f85af6187b3330
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / salute_api-0.1.0-py3-none-any.whl
| Download URL | salute_api-0.1.0-py3-none-any.whl |
|---|---|
| Size | 26.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
299d897530b46c945a065506c77a2dda0e8f54ac51018297a1bb1dbb08dd8001
|
|
BLAKE2b-256 checksum How to use checksums |
bf1286f70062762bcbeb3561e1fa429ff81bc56d30d02df00691db33ca8af4be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|