superstore
High-performance synthetic data generation library for testing and development.
Overview
superstore is a Rust-powered Python library for generating realistic synthetic datasets. It provides:
Data Generators
| Generator | Description | Use Cases |
|---|---|---|
| Retail | Sales transactions, employees | BI dashboards, forecasting |
| Time Series | Financial-style series with regimes, jumps | Quant research, backtesting |
| Weather | Sensor data with seasonal/diurnal patterns | IoT analytics, anomaly detection |
| Logs | Web server & application logs | Observability, alerting |
| Finance | Stock prices, OHLCV, options chains | Trading systems, risk analysis |
| Telemetry | Machine metrics, anomalies, failures | DevOps dashboards, ML training |
Statistical Tools
| Tool | Description | Use Cases |
|---|---|---|
| Distributions | Sample from statistical distributions | Simulation, Monte Carlo |
| Copulas | Correlated multivariate data | Risk modeling, portfolio analysis |
| Temporal Models | AR, Markov chains, random walks | Time series simulation |
Key Features
- Rust-powered: High-performance generation, 10-100x faster than pure Python
- Flexible output: pandas DataFrame, polars DataFrame, or Python dicts
- Configurable: Pydantic config classes for validated, structured configuration
- Reproducible: Seed support for deterministic generation
- Scalable: Streaming and parallel generation for large datasets
Installation
pip install superstore
For development with polars support:
pip install superstore[develop]
Quick Start
from superstore import superstore, employees, timeseries, weather
# Generate 1000 retail records as a pandas DataFrame
df = superstore(count=1000)
# Generate as polars DataFrame
df_polars = superstore(count=1000, output="polars")
# Generate as list of dicts
records = superstore(count=1000, output="dict")
Reproducibility with Seeds
All data generators support an optional seed parameter for reproducible random data generation:
from superstore import superstore, employees, getTimeSeries, machines
# Same seed produces identical data
df1 = superstore(count=100, seed=42)
df2 = superstore(count=100, seed=42)
assert df1.equals(df2) # True
# Works with all generators
employees_df = employees(count=50, seed=123)
timeseries_df = timeseries(nper=30, seed=456)
weather_df = weather(count=100, seed=789)
machine_list = machines(count=10, seed=321)
# No seed means random data each time
df3 = superstore(count=100) # Different each call
Development
Setup
# Clone the repository
git clone https://github.com/1kbgz/superstore.git
cd superstore
# Install development dependencies
make develop
Building
# Build Python wheel
make build
Testing
# Run all tests
make test
Linting
# Run linters
make lint
# Fix formatting
make fix
Architecture
superstore uses a hybrid Rust/Python architecture:
- rust/: Core Rust library with all data generation logic
- src/: PyO3 bindings exposing Rust functions to Python
- superstore/: Python package with native module
The core data generation is implemented in Rust for performance, with PyO3 providing seamless Python integration. Output format conversion (pandas/polars/dict) happens in the Rust bindings layer.
License
This library is released under the Apache 2.0 license
[!NOTE] This library was generated using copier from the Base Python Project Template repository.
Metadata
Release files for superstore 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| superstore-0.3.2.tar.gz | 142.1 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| superstore-0.3.2-cp310-abi3-win_AMD64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| superstore-0.3.2-cp310-abi3-manylinux_2_28_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| superstore-0.3.2-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 6.8 MB
Release files / superstore-0.3.2.tar.gz
| Download URL | superstore-0.3.2.tar.gz |
|---|---|
| Size | 142.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8292b7e5f915768ebad26b732438422a76b11866c58302076072a2dd4a2b287b
|
|
BLAKE2b-256 checksum How to use checksums |
7aeaf390415f052ffff288184e4e1d8dec5be3c70d159f245f37bd157e84b23b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / superstore-0.3.2-cp310-abi3-win_AMD64.whl
| Download URL | superstore-0.3.2-cp310-abi3-win_AMD64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
c374abd3ea6b67582950514a67ed4ec1e47cfd66983872802d6e45faa8467b10
|
|
BLAKE2b-256 checksum How to use checksums |
0461ede8c9e4ee92237301113e2f3b4177db050ae3c115b0d4ba5e857b48d740
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / superstore-0.3.2-cp310-abi3-manylinux_2_28_x86_64.whl
| Download URL | superstore-0.3.2-cp310-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
f7a149ab09de8e7dc077bfc02c12275ce6a1254f7e0a46f59d6d0ee20305493c
|
|
BLAKE2b-256 checksum How to use checksums |
621ec6cea1192eaf0847f6ce3afbc0eef2b2ca8ff47da6f97141b7f23611bc50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / superstore-0.3.2-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | superstore-0.3.2-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e243aad86d55fe9a94e3ce81ec968c5bc1564cb9b235090894795c5e6f86d657
|
|
BLAKE2b-256 checksum How to use checksums |
f6b18f44af30223172de0f989fe51e3e8c40aa8275227f01753e8a7c2f086589
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|