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

One token auth: copy a bearer token from the Thesis Tracker dashboard (Settings → API token). The SDK sends it to your Thesis Tracker web app instance, which applies RLS using your session.

export THESIS_TRACKER_TOKEN=tt_...
# Optional; defaults to http://localhost:3000
export THESIS_TRACKER_API_URL=http://localhost:3000
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.3.tar.gz (37.1 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.3-py3-none-any.whl (46.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: thesis_tracker-1.0.3.tar.gz
  • Upload date:
  • Size: 37.1 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.3.tar.gz
Algorithm Hash digest
SHA256 f14894af839734ace4f77dcf90d993ed4fd6079d9c1d53a54a94abedd08a69aa
MD5 fc0d4fa9a7a7244b73254679ea5b97d4
BLAKE2b-256 4a798c409c54b8d0d917efce95bffcbb99865a505d19b77c36e1c90597cea859

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: thesis_tracker-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 46.7 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b39f08e7626cf9dc2c7122fd0ca2fc131ec4811e269eeeda0244d92d242d1440
MD5 3faba82a41c66c03e47b7e04f7ecbfdf
BLAKE2b-256 022325138bfe5875169bad388f3662472245d5fe4e04e58d7d99f9f0653df1fc

See more details on using hashes here.

Provenance

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