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.1.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.1-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: thesis_tracker-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 7ff8a6daf18215635e259ff449551b6407edd99517f914d19cc7265cbebee218
MD5 b8850e874990089b3bebf25b388828a1
BLAKE2b-256 01f552689a05ea05a2a78d82d73f8c22ece4fac388bc32297f9025fa7f1fa8f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for thesis_tracker-1.0.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: thesis_tracker-1.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 533569f60d489c2be63cba4f9b36f5c2d980cf8faa5537dbde28d82813fb8e8a
MD5 018f28765e3bc831463bd0e595596755
BLAKE2b-256 18a1bbe052ab46bed2bd3bc8b9762206e7b793e8d3b9d30ccaf838606da7e6b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for thesis_tracker-1.0.1-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