Skip to main content

Two lines to hatch a life - lightweight training-run logger for Lossy (wandb-shaped, zero deps)

Project description

lossy

Two lines to hatch a life. A tiny, zero-dependency training-run logger that feeds the Lossy pet — a wandb-shaped API with none of the weight.

import lossy

run = lossy.init(project="my-project", name="run-1", config={"lr": 3e-4})
for step in range(1, 301):
    loss = train_step()
    lossy.log({"train/loss": loss}, step=step)
run.finish()

Setup

Pair with the Lossy app (Settings → Lossy SDK) to get your token, then:

export LOSSY_TOKEN=lossy_xxxxx        # pairing token from the app
export LOSSY_API=https://your-deployment.vercel.app   # optional; defaults to prod

No token? Your script still runs exactly as before — the SDK goes inert with a single warning. It never raises, never blocks, never slows a training loop: logging is a lock-guarded append to a bounded in-memory queue (oldest points drop past 10k), a background thread ships batches (≥50 points or every 5s) with retries and backoff, and every network failure is a stderr warning, not an exception.

Crash honesty

Uncaught exceptions are reported as crashed with an exception summary (sys.excepthook); a clean finish() — or a clean exit without one (atexit) — reports finished. Hard kills (OOM/SIGKILL) can't run hooks; the server's liveness sweep covers those.

Ctrl-C currently reports crashed too (distinguishable downstream via exitInfo.type == "KeyboardInterrupt"); a distinct "interrupted" state is a recorded product decision for later.

Environment knobs (mostly for tests)

LOSSY_TOKEN, LOSSY_API, LOSSY_FLUSH_INTERVAL, LOSSY_BATCH_SIZE, LOSSY_QUEUE_MAX, LOSSY_MAX_RETRIES, LOSSY_BACKOFF_BASE, LOSSY_HTTP_TIMEOUT, LOSSY_FINISH_TIMEOUT.

Tests

cd sdk && uv run --with pytest pytest

Fully offline — an in-process stub server plays the S1 ingest API.

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

lossy-0.3.3.tar.gz (47.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lossy-0.3.3-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file lossy-0.3.3.tar.gz.

File metadata

  • Download URL: lossy-0.3.3.tar.gz
  • Upload date:
  • Size: 47.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lossy-0.3.3.tar.gz
Algorithm Hash digest
SHA256 ec53cb7e1c5e55cb5dc0c71402e3bff8bd5af12e34f62b6ef0ea0ebbe42a893f
MD5 feeb6b7e44034024e5fc8608410471c9
BLAKE2b-256 ae9f96c35cf8f11e6c8c6e1e0bf942f5a8f2e87f3b25d53baa21edaca8b2e723

See more details on using hashes here.

Provenance

The following attestation bundles were made for lossy-0.3.3.tar.gz:

Publisher: publish-sdk.yml on benrio0923/lossy-

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lossy-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: lossy-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 30.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lossy-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ff3cf94beb32fe88968ecb9c994c8c0a79972991eccfa508f5299ca9c77afd9a
MD5 7ab222cdba43b5f9aea1bb572f9cf965
BLAKE2b-256 97e774d7dc3271d6ed193d9e42ed37df732ac9ba9fe8b093436aa6e3456c5fbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for lossy-0.3.3-py3-none-any.whl:

Publisher: publish-sdk.yml on benrio0923/lossy-

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page