Repro Module (stx.repro)
Reproducibility utilities: random state management, ID generation, timestamps, and array hashing.
Quick Reference
import scitex as stx
# Fix all random seeds (numpy, torch, random, ...)
rng = stx.repro.get() # Global manager (seed=42)
rng = stx.repro.reset(seed=123) # Reset with new seed
# Named generators for deterministic results
data_gen = rng.get_np_generator("data")
data = data_gen.random(100) # Same seed+name = same result
# Unique identifiers
stx.repro.gen_id()
# → "2026Y-02M-13D-14h30m15s_a3Bc9xY2"
stx.repro.gen_timestamp()
# → "2026-0213-1430"
# Verify reproducibility
rng.verify(data, "train_data") # First: caches hash
rng.verify(data, "train_data") # Later: verifies match
RandomStateManager
Central class for managing random states across libraries.
rng = stx.repro.RandomStateManager(seed=42)
# Named generators (same name + seed = deterministic)
np_gen = rng.get_np_generator("experiment")
torch_gen = rng.get_torch_generator("model")
# Checkpoint and restore
rng.checkpoint("before_training")
rng.restore("before_training.pkl")
# Temporary seed change
with rng.temporary_seed(999):
noise = rng.get_np_generator("noise").random(10)
Automatically fixes seeds for: random, numpy, torch (+ CUDA),
tensorflow, jax.
Available Functions
get(verbose)– Get or create global RandomStateManager singletonreset(seed, verbose)– Reset global instance with new seedfix_seeds(seed, ...)– Legacy function (use RandomStateManager instead)gen_id(time_format, N)– Generate unique timestamp + random IDgen_timestamp()– Generate timestamp string for file naminghash_array(array_data)– SHA256 hash of numpy array (16 chars)
API Reference
See scitex.repro API Reference for the auto-generated Python API.