Skip to main content

High-performance experiment manager with Rust backend

Project description

ExpMan Python Wrapper

The expman Python package provides a seamless, idiomatic interface for logging experiments in Python projects while leveraging the high-performance Rust core.

Key Features

  • Idiomatic Python: Uses context managers and singletons for clean integration into scripts and notebooks.
  • Fast Logging: Native calls to the Rust engine ensure sub-microsecond logging latency.
  • Automatic Cleanup: Ensures all file handles are closed and data is flushed upon script completion.
  • TensorBoard Drop-in: Replace from torch.utils.tensorboard import SummaryWriter with from expman import SummaryWriter.

Installation

pip install expman-rs

Basic Usage

Global Singleton

import expman as exp

exp.init("my_model")
exp.log_vector({"loss": 0.42})

Context Manager

from expman import Experiment

with Experiment("my_model") as exp:
    exp.log_vector({"loss": 0.42})

TensorBoard SummaryWriter (Drop-in Replacement)

Replace your existing TensorBoard import with expman's drop-in replacement. All metrics are stored in expman's high-performance Parquet format instead of TensorBoard event files.

# Before:
# from torch.utils.tensorboard import SummaryWriter

# After:
from expman import SummaryWriter

writer = SummaryWriter(log_dir="runs/my_experiment")

for epoch in range(100):
    loss = 1.0 / (epoch + 1)
    writer.add_scalar("train/loss", loss, epoch)

writer.add_scalars("metrics", {"accuracy": 0.95, "f1": 0.92}, 100)
writer.add_hparams({"lr": 0.001, "batch_size": 32}, {"hparam/accuracy": 0.95})

writer.close()

Supported methods:

Method Status Notes
add_scalar ✅ Full Logs as expman vector metric
add_scalars ✅ Full Auto-prefixes tags with main_tag
add_text ✅ Full Logged as info message
add_hparams ✅ Full Logs params + initial metrics
flush ✅ No-op Expman auto-flushes asynchronously
close ✅ Full Graceful shutdown
add_histogram ⚠️ Stub No-op, won't raise errors
add_image/images ⚠️ Stub No-op, won't raise errors
add_figure ⚠️ Stub No-op, won't raise errors
add_video ⚠️ Stub No-op, won't raise errors
add_audio ⚠️ Stub No-op, won't raise errors
add_graph ⚠️ Stub No-op, won't raise errors
add_embedding ⚠️ Stub No-op, won't raise errors
add_pr_curve ⚠️ Stub No-op, won't raise errors
add_custom_scalars ⚠️ Stub No-op, won't raise errors
add_mesh ⚠️ Stub No-op, won't raise errors

Internal Architecture

The wrapper uses PyO3 to create native Python extension modules that link directly to the Rust expman library.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

expman_rs-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.7 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

expman_rs-0.5.0-cp39-abi3-win_amd64.whl (7.0 MB view details)

Uploaded CPython 3.9+Windows x86-64

expman_rs-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

expman_rs-0.5.0-cp39-abi3-macosx_11_0_arm64.whl (6.8 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file expman_rs-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: expman_rs-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: PyPy, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for expman_rs-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c14c529c9e0dea191f4c00e52d46d1e53f8654e317905b167bc8f2dcdc3b3a30
MD5 edc9d38049fdc6ab90a7bcc7c7994239
BLAKE2b-256 5b8dc2f789f579f0f97ce17df70de10d0ee096de29a421b2e2367501ca4e63bf

See more details on using hashes here.

File details

Details for the file expman_rs-0.5.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: expman_rs-0.5.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for expman_rs-0.5.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1911b042d07303b2922f1ef736a3d34782c1a3b20450035dd7d71cef31e9bcc6
MD5 a585c3ee23ebfc7c6c87077278fa3958
BLAKE2b-256 025f0057f25b66bcce6a677834af423d404e7d807bcd225049476bb397217b34

See more details on using hashes here.

File details

Details for the file expman_rs-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: expman_rs-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for expman_rs-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8e3ddde1bd2870d34888c88c069be5569cbc6020a8dd04d674bb7f861c528a3
MD5 8cb4c0fe228a1c24c34167eb00ba1a58
BLAKE2b-256 1c6489dcabc24a0d3cd6833d9ef17acf704e29ef01bd0c8e6d9fbcbc3e5b6cd8

See more details on using hashes here.

File details

Details for the file expman_rs-0.5.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: expman_rs-0.5.0-cp39-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 6.8 MB
  • Tags: CPython 3.9+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for expman_rs-0.5.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 97af3d51a73f55e3672852ed184d755643b847222de236fe306a73d2ea30d152
MD5 2bc015cc9388bee523c900c28b05850e
BLAKE2b-256 965258beabb8946bc5b40296c3fdfb33ad05091ddb5c3638ff82973e357b70c6

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