Skip to main content

Git-based experiment tracking with semantic metadata.

Project description

Features

mthd turns your commit history into a searchable scientific log.

Every time you run an experiment, your code will be auto-committed with metadata in the commit message.

Installation

  • uv add mthd

Usage

  • Put the @commit decorator on your experiment function.
  • mthd will store hyperparameters and metrics as metadata in the commit message.
  • Query your scientific log, e.g. mthd query metrics.accuracy < 0.8.
from mthd import commit, Run

@commit
def my_experiment(run: Run) -> Metrics:
    ...

    run.set_hyperparameters({
        "lr": 0.001,
        "epochs": 100,
    })

    ...

    run.set_metrics({
        "accuracy": 0.9,
    })

if __name__ == "__main__":
    my_experiment()

Then run your experiment:

$ python experiment.py

Generating commit with message:

    exp: run my_experiment at 2025-02-10 18:39:18.759230

    ---

    {
      "experiment": "my_experiment",
      "hyperparameters": {
        "lr": 0.001,
        "epochs": 100,
      },
      "metrics": {
        "accuracy": 0.9,
      },
      "uuid": "94871de1-4d6c-4e70-9c9d-60ec11df1159",
      "artifacts": null,
      "annotations": null,
      "timestamp": "2025-02-10T18:39:18.759230"
    }

Finally, query for relevant commits:

$ mthd query metrics.accuracy > 0.8

Found 1 commit(s):

    af6cd7

Development

  • git clone https://github.com/flywhl/mthd.git
  • cd mthd
  • uv sync
  • just test

Flywheel

Science needs better software tools. Flywheel is an open source collective building simple tools to preserve scientific momentum, inspired by devtools and devops culture. Join our Discord here.

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

mthd-0.2.1.tar.gz (47.5 kB view details)

Uploaded Source

Built Distribution

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

mthd-0.2.1-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file mthd-0.2.1.tar.gz.

File metadata

  • Download URL: mthd-0.2.1.tar.gz
  • Upload date:
  • Size: 47.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.0

File hashes

Hashes for mthd-0.2.1.tar.gz
Algorithm Hash digest
SHA256 8935e9f421f33372a540c5cd59f4c6ee3e776507103ceec6e0592cd8f9c534e2
MD5 0af522989a5a316ebc940c74560c990c
BLAKE2b-256 e29e70eb6811d10df276b784c965e4946acdfe72cf9c1ca177cccfea76f77909

See more details on using hashes here.

File details

Details for the file mthd-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: mthd-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.0

File hashes

Hashes for mthd-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b6e60f2e767210d4169efa4a14f034140e1d9e79472695ae3bd6f127bb55ddd6
MD5 f40c022da247586e7b3a71180482c9be
BLAKE2b-256 1af48c13269a16bf249161df4bb4d55652afeb8785780cf73bd672daab852395

See more details on using hashes here.

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