Skip to main content

Git-based experiment tracking with semantic metadata.

Project description

Features

logis 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 logis

Usage

  • Put the @commit decorator on your experiment function.
  • logis will store hyperparameters and metrics as metadata in the commit message.
  • Query your scientific log, e.g. logis query metrics.accuracy < 0.8.
from logis 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:

$ logis query metrics.accuracy > 0.8

Found 1 commit(s):

    af6cd7

Development

  • git clone https://github.com/flywhl/logis.git
  • cd logis
  • 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

logis-0.3.0.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.

logis-0.3.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file logis-0.3.0.tar.gz.

File metadata

  • Download URL: logis-0.3.0.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 logis-0.3.0.tar.gz
Algorithm Hash digest
SHA256 0cfc0d06b816ac24ae19e751ef255d2cf2e4d02c0dc7babc0287a6026d4fec1b
MD5 31ce6c3895184a046a7acca25fd4a146
BLAKE2b-256 06a08dde1553085e161d76b17b81f6b4ccc83afbad375b998eee8e2e7a26cbe0

See more details on using hashes here.

File details

Details for the file logis-0.3.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for logis-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d92ce1d111d13721bc85c9bd0890d074e4ebfdf1d92b6fe83af1e9aacc0ce892
MD5 1979b5c867b71b188af3dee2b485beeb
BLAKE2b-256 21c2d1a4cc3e19ee3766e238a5c9d6ddfb65ff8031b89e5d534f44090a4612d8

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