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

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)

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.4.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.4.0-cp312-cp312-win_amd64.whl (335.5 kB view details)

Uploaded CPython 3.12Windows x86-64

samlb-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (394.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

samlb-0.4.0-cp312-cp312-macosx_11_0_arm64.whl (318.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

samlb-0.4.0-cp311-cp311-win_amd64.whl (334.1 kB view details)

Uploaded CPython 3.11Windows x86-64

samlb-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (394.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

samlb-0.4.0-cp311-cp311-macosx_11_0_arm64.whl (316.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

samlb-0.4.0-cp310-cp310-win_amd64.whl (332.9 kB view details)

Uploaded CPython 3.10Windows x86-64

samlb-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (392.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

samlb-0.4.0-cp310-cp310-macosx_11_0_arm64.whl (315.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

samlb-0.4.0-cp39-cp39-win_amd64.whl (333.1 kB view details)

Uploaded CPython 3.9Windows x86-64

samlb-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (393.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

samlb-0.4.0-cp39-cp39-macosx_11_0_arm64.whl (315.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: samlb-0.4.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.4.0.tar.gz
Algorithm Hash digest
SHA256 6bd06f1731d4e4eafb41fd24a7efba858e290ce5d1a42b635152b5e05dd4d43e
MD5 a8c90c92c9d8593bf2bbafed467f6a8a
BLAKE2b-256 0e472af09803446235ff4986eae97cd7d583571cff3157c2bbe025013933bf89

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: samlb-0.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 335.5 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.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a2618242aea077d88eae16b9e2eddbf5a7bc2426badb2a594088c6683eea64ec
MD5 fae56ce79663b2d09028251599316663
BLAKE2b-256 cd745a2945f7e4cccab9a14413fe8e746a7a9364d4297a310f0e2b4d13c13380

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for samlb-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3958962c102f42e44a36ad6b62856ed557c8f58f1f788cfc0069f972666ef7d7
MD5 e3f4cb475ce83ffff4876da6c4e37a78
BLAKE2b-256 6670f1b94de2f8e8bf7164aba210eaa487fbbc573532a35716a8701b63b8a733

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for samlb-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e3f800c742292fa0532ebd51099d6c11f6263f87f5cb112af6fc8ffe37e0e0a7
MD5 6e9c55d61abc3fcf4e2f720bb0d25431
BLAKE2b-256 21148ac76f499a5077006d2344ba54b1292c9704e6c12d21af638b767814fbc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: samlb-0.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 334.1 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.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f1549eaf2ad0a6e76f2d0f34a51fd0d9d8a694f5c23b301c65708af2586bbb9e
MD5 33880bdce8a975dc4fb7d145df7a4c98
BLAKE2b-256 9478f6147986cdeaab27da11bbc5d217b6fcb4951727b623541d671794540b78

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for samlb-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7663fd668868742602dd864a6c32ddbc81c72fc1172b7daf9ee7f0866b3437d
MD5 590f36acbcbebf527d09bd799887900e
BLAKE2b-256 ba62ab6cfcc18c2259cfca55197747053788ef3535532c12e7ee8bc27653af7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for samlb-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d5634f087dd08164927c2d58fd289f54268bd3e1df276faaa56dadcd5cd689d
MD5 1b843497a0cf6d9ee9413b92786ab925
BLAKE2b-256 29e33d0ef1c037e8f514b13f9391d5ed593df1d2cda9b1f8c53a48c6cb2c10b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: samlb-0.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 332.9 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.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1bdbcd4acc219258b7d0895dea6f0c0db25d776d243a2d317b14295c3c917afe
MD5 ce2a48da031d7a93d6e1fed8a65e1967
BLAKE2b-256 ff7f35eac170442a212d71fd8b268e5d9777befabe97158c6c3475d855d4f804

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for samlb-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8ec6818c85b5f24ea3d6265ec48cde5108796ee58bf34d756c8fd9d6285284e
MD5 472ee425189e4ef3e6499ecc7aa19795
BLAKE2b-256 40c4c7a6e461229d03a086839367ded9e1186cf6ac7cfef284386f19a9b387ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for samlb-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1fb5b14c3f5370c39a210430f311bfe4f252d0c88ead29fe3a86a1f21b3f143c
MD5 eaf2f30f559c46b6321025007d91101b
BLAKE2b-256 614b7ece8ad589cc8b3043c986775c895bb4d691fa9d058679d293daf73970db

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: samlb-0.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 333.1 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.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1cf332ecb317d220578e6d61e5a9b46f9d8354526032d0204b7c3d24ffe1618c
MD5 2fbefb4fbdcf2e03f4e70512cad6082d
BLAKE2b-256 93e3805da381cc3ffa31a73a8d2249055040ec59408a5db99793304e48294724

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for samlb-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81e280adbac52706cdffe92285133df6ac3423ad4f665bda68a52bcb6ea63251
MD5 6c1016804fdedb0eb63022e14cd74d6a
BLAKE2b-256 62692efa53196c75b844b025014fd5a0644262ddd9c09b71209d985193b8d274

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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.4.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: samlb-0.4.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 315.4 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.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d677ddc86521ed1389d8b53a906b1e379258951e15e9aa2271def3f348ae4b60
MD5 9fb95a0669bebd00e0a7c5b0c13e4965
BLAKE2b-256 d6ee29fec9d68e6b05918e5fd2e5a23823eb2a12b5e4dc102d5df4d247225d84

See more details on using hashes here.

Provenance

The following attestation bundles were made for samlb-0.4.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

0.6.0

13 files

0.5.0

13 files

This release

0.4.0 This release

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