Skip to main content

SAMLB Logo

A unified benchmark framework for evaluating AutoML systems on data streams with fast C++ base algorithms and rigorous prequential evaluation.

Python PyPI Downloads License


Why SAMLB?

Streaming AutoML methods are hard to compare fairly. Different papers use different datasets, evaluation protocols, and algorithm pools. SAMLB solves this by providing:

  • Pure C++ core — base learners, preprocessing, feature selection, metrics and drift detection are all native, with no Python ML dependency (Naive Bayes, Hoeffding Trees, KNN, Perceptron, Logistic Regression, and more)
  • Framework-agnostic benchmarking -- plug in any streaming AutoML method with just 3 methods
  • Standardized prequential evaluation (test-then-train) with windowed metric snapshots for learning curves
  • 30 curated datasets (15 classification + 15 regression) spanning real-world and synthetic drift scenarios
  • Parallel execution for large-scale experiments across multiple seeds

Installation

From PyPI

pip install samlb

From source

git clone https://github.com/TechyNilesh/samlb.git
cd samlb
pip install -e ".[dev]"

Optional backends

pip install "samlb[vw]"       # Vowpal Wabbit, for the ChaCha regressor
pip install "samlb[river]"    # River algorithms, via the River adapters
pip install "samlb[capymoa]"  # CapyMOA/MOA algorithms (needs a JVM)

Requirements: Python >= 3.9, a C++ compiler (for the native extension), CMake

Quick Start

Python API

from samlb.benchmark import BenchmarkSuite
from samlb.framework.classification.asml import AutoStreamClassifier
from samlb.framework.classification.eaml import EvolutionaryBaggingClassifier
from samlb.framework.random_search import RandomSearch
from samlb.framework.classification.shared_config import (
    SHARED_PREPROCESSORS, SHARED_CLASSIFIER_INSTANCES,
)

suite = BenchmarkSuite(
    models={
        "ASML":         AutoStreamClassifier(seed=42),
        "EvoAutoML":    EvolutionaryBaggingClassifier(seed=42),
        # RandomSearch baseline over the same shared learner pool
        "RandomSearch": RandomSearch(
            scalers=SHARED_PREPROCESSORS,
            models=SHARED_CLASSIFIER_INSTANCES,
            seed=42,
        ),
    },
    datasets=["electricity", "covertype"],
    task="classification",
    n_runs=10,
    window_size=1000,
)
suite.run()
suite.print_table()
suite.to_csv("results/classification.csv")

RandomSearch is task-agnostic: for regression, pass the regression pool (EAML_REG_PARAM_GRID["Scaler"] / ["Regressor"] from samlb.framework.regression.eaml.config) and set clip=True.

Dataset Streaming

from samlb.datasets import stream, list_datasets

# See all available datasets
print(list_datasets("classification"))
print(list_datasets("regression"))

# Stream instance by instance
for x, y in stream("electricity", task="classification"):
    pred = model.predict_one(x)
    model.learn_one(x, y)

CLI

# Full classification benchmark (5 frameworks x 15 datasets x 10 runs)
python examples/run_benchmark.py

# Custom subset
python examples/run_benchmark.py --n_runs 5 --max_samples 50000 --datasets electricity covertype

# Parallel execution across CPU cores
python examples/run_benchmark.py --n_runs 100 --parallel --cpu_utilization 0.8

# Regression benchmark (4 frameworks x 15 datasets x 10 runs)
python examples/run_regression.py
python examples/run_regression.py --n_runs 5 --datasets bike california_housing

Included Frameworks

Classification

Framework Strategy Key Features
ASML Adaptive Random Drift Nearby Search ADWIN drift detection, recency-weighted ensemble, adaptive budget
AutoClass Genetic Algorithm + Meta-Regressor Fitness-proportionate selection, ARF surrogate for HP mutation
EvoAutoML Evolutionary Bagging Population-based, tournament selection, Poisson(6) sampling
OAML Drift-triggered Random Search EDDM drift detector, warm-up phase, random search

Regression

Framework Strategy Key Features
ASML Adaptive Random Drift Nearby Search Online target normalization (Welford), prediction clipping
ChaCha FLAML AutoVW Vowpal Wabbit online HPO, progressive validation loss
EvoAutoML Evolutionary Bagging Population-based ensemble, mutation-driven search

Baseline (classification & regression)

Baseline Strategy Key Features
RandomSearch Random per-window selection Keeps the full shared learner pool warm, randomly picks one pipeline per exploration window

Model Pool Selection: Normal vs. Ensemble Baselines

Every search framework's candidate pool is swappable between two presets — "normal" (plain single models: Naive Bayes, Perceptron, Hoeffding Tree, ...) and "ensemble" (drift-adaptive ensembles: ARF, SRP, Leveraging Bagging, Hoeffding Adaptive Tree) — via get_classification_config / get_regression_config. This is useful for asking a different question than the usual "does search beat RandomSearch": does search still help once every candidate is already a strong, drift-adaptive baseline on its own?

from samlb.framework import get_classification_config
from samlb.framework.classification.asml      import AutoStreamClassifier
from samlb.framework.classification.autoclass import AutoClass
from samlb.framework.classification.eaml      import EvolutionaryBaggingClassifier
from samlb.framework.classification.oaml      import OAMLClassifier

cfg = get_classification_config(pool="ensemble")   # or pool="normal" (default)

model = AutoStreamClassifier(config_dict=cfg.asml_config_dict(), seed=42)
model = AutoClass(config_dict=cfg.autoclass_config_dict(), seed=42)
model = EvolutionaryBaggingClassifier(param_grid=cfg.eaml_param_grid(), seed=42)
model = OAMLClassifier(scalers=cfg.scalers, classifiers=cfg.classifier_instances, seed=42)

Regression works the same way, over ARFRegressor/SRPRegressor instead:

from samlb.framework import get_regression_config
from samlb.framework.regression.asml import AutoStreamRegressor
from samlb.framework.regression.eaml import EvolutionaryBaggingRegressor

cfg = get_regression_config(pool="ensemble")
model = AutoStreamRegressor(config_dict=cfg.asml_config_dict(), seed=42)
model = EvolutionaryBaggingRegressor(param_grid=cfg.eaml_param_grid(), seed=42)

Both presets live in samlb.framework.classification.shared_config (ClassificationConfig) and samlb.framework.regression.shared_config (RegressionConfig) — pass a custom instance of either dataclass to mix and match your own model pool instead of the two built-in presets.

External Algorithms (River & CapyMOA)

Benchmarks often need to place SAMLB's frameworks next to algorithms from River or CapyMOA. Two adapters make any learner from either library usable as a SAMLB model — same predict_one / learn_one / reset contract, so it drops straight into BenchmarkSuite and is scored by the same prequential evaluator.

Both libraries are optional. Nothing is imported until an adapter is constructed, and is_available() lets a suite skip a backend that is not installed rather than fail.

from river import forest, preprocessing
from samlb.benchmark import BenchmarkSuite
from samlb.framework.adapters import CapyMOAClassifier, RiverClassifier
from samlb.framework.base import ARFClassifier

models = {"SAMLB-ARF": ARFClassifier(n_models=10, seed=42)}

if RiverClassifier.is_available():
    models["River-ARF"] = RiverClassifier(
        preprocessing.StandardScaler() | forest.ARFClassifier(n_models=10, seed=42),
        name="River-ARF",
    )

if CapyMOAClassifier.is_available():
    models["MOA-ARF"] = CapyMOAClassifier(
        "AdaptiveRandomForestClassifier", ensemble_size=10, seed=42, name="MOA-ARF",
    )

BenchmarkSuite(models=models, datasets=["electricity"],
               task="classification", n_runs=10).run()

examples/run_external_baselines.py runs exactly this comparison from the command line, for either task:

python3 examples/run_external_baselines.py --task classification --n_runs 10
python3 examples/run_external_baselines.py --task regression --datasets abalone

River adapters

RiverClassifier / RiverRegressor take a River estimator or a pipeline ending in one. The object you pass is a prototype: it is cloned before every run and never trained in place, so one adapter can be reused across seeds and datasets. Pass a zero-argument callable instead when an estimator cannot be cloned.

from samlb.framework.adapters import RiverRegressor

RiverRegressor(preprocessing.StandardScaler() | linear_model.LinearRegression())
RiverRegressor(lambda: forest.ARFRegressor(seed=1), name="River-ARF")

River classifiers return None until they have seen a label; the evaluator counts those instances but does not score them, exactly as it does for OAML's warm-up.

CapyMOA adapters

CapyMOAClassifier / CapyMOARegressor take a CapyMOA class, or its name in capymoa.classifier / capymoa.regressor, plus any learner keyword arguments. A class rather than an instance, because a CapyMOA learner is bound to a MOA Schema at construction and the schema is not known until the stream starts. The adapter derives it from the first instance, builds the learner then, and converts each {feature: value} dict to the dense array MOA expects.

from samlb.framework.adapters import CapyMOAClassifier, CapyMOARegressor

CapyMOAClassifier("HoeffdingTree", grace_period=50, seed=42)
CapyMOAClassifier("AdaptiveRandomForestClassifier", ensemble_size=10)
CapyMOARegressor("AdaptiveRandomForestRegressor", ensemble_size=10)

MOA works in class indices, so the adapter keeps the label mapping and hands back the original SAMLB labels. Labels are discovered as they arrive, against max_classes reserved nominal slots (100 by default; only MOA's per-class memory scales with it). Pass classes=[...] when the label set is known up front — the schema is then exact and an unexpected label raises instead of being silently absorbed.

C++ Base Algorithms

Every per-instance component is implemented in C++ and exposed through thin Python wrappers:

Classification: Naive Bayes, Perceptron, Logistic Regression, Passive Aggressive, Softmax Regression, KNN, Hoeffding Tree, EFDT, SGT

Ensembles: ARF (Gomes et al. 2017, classification & regression), SRP (Gomes et al. 2019, classification & regression), Leveraging Bagging (Bifet et al. 2010), Hoeffding Adaptive Tree (Bifet & Gavaldà 2009, whole-tree simplification — see HoeffdingAdaptiveTreeClassifier docstring)

Regression: Linear Regression, Bayesian Linear Regression, Passive Aggressive, Hoeffding Tree, KNN

Preprocessing: MinMaxScaler, StandardScaler, MaxAbsScaler, VarianceThreshold, SelectKBest (Pearson)

Metrics: Accuracy, MacroF1, MacroPrecision, MacroRecall, MAE, RMSE, R²

Drift detection: ADWIN, EDDM

Pipelines are fused: scaler | selector | model is executed as a single C++ object, so an instance crosses the Python/C++ boundary once per learn_one / predict_one rather than once per stage.

Evaluation Methodology

SAMLB uses prequential evaluation (test-then-train):

  1. For each instance in the stream:
    • Predict -- get the model's prediction before seeing the label
    • Evaluate -- score the prediction against the true label
    • Learn -- update the model with the labelled instance
  2. Metrics are captured at configurable window intervals for learning curve analysis
  3. Runtime is sampled per-instance for performance profiling

Classification metrics: Accuracy, Macro-F1, Macro-Precision, Macro-Recall

Regression metrics: MAE, RMSE, R^2

Datasets

Classification (15 datasets -- 2.5M+ total instances)

Dataset Samples Features Classes Type Description
adult 48,842 14 4 Real Income prediction (Census)
covertype 100,000 54 7 Real Forest cover type (cartographic)
credit_card 284,807 30 2 Real Credit card fraud detection
electricity 45,312 8 2 Real Electricity price direction (NSW, Australia)
insects 52,848 33 6 Real Insect species with concept drift
new_airlines 539,383 7 2 Real Flight delay prediction
nomao 34,465 118 2 Real Nomao place deduplication
poker_hand 1,025,009 10 10 Real Poker hand classification
shuttle 58,000 9 7 Real NASA Space Shuttle radiator
vehicle_sensIT 98,528 100 3 Real Vehicle type from seismic sensors
movingRBF 200,000 10 5 Synthetic Moving radial basis functions
moving_squares 200,000 2 4 Synthetic Moving class boundaries
sea_high_abrupt_drift 500,000 3 2 Synthetic SEA generator with abrupt drift
synth_RandomRBFDrift 100,000 4 4 Synthetic RBF generator with gradual drift
synth_agrawal 100,000 9 2 Synthetic Agrawal generator

Regression (15 datasets -- 1M+ total instances)

Dataset Samples Features Type Description
ailerons 13,750 40 Real Aircraft control surface deflection
bike 17,379 12 Real Bike sharing hourly demand
california_housing 20,640 8 Real California median house values
cps88wages 28,155 6 Real Wage prediction (CPS 1988)
diamonds 53,940 9 Real Diamond price prediction
elevators 16,599 18 Real Aircraft elevator control
fifa 19,178 28 Real FIFA player overall rating
House8L 22,784 8 Real House price (8-feature variant)
kings_county 21,613 21 Real King County house sales price
MetroTraffic 48,204 7 Real Interstate traffic volume (Minneapolis)
superconductivity 21,263 81 Real Superconductor critical temperature
wave_energy 72,000 48 Real Wave energy converter power output
fried 40,768 10 Synthetic Friedman function
FriedmanGra 100,000 10 Synthetic Friedman with gradual drift
hyperA 500,000 10 Synthetic Hyperplane with drift

Output Formats

results/
  classification/
    summary.json                  # Flat JSON: one row per (framework x dataset x run)
    <dataset>/<framework>/
      run_00.json                 # Raw per-run JSON with full learning curves
      ...
      run_09.json
      aggregate.json              # Aggregated mean +/- std across 10 runs
  regression/
    summary.json
    <dataset>/<framework>/
      run_00.json
      ...
      run_09.json
      aggregate.json

The released repository includes the raw JSON results used for the paper under results/classification/ and results/regression/.

Project Structure

.
├── pyproject.toml             # Package metadata & build config
├── CMakeLists.txt             # C++ build configuration
├── LICENSE                    # MIT License
├── README.md                  # This file
├── CONTRIBUTING.md            # Contributor guide
├── wiki/                      # Wiki page sources (published to the GitHub wiki)
├── scripts/                   # publish_wiki.sh
├── _cpp/                      # C++ source (9 classifiers, 5 regressors)
│   ├── classification/
│   ├── regression/
│   ├── core/                  # Shared headers
│   └── bindings/              # PyBind11 module
├── samlb/                     # Python package
│   ├── __init__.py            # Version: 0.3.0
│   ├── algorithms/            # C++ algorithm Python bindings
│   ├── benchmark/             # BenchmarkSuite orchestrator
│   ├── evaluation/            # PrequentialEvaluator, metrics, results
│   ├── datasets/              # 30 datasets (15 clf + 15 reg NPZ files)
│   └── framework/             # AutoML framework implementations
│       ├── base/              # BaseStreamFramework + C++ wrappers
│       ├── adapters/          # River & CapyMOA adapters (optional backends)
│       ├── random_search.py   # RandomSearch baseline (task-agnostic)
│       ├── classification/    # ASML, AutoClass, EvoAutoML, OAML
│       └── regression/        # ASML, ChaCha, EvoAutoML
├── results/                   # Raw paper results as JSON files
│   ├── classification/        # Classification run_*.json + aggregate.json
│   └── regression/            # Regression run_*.json + aggregate.json
├── tests/                     # Test suite
└── examples/                  # Benchmark runner scripts
    ├── run_benchmark.py       # Classification benchmark CLI
    ├── run_regression.py      # Regression benchmark CLI
    └── run_external_baselines.py  # River / CapyMOA comparison CLI

Documentation

Full usage documentation lives in the SAMLB wiki:

Page What it covers
Installation Install, optional backends, build troubleshooting
Quick Start First benchmark, the model contract, CLI
Benchmark API BenchmarkSuite, evaluator, RunResult, output formats
Datasets The 30 bundled streams, and adding your own
Frameworks The bundled AutoML methods and their configuration
Base Algorithms C++ learners, fused pipelines, metrics, drift detectors
External Algorithms Benchmarking River and CapyMOA learners
Extending SAMLB Writing a framework, adapter, dataset or C++ learner
FAQ Common questions and failure modes

The pages are version-controlled in wiki/ — edit them there and open a PR; ./scripts/publish_wiki.sh pushes them to the wiki.


Contributing

Contributions are welcome — a new streaming AutoML framework, a dataset, an adapter for another library, a bug fix, or a documentation correction.

git clone https://github.com/TechyNilesh/samlb.git
cd samlb
pip install -e ".[dev]"
pytest tests/
ruff check samlb/

Adding a framework means implementing three methods:

from samlb.framework.base import BaseStreamFramework

class MyStreamingAutoML(BaseStreamFramework):
    def predict_one(self, x): ...   # predict BEFORE learning
    def learn_one(self, x, y): ...  # your AutoML logic lives here
    def reset(self): ...            # back to untrained; called before every run

CONTRIBUTING.md has the full walkthrough — development setup, rebuilding the C++ extension, the step-by-step guide to adding a framework, dataset, adapter or C++ learner, and the PR checklist.


Citation

If you use SAMLB in your research, please cite:

@inproceedings{verma2026samlb,
  title     = {SAMLB: A Streaming AutoML Benchmark},
  author    = {Verma, Nilesh and Bifet, Albert and Pfahringer, Bernhard and Bahri, Maroua},
  booktitle = {Proceedings of the International Conference on Automated Machine Learning (AutoML)},
  year      = {2026},
  url       = {https://github.com/TechyNilesh/samlb}
}

License

MIT License. See LICENSE for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

samlb-0.6.0.tar.gz (9.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

samlb-0.6.0-cp312-cp312-win_amd64.whl (394.6 kB view details)

Uploaded CPython 3.12Windows x86-64

samlb-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (467.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

samlb-0.6.0-cp312-cp312-macosx_11_0_arm64.whl (380.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

samlb-0.6.0-cp311-cp311-win_amd64.whl (393.0 kB view details)

Uploaded CPython 3.11Windows x86-64

samlb-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (466.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

samlb-0.6.0-cp311-cp311-macosx_11_0_arm64.whl (378.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

samlb-0.6.0-cp310-cp310-win_amd64.whl (392.1 kB view details)

Uploaded CPython 3.10Windows x86-64

samlb-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (465.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

samlb-0.6.0-cp310-cp310-macosx_11_0_arm64.whl (377.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

samlb-0.6.0-cp39-cp39-win_amd64.whl (392.2 kB view details)

Uploaded CPython 3.9Windows x86-64

samlb-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (465.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

samlb-0.6.0-cp39-cp39-macosx_11_0_arm64.whl (377.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file samlb-0.6.0.tar.gz.

File metadata

  • Download URL: samlb-0.6.0.tar.gz
  • Upload date:
  • Size: 9.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for samlb-0.6.0.tar.gz
Algorithm Hash digest
SHA256 58f7fc6ede2d922629efd97bfaa8177776fbdb96dcfcb0a95b87bbd4b4d3f453
MD5 d418ada9eabc8d55d814930312b3b9af
BLAKE2b-256 6472812fa3aa2844082301c40208f9dc54405723ebadfbcee04f3cf6be0148ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0.tar.gz:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: samlb-0.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 394.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for samlb-0.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 96bf38f407fc0272141a0c7c4ba802dae0218ac39151dc0a6cd62eba5ee774bf
MD5 acc2dadf59b064073e86eb6f8f5ed9cb
BLAKE2b-256 2ef7f7fb2dc6bea5b9645d6ae04e92a6158caee7a7ec092729944b055ab0c10f

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for samlb-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 784134c97242917d24f75d38c7e290613dd503dca1b5183437017358dc44e9fa
MD5 0c7bb1e0788403493d47b6783fefc065
BLAKE2b-256 82d55ec24740c2e96e73b87b72f3077f4def8a247c9c316a258b896201f473cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for samlb-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 554f9ce5d75cd547738f1e6aff2fc9daaf7b55bb842a1ebed50c8f5f45434e9e
MD5 01a682ea0ae492ee1367e0fa7b8fde6d
BLAKE2b-256 1ee987e3f541fb6c0baba10140eb0275143fe578010d84dea94e28cbc66155b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: samlb-0.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 393.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for samlb-0.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0b81c8cb16fef2f5c83bcd8ad51b961e88e0429b4eda01ffd71c5743e5d941a9
MD5 11c8e068104829d6cfc8f08580ed9d8a
BLAKE2b-256 964a96781b8f04be9da90d211ce5273f8204ea2c6b3d0330ade83c49f35ac3a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for samlb-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d633417ed5d2b8aa2b523ca63cdadba4f1d0201b2afe865cfd2ef6bbff2f838a
MD5 a6b83896cb7b59a632488ab303a477cf
BLAKE2b-256 6422296430f376c58991edc6ab2e2674b76384230c81e1b06917ebb8e5487c26

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for samlb-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb2350b8ddfa8a9b94c9eb319ee14e8a7e97e3af384e9353fa7293c668df50ba
MD5 ba34043e251f6b786f0e4fd784dd8356
BLAKE2b-256 5f0b35dc244f7bce99337b091d67e22d1aa13d35b155920c8a4dc006f970ad3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: samlb-0.6.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 392.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for samlb-0.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9dd6de3c7621646cc3d4754a4da94b7cdb2d1afce997a5b51ded7f557775ffef
MD5 e04b3eef4ca7b814bcc814bd8ac4c356
BLAKE2b-256 59bb703cc52a68757f2fc40a1b2f1dffe21be9612e0a05960a0638bfad3058b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for samlb-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0644748bb9a486ccae589551495107f663a29022fc6e9c45684bee7634d79680
MD5 d8d53e2f7209dbb1daa33eb3cd6239a0
BLAKE2b-256 1231e9b1b2b54fcdfc6324a20e4d29d313e091cf44181c6018fdfe4dd7884f2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for samlb-0.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e96fe0514afe71255472310cbb7e90aae65dfee5aacee57f8a1eaab76219b996
MD5 4f258b401b54d0c99680711470b0adcb
BLAKE2b-256 383054c4791b4d2ad092829efab5a0b8594ea8798e2291cef606faa2060032ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: samlb-0.6.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 392.2 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for samlb-0.6.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 18e44cec10b76eae8aa0bf318331828d7d730f88f3223757ca2150a6bfac31a7
MD5 3b54ab6dd2c4af5e1746bd2253f050fe
BLAKE2b-256 067d96acac4fea4351285a53516a03e51b326aaa0f1c884d97cbb527a92bb732

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp39-cp39-win_amd64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for samlb-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 92e1d81f00cc679618f77a4a4dfc3ea6861f17f74ea09ceb73c188b15843b3fb
MD5 b76d0ece18660576136d926c808ca74d
BLAKE2b-256 2dfc403deea041052893f5a78b40888e952a349b7c0517f4f1120a7332dc0196

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file samlb-0.6.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: samlb-0.6.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 377.7 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for samlb-0.6.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d91305197cc4387dff1ac1468050de8f14a45f8b7561a6727808109911b6a502
MD5 14d56500c6239b5e5cd1c9d18f7bbc9f
BLAKE2b-256 f99c599f188a4cc2923da8519265be04948ef4f702c71ac5907f3ecb1eb35f7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.6.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on TechyNilesh/samlb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.6.0 This release

13 files

0.5.0

13 files

0.4.0

13 files

0.3.0

13 files

0.2.0

13 files

0.1.0

2 files

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