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.2-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.2-cp39-abi3-win_amd64.whl (7.0 MB view details)

Uploaded CPython 3.9+Windows x86-64

expman_rs-0.5.2-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.2-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.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: expman_rs-0.5.2-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.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 55b5e18e26228b999f83721887aaeb85bb6136db553ab6f04b662f7e7ec3759b
MD5 54c1e6b3a9991f7245bb67ffaea24d4e
BLAKE2b-256 8e67efb0c8ab8a4120443bcb8d44365b63e9bdbdbadcb718e9fda03bb2eb7428

See more details on using hashes here.

File details

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

File metadata

  • Download URL: expman_rs-0.5.2-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.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4f73bb51e97a1ac2c1081ac400dfe56e4ea45c4ae679fea3166aea757f0b2b17
MD5 3fea1dcf99f137ef5dc754a87a88fc0b
BLAKE2b-256 4b615520275e29af373e4f07a0493c768802891330fc32e1ed212a4cd2f3bf05

See more details on using hashes here.

File details

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

File metadata

  • Download URL: expman_rs-0.5.2-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.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81e7004780a0d615ddd8fe7930db3a3bcb17d94332332c5f1457034e1de781c3
MD5 699c1fd25be78e4319b147609dc36322
BLAKE2b-256 1c2626fa6b94f9fa49b2fe562397e58e63b1e26fb09ada54923499b8068a8e60

See more details on using hashes here.

File details

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

File metadata

  • Download URL: expman_rs-0.5.2-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.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01a7c58ee3b4901f2872127d907e2fb9f091d94008b33a6d52a9c79d4fb4ce79
MD5 91ba9da9160a10c6906388c795d7248a
BLAKE2b-256 0d8eba780bc6e3bcf1ba5d5b33cc6c238f3715f8f90016fb07cb63d646856251

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