Typed Python client for the Syvain Metrics REST API
Project description
Syvain Metrics API Client
Typed Python client for the Syvain Metrics REST API.
This package maps directly onto the REST surface for experiments, folders,
metrics, annotations, ingestion keys, and comparison queries. If you only need
to record metrics from a training or evaluation job, use
syvain-metrics-collector instead.
Install
uv add syvain-metrics-api-client
Authentication
Use an explicit API key:
from syvain_metrics_api_client import SyvainMetricsApiClient
client = SyvainMetricsApiClient("ak_org_...")
Use installed Syvain CLI auth:
client = SyvainMetricsApiClient("local")
local reads ~/.config/syvain-metrics/auth.json.
Usage
from syvain_metrics_api_client import ComparisonMetricSeries, SyvainMetricsApiClient
client = SyvainMetricsApiClient("local")
experiment = client.create_experiment(
"mamba-run-001",
description="Baseline mamba training run",
metadata={"model": "mamba"},
).experiment
client.ingest_metrics(
experiment.id,
[
{
"client_event_id": "mamba-run-001/loss/1",
"name": "loss",
"value": 0.42,
"step": 1,
"metadata": {"split": "train"},
}
],
sync=True,
)
rows = client.compare_metrics(
[
ComparisonMetricSeries(
experiment_id=experiment.id,
metric_name="loss",
metadata_key="split",
metadata_value="train",
)
],
limit=500,
)
Every metric must include a stable client_event_id. Reuse the same value when
retrying the same event so ingestion can remain idempotent.
Ingest and annotation creation calls mint and cache ingestion keys per experiment. General API calls use the configured API key directly.
Client Surface
Folders:
list_folders(...)create_folder(...)get_folder(...)patch_folder(...)rename_folder(...)move_folder(...)
Experiments:
list_experiments(...)create_experiment(...)get_experiment(...)update_experiment_status(...)move_experiment(...)
Metrics:
list_metrics(...)compare_metrics(...)ingest_metrics(...)list_metric_catalog(...)inspect_metric_catalog_values(...)
Ingestion keys:
list_ingestion_keys(...)create_ingestion_key(...)revoke_ingestion_key(...)forget_ingestion_credential(...)
Annotations:
list_annotations(...)create_annotation(...)
Authentication:
auth_status()
Host and Timeouts
The client defaults to https://metrics.syvain.com.
client = SyvainMetricsApiClient(
"ak_org_...",
host="https://metrics.syvain.com",
timeout=10.0,
ingest_timeout=60.0,
)
timeout applies to ordinary API calls. ingest_timeout applies to metric and
annotation ingestion calls, which may wait for synchronous ingestion when
sync=True.
Write Retries and Idempotency
The client retries transient request failures for idempotent write operations.
For POST and PATCH requests it sends a generated Idempotency-Key header and
reuses that key across retry attempts for the same logical request.
Metric ingestion idempotency is controlled by each metric's client_event_id.
Use deterministic IDs derived from the run, metric name, step, and series
metadata when the same event may be retried by caller code.
Errors
All package-specific failures inherit from MetricsApiError.
MetricsApiRequestError: the API returned an HTTP error or could not be reachedMetricsApiResponseError: the API returned a successful response that did not match the expected schemaMetricsApiAuthError: local CLI auth was requested but unavailable or invalid
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file syvain_metrics_api_client-0.0.62.tar.gz.
File metadata
- Download URL: syvain_metrics_api_client-0.0.62.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
013591d3a769169317df43b0239c1dbb4f3a1893da5f07977284b878bae4fce7
|
|
| MD5 |
282ce922ac9f9b53190f1df7eb32658f
|
|
| BLAKE2b-256 |
44fd532d49786c9f8a32b80efd3aa939da928a0afb15260be03b522b7ad34a40
|
File details
Details for the file syvain_metrics_api_client-0.0.62-py3-none-any.whl.
File metadata
- Download URL: syvain_metrics_api_client-0.0.62-py3-none-any.whl
- Upload date:
- Size: 13.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f83f15db5b22a549e95d571a235d2ba5f63ea6d0f57b76c849041b593eb7f700
|
|
| MD5 |
9c821bd185ffe20a1834a5705ce476d4
|
|
| BLAKE2b-256 |
2c9f43c7294ca0cd218821bd80a29a16b5f932e70280d504427b350e707b83c5
|