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

Generate a personal access token in the web app (Settings → Python SDK access tokens). Tokens are created on demand, stored hashed server-side, and shown once — like GitHub or PyPI. Use them with the thesis-tracker package:

pip install thesis-tracker
export THESIS_TRACKER_TOKEN=tt_...
export THESIS_TRACKER_API_URL=http://localhost:3000
export THESIS_TRACKER_PROJECT="My Thesis"   # or THESIS_TRACKER_PROJECT_ID=<uuid>

The SDK sends the token to your Thesis Tracker instance, which validates it and applies row-level security as your user.

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.4.tar.gz (41.5 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.4-py3-none-any.whl (46.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: thesis_tracker-1.0.4.tar.gz
  • Upload date:
  • Size: 41.5 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.4.tar.gz
Algorithm Hash digest
SHA256 059ec162a313e95ea88fb10ebf695be52bda7942fa9bed74d12146421b23dac8
MD5 c6f34b90ff66f5cc1342e2986d0928e6
BLAKE2b-256 56c1bc7ee9baaa6b7e927317d6b14236e3f2ea3e21c1c3e278693efa39359288

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: thesis_tracker-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 46.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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 af8fa5d8e2438a73439271c3b56b857d526bd54c5539f32b8a4026410704ca53
MD5 ae6ad60e10e2b45b3bed6dad251e7658
BLAKE2b-256 ba92cd7db221bda9dd6ebbae764e11d85e22f9ea385c82c081eec98c1165ad0b

See more details on using hashes here.

Provenance

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