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

Uploaded CPython 3.9+Windows x86-64

expman_rs-0.5.3-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.3-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.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: expman_rs-0.5.3-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.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7394d264950f25cce7006fe8a7139e5986c1137cd0542b0e7bc4f70b10823847
MD5 86192ababd74472501bdb625eabff7a5
BLAKE2b-256 46137d8fd6ce50e30d96e1877af232eca5e159d482cc813605ae034f2c57a6f9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: expman_rs-0.5.3-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.3-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d484ded05c7087cd0a06c34a5646a26e27179b93b9561c1cf6d3b2b39406905d
MD5 aa466adecd6f39f85d7fa1c4290c183d
BLAKE2b-256 0d295cb7705bb4297f5afec3f782a449a870c4b17f63e10bbaa462ae9eb24d54

See more details on using hashes here.

File details

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

File metadata

  • Download URL: expman_rs-0.5.3-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.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40fb5fcd33568c177ad8af9e9906901a25f1ff7b825994b087ca8dfcf51d14ce
MD5 378671b2f047d371c2c05fd7af4466d0
BLAKE2b-256 19973cd04082a1f480e7eb1e5a5d1b28372617cdc05a2010992059cc72bcfe3f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: expman_rs-0.5.3-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.3-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a85254fce7e16dbc5c24d8ec2c8e7eba9e984b2a088b3ae9be40b7e342aa3569
MD5 db1e9a289e5c08c8954311e485b0e6f3
BLAKE2b-256 2077c67da4a39b19fb5d8d49a30700f15638046e58b0105742318bc632c5ab07

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