Skip to main content

Push experiments, training curves, and figures (TensorBoard / wandb / matplotlib) into your self-hosted Thesis Tracker dashboard.

Project description

thesis-tracker (Python SDK)

Push ML experiments into the same dashboard as your papers and thesis plan.

The Thesis Tracker web app tracks literature, milestones, and report progress. This package connects your training scripts to that same Supabase database — runs, step-indexed curves, and figure artifacts show up under Experiments without a separate wandb/MLflow silo.

Why use it

Problem This SDK
Experiment logs live in TensorBoard; thesis context lives elsewhere One DB: link runs to related_paper, compare sweeps in the PWA
Wiring a custom API for every project Same RLS + migrations as the web app — self-host once
Heavy MLOps platforms Lightweight decorator + optional Lightning/Keras callbacks

Install

pip install thesis-tracker                 # core (supabase + httpx)
pip install 'thesis-tracker[figures]'      # matplotlib/Pillow artifacts
pip install 'thesis-tracker[tensorboard]'  # tbparse import
pip install 'thesis-tracker[wandb]'        # wandb import
pip install 'thesis-tracker[all,dev]'      # everything + pytest

Sync sources register at import time but stay unavailable until their extra is installed (clear error if you call one without deps).

Configure

Email + password auth (enable Email in Supabase Auth) so RLS attributes rows to you:

export THESIS_TRACKER_SUPABASE_URL=https://<ref>.supabase.co
export THESIS_TRACKER_SUPABASE_ANON_KEY=eyJ...
export THESIS_TRACKER_EMAIL=you@example.com
export THESIS_TRACKER_PASSWORD=...
export THESIS_TRACKER_PROJECT="My Thesis"   # or THESIS_TRACKER_PROJECT_ID=<uuid>

Apply migrations through at least 0017 (metrics + artifacts bucket) — see root README § Database.

Quick example

from thesis_tracker import track_experiment

@track_experiment(name="beta-vae sweep", config={"latent_dim": 32},
                  sync={"tensorboard": "runs/beta4"})
def train(run, beta=4.0):
    for step in range(100):
        run.log_metric("val_loss", loss(step), step=step)
    run.log_figure(fig, name="reconstruction")
    return {"val_loss": 0.11}

train(beta=4.0)
  • @track_experiment — creates row (running), pins git state, logs metrics, uploads figures, sets done/failed on exit.
  • with track(...) as run: — same without a decorator.
  • Callbacksthesis_tracker.integrations.lightning.ThesisTrackerCallback, .keras.ThesisTrackerCallback.

CLI

thesis-tracker list --project "My Thesis"
thesis-tracker import-tb runs/beta4 --name "beta-vae sweep"
thesis-tracker import-wandb entity/project/run_id

Extend (Open/Closed)

Implement MetricSource (id, available(), read(ref)), register on default_registry, use track(sync={"my_source": ref}). Example: examples/custom_source.py.

Architecture

Mirrors the web app: features/experiments/{domain,application,infrastructure}, container.py composition root, repository interfaces tested with in-memory fakes. No duplicate schema — migrations in ../supabase/migrations/ are the contract.

Test

pip install -e '.[dev]'
pytest   # offline; Supabase integration test skips without env creds

More

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

thesis_tracker-1.0.2.tar.gz (36.7 kB view details)

Uploaded Source

Built Distribution

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

thesis_tracker-1.0.2-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file thesis_tracker-1.0.2.tar.gz.

File metadata

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

File hashes

Hashes for thesis_tracker-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8ef87d2e6966749794792427b241856a7425d6e252484322a3c91cd88d8d3116
MD5 9a09a33a5a0c4fa0ccd282ffa74cbe3a
BLAKE2b-256 914d5aef15786e47de2be09de8466c6aa9a10a31246d19667e44d5089671133f

See more details on using hashes here.

Provenance

The following attestation bundles were made for thesis_tracker-1.0.2.tar.gz:

Publisher: publish-python.yml on Satwik-Miyyapuram/thesis_tracker

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

File details

Details for the file thesis_tracker-1.0.2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for thesis_tracker-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2743febda458630c7371745871214b42ddf0d68745ce0b96615e4d6a829c8d2f
MD5 1bd68feadf8296af7f7db50f718d56ba
BLAKE2b-256 de7a65bb6c05fdf7d8cfa42cdbc061ef5af0318819e6930719a623d7b4e8a79a

See more details on using hashes here.

Provenance

The following attestation bundles were made for thesis_tracker-1.0.2-py3-none-any.whl:

Publisher: publish-python.yml on Satwik-Miyyapuram/thesis_tracker

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