Skip to main content

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.

Metadata

Release files for expman-rs 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for expman-rs 1.3.0
File Interpreter ABI Platform Actions
expman_rs-1.3.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details for expman_rs-1.3.0-cp39-abi3-win_amd64.whl
expman_rs-1.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details for expman_rs-1.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
expman_rs-1.3.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details for expman_rs-1.3.0-cp39-abi3-macosx_11_0_arm64.whl

Total release size: 24.7 MB

Release files / expman_rs-1.3.0-cp39-abi3-win_amd64.whl

Download URL expman_rs-1.3.0-cp39-abi3-win_amd64.whl
Size 8.1 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
eec5f0467e8855dfec8cb9a4f55673a1ba8b3e6dbf4028aadd468d8b96852f42
BLAKE2b-256 checksum
How to use checksums
880b566e7de271213ce86e1b4a888ab905f650a64f676065bbbfe3bacf7c5a4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}

Release files / expman_rs-1.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL expman_rs-1.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 8.7 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
75ca45ccbdc3e6006be924aa1f2d18cb7869ef6ff7fbb8d039bc369e8e6d0394
BLAKE2b-256 checksum
How to use checksums
1b2e7ce11b532dac89ec172f912cff316d7adc67a329bc3966d4246df6689c59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}

Release files / expman_rs-1.3.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL expman_rs-1.3.0-cp39-abi3-macosx_11_0_arm64.whl
Size 7.8 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f5928e6642f8f061467f2b9b0d6a135db2aa773968cb4686b693b7661915bb71
BLAKE2b-256 checksum
How to use checksums
389e90f0c1c9d95a6c4f1da620f0d41de5356d3c94383517f2241211c6a483df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}

Security for expman-rs 1.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page