Skip to main content

Shinrin

shinrin

PyPI - Version License: MIT

Shinrin (森林, "forest" in Japanese) is a scikit-learn-compatible library for decision tree and forest models and tabular neural networks, with Rust and Mojo bindings for performance and ONNX export support.

Since skope-rules and scikit-garden are no longer actively maintained, this project aims to bring them together with extensions for tree models — including SHAP explanations, ONNX export, and benchmarking utilities.

Shinrin also includes TabM — a parameter-efficient ensemble MLP for tabular data (ICLR 2025) that trains an ensemble of k members jointly through BatchEnsemble-style multiplicative adapters, matching ensemble accuracy at a fraction of the training cost. Training runs entirely on NumPy or Mojo kernels — PyTorch is not required.

Features

  • Mondrian Trees & Forests — Full scikit-learn API compatibility
  • CORELS Optimal Rule Lists — Certifiably optimal rule lists for binary data (CorelsClassifier), vendored from pycorels with bundled mini-GMP (no system dependency)
  • GOSDT Optimal Sparse Decision Trees — Globally optimized sparse decision trees with reference-ensemble guesses (GOSDTClassifier, ThresholdGuessBinarizer), vendored from gosdt-guesses; runs single-threaded with no TBB/GMP system dependencies
  • Tabular Neural Networks — scikit-learn compatible MLPClassifier/MLPRegressor and TabMClassifier/TabMRegressor with optional PLE embeddings and Mojo-accelerated training
  • TabM Neural Networks — Parameter-efficient ensemble MLPs for tabular data with BatchEnsemble-style multiplicative adapters (ICLR 2025)
  • TabICL — Tabular in-context learning foundation model (torch/NumPy/Mojo backends)
  • TreeSHAP Explanations — TreeExplainer for single trees and forests with explanation() visualization helper
  • ONNX Export — Export trained trees, forests, and TabM models to ONNX format for deployment
  • Benchmarking — Built-in utilities for training speed, prediction speed, and model size
  • Rust & Mojo Bindings — Performance-critical code in Rust via PyO3 and Mojo kernels

Quick Start

Tree Models

from shinrin import MondrianTreeRegressor, MondrianForestClassifier
from shinrin import TreeExplainer, explanation

# Train a model
X, y = ...
tree = MondrianTreeRegressor(max_depth=8, random_state=0)
tree.fit(X, y)
predictions = tree.predict(X)

# Get SHAP explanations
explainer = TreeExplainer(tree)
shap_values = explainer.shap_values(X)
# Or use the convenience function:
# explanation(tree, X)  # opens matplotlib visualization

TabM Neural Networks

from shinrin import TabMClassifier, TabMRegressor

# Train a TabM model
model = TabMRegressor(
    hidden_layer_sizes=(256,),
    k=32,               # ensemble size
    random_state=0,
)
model.fit(X, y)
predictions = model.predict(X)

# Classification
clf = TabMClassifier(k=32, max_iter=200)
clf.fit(X, y)

CORELS Optimal Rule Lists

from shinrin import CorelsClassifier

# Binary features, binary classification — provably optimal rule list
clf = CorelsClassifier(c=0.01, verbosity=["rulelist"])
clf.fit(X, y, features=["feature1", "feature2"])
print(clf.rl())          # human-readable optimal rule list
predictions = clf.predict(X)

GOSDT Optimal Sparse Decision Trees

from shinrin import GOSDTClassifier, ThresholdGuessBinarizer

# Binarize continuous features via gradient-boosting threshold guesses
X_bin = ThresholdGuessBinarizer().fit_transform(X, y)

# Optionally guide the search with a blackbox reference ensemble
clf = GOSDTClassifier(regularization=0.05, depth_budget=4)
clf.fit(X_bin, y)                      # or: clf.fit(X_bin, y, y_ref=y_ref)
print(str(clf.trees_[0]))              # globally optimal tree
accuracy = clf.score(X_bin, y)

Native Backends

Both Mondrian trees and TabM support interchangeable native backends:

  • Rust (default) — PyO3/maturin extension for tree models
  • Mojo — Experimental Mojo port for TabM training kernels

Select the backend with environment variables:

SHINRIN_BACKEND=mojo python your_script.py          # TabM Mojo backend
SHINRIN_TABM_BACKEND=mojo python your_script.py     # TabM-specific backend

Benchmarks

See scripts/benchmarks/BENCHMARK.md for detailed benchmark results comparing Shinrin against LightGBM and scikit-learn SGD.

See scripts/benchmarks/TABM_BENCHMARK.md for TabM backend comparisons (NumPy vs Mojo vs PyTorch).

See scripts/benchmarks/GOSDT_BENCHMARK.md for GOSDT vs scikit-learn CART comparisons (just bench-gosdt).

To run benchmarks yourself: python scripts/benchmarks/bench_baselines.py (or just bench-backends for Rust vs Mojo backend comparisons, just bench-tabm for TabM backends).

Installation

pip install shinrin

Optional dependencies:

pip install shinrin[sklearn]   # scikit-learn for benchmarks and SHAP plotting
pip install shinrin[onnx]      # ONNX export
pip install shinrin[mojo]      # TabM Mojo kernels (`just build-tabm-mojo`)
pip install shinrin[full]      # All optional dependencies

Native backends

The tree/forest internals ship with two interchangeable native backends:

  • rust (default) – the original pyo3/maturin extension (shinrin._native)
  • mojo – an experimental Mojo port (shinrin._native_mojo)

Select the backend with the SHINRIN_BACKEND environment variable:

SHINRIN_BACKEND=mojo python your_script.py

The default remains rust; the Mojo backend is opt-in while Mojo is in alpha. Both backends produce identical trees for identical random states (verified by tests/test_mojo_parity.py). Build the Mojo extension with just build-mojo (requires the mojo package, e.g. pip install 'shinrin[mojo]').

API Overview

Models

Tree Models

Model Description
MondrianTreeRegressor Single Mondrian tree for regression
MondrianTreeClassifier Single Mondrian tree for classification
MondrianForestRegressor Ensemble of Mondrian trees for regression
MondrianForestClassifier Ensemble of Mondrian trees for classification
TabMClassifier / TabMRegressor Ensemble MLP trainers (NumPy / Mojo backends)
TabICLClassifier / TabICLRegressor Tabular in-context learning estimators (TabICLv2)

TabM Neural Networks

Model Description
TabMRegressor TabM ensemble regressor (drop-in for MLPRegressor)
TabMClassifier TabM ensemble classifier (drop-in for MLPClassifier)

TabM parameters:

Parameter Default Description
hidden_layer_sizes (256,) Backbone block widths
k 32 Number of ensemble members
solver 'adam' 'adam', 'sgd', or 'lbfgs'
arch_type 'tabm' 'tabm', 'tabm-mini', or 'tabm-packed'
dropout 0.1 Backbone dropout rate
use_embeddings True Piecewise-linear + linear embeddings for numeric features
n_bins 64 Quantile bins per numeric feature
d_embedding 8 Embedding width per numeric feature
categorical_indices None Columns to treat as categorical
categorical_cardinality_threshold 32 Max unique values for auto-detecting categoricals

Explanations (Tree Models)

from shinrin import TreeExplainer, explanation

explainer = TreeExplainer(model)
shap_values = explainer.shap_values(X)
expected_value = explainer.expected_value

# Quick visualization (requires matplotlib)
explanation(model, X)

ONNX Export

from shinrin.onnx import to_onnx, save_onnx

# Export to ONNX protobuf
onnx_model = to_onnx(model, X)

# Save to file
save_onnx(model, "model.onnx", X)

Works for tree/forest models and TabM. TabM exports a self-contained graph (preprocessing, embeddings, ensemble backbone, averaged head) that runs on raw feature vectors with any batch size:

import onnxruntime as ort
from shinrin import TabMRegressor
from shinrin.onnx import save_onnx

model = TabMRegressor(hidden_layer_sizes=(256,), k=32, random_state=0)
model.fit(X_train, y_train)
save_onnx(model, "tabm.onnx", X_train)

session = ort.InferenceSession("tabm.onnx")
predictions = session.run(None, {"X": X_test.astype(np.float32)})[0]

Benchmarking

from shinrin.benchmark import (
    benchmark_training,
    benchmark_prediction,
    benchmark_model_size,
    full_benchmark,
    print_benchmark_report,
)

models = {
    "shinrin_tree": MondrianTreeRegressor(max_depth=8),
    "shinrin_forest": MondrianForestRegressor(n_estimators=10, max_depth=8),
    "shinrin_tabm": TabMRegressor(hidden_layer_sizes=(256,), k=32),
}

results = full_benchmark(models, X_train, y_train, X_test)
print_benchmark_report(results)

Test Coverage

All vendored tests are included and passing — these are ported from scikit-garden and skope-rules to verify compatibility. Run pytest --cov=src/shinrin tests/ for a full coverage report.

TabM parity tests (tests/test_tabm_parity.py) verify that the Mojo kernels produce identical results to the NumPy reference implementation. TabM functional tests (tests/test_tabm.py) cover training, prediction, and determinism. TabM ONNX export tests (tests/test_tabm_onnx.py) verify onnxruntime inference parity for all architectures, tasks, and preprocessing configurations.

License

MIT

Metadata

Release files for shinrin 0.2.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 shinrin 0.2.0
File Actions
shinrin-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details for shinrin-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
shinrin-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ ARM64 Details for shinrin-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
shinrin-0.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details for shinrin-0.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
shinrin-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details for shinrin-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
shinrin-0.2.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for shinrin-0.2.0-cp314-cp314-win_amd64.whl
shinrin-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details for shinrin-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
shinrin-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details for shinrin-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
shinrin-0.2.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for shinrin-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
shinrin-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details for shinrin-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl
shinrin-0.2.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for shinrin-0.2.0-cp313-cp313-win_amd64.whl
shinrin-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details for shinrin-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
shinrin-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details for shinrin-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
shinrin-0.2.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for shinrin-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
shinrin-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details for shinrin-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
shinrin-0.2.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for shinrin-0.2.0-cp312-cp312-win_amd64.whl
shinrin-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details for shinrin-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
shinrin-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details for shinrin-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
shinrin-0.2.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for shinrin-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
shinrin-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details for shinrin-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
shinrin-0.2.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for shinrin-0.2.0-cp311-cp311-win_amd64.whl
shinrin-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for shinrin-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
shinrin-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details for shinrin-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
shinrin-0.2.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for shinrin-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
shinrin-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details for shinrin-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
shinrin-0.2.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for shinrin-0.2.0-cp310-cp310-win_amd64.whl
shinrin-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for shinrin-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
shinrin-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details for shinrin-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Total release size: 29.0 MB

Release files / shinrin-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL shinrin-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.1 MB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
4311451f50099739056beddfc88bafcdcb3f13eba63f159d37c776258717ab71
BLAKE2b-256 checksum
How to use checksums
1076a00661600a2286a71f2066b3cf41ccff213ddfbfe163438b654934cef576
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL shinrin-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.1 MB
Tags Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
2f55010fc032286e84cbaa38b95f075103080b06f7e952ee2e311c2b73786e09
BLAKE2b-256 checksum
How to use checksums
1275c2ab7bf7cdec63152110f29b8c75f12c36c3fe93887d9267fcb854eae65f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL shinrin-0.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6974c75d44327bb41d60f37e3b39b474d62e6e8e04bcc45b7131abd3fb2fa350
BLAKE2b-256 checksum
How to use checksums
8dc6ad3124d7145606b0f5631727e346a932e95f676fa25e98d5b8100740312a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL shinrin-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
73dc8f60789abae77221bed5d6926f2d42f72a51cb3868466fa438d398b6482a
BLAKE2b-256 checksum
How to use checksums
068bbc7524eb68ab2ba9139e21b91f90155e9293b4451c5c076590f23fa89d58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp314-cp314-win_amd64.whl

Download URL shinrin-0.2.0-cp314-cp314-win_amd64.whl
Size 960.1 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
f9d5a4ffefa098420c25746dab06effbae94a4df957f881dc4a48a203cd49481
BLAKE2b-256 checksum
How to use checksums
a8af617cdddb274bbb7a90e3c7c7894653f4d6a021da6c47f29cd01c0b0e6250
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL shinrin-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.1 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b23925cb92bfa1aca1f200f5b59af700ad3ed572e39eb06f88c2f5fbf95f0398
BLAKE2b-256 checksum
How to use checksums
3d1460e0426b98067d08cae9cd4f62fc663cad04458f7f1f4c48f0f26b69aa5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL shinrin-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.1 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
f2bd3284918c92973069ac9ab5550d5274cd97e2ba92b7066c42c8966506b5f9
BLAKE2b-256 checksum
How to use checksums
f5b60b28e980c9e2b6d42fe739b4f3aa4d807b7781c2ddd4771d110ad4ff4145
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL shinrin-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c17178fa2d6308c46c92d250b6d914367b0d9d0e66207691323e299568ea3f2a
BLAKE2b-256 checksum
How to use checksums
331ac07a52452d90f57a2c15dba287443948a70455421dd09490a4ef887e5401
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl

Download URL shinrin-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl
Size 1.1 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
8df078c5f6167ac3f50f1cb657080dd4e5946c6f25410912d0b72999e87f25f7
BLAKE2b-256 checksum
How to use checksums
656b2f29315c16e8a9b08e762464658277f041eafc65158db37e8cd9cba3105d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp313-cp313-win_amd64.whl

Download URL shinrin-0.2.0-cp313-cp313-win_amd64.whl
Size 960.1 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
5ec0b3cbef8ca5e7bb06d68b71dde9d74348bd06063ea916590ba47e96150b30
BLAKE2b-256 checksum
How to use checksums
9d0a22277a95a811372ce7db1326af12acc0705ceb90f1f856ae66830ca6cd7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL shinrin-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.1 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
030d1474a1c56ced8e4870a94b8197e0e16c8c68b6d1e41bdfbfec9d155a972a
BLAKE2b-256 checksum
How to use checksums
fb4e2b12616b86560832cd74b4e2a794825510d41ed66c044810a4b7bd506f47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL shinrin-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.1 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
f37f4588e4982fed4823118e37a4d5aede4b9f53a6603e110137319326fb8e3a
BLAKE2b-256 checksum
How to use checksums
494a7c1002e9cbe7e118684dd5935066dd08c9cee6cdb81f909c3bb524a0049d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL shinrin-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ab536c60cf177d31dcce407bfc67cf4e988afe6e125fd1ef5e4e17c9c236a704
BLAKE2b-256 checksum
How to use checksums
eb33d2d69fc92ef97a66ad2c3dc9b63442e6dc46a6c101d9f7206926beeb750c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL shinrin-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 1.1 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ce47232954ee204202b89bc297366ce0d8f7effab92a265f976acf886de7a0c7
BLAKE2b-256 checksum
How to use checksums
f24853ca10cd571faa89cf7416f0e9a799c0142cb9880647a89bdefc91e61a3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp312-cp312-win_amd64.whl

Download URL shinrin-0.2.0-cp312-cp312-win_amd64.whl
Size 960.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
608634419e4a978dcbc7630d2d7458348bc6fa6623745053689efb7b0620e72e
BLAKE2b-256 checksum
How to use checksums
6c9311851c60dc97be6b9a988a5aaabbb689c0d7a1817459c28fa25bfa1c665c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL shinrin-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.1 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
fdd1c89a0ee5cffde8c9ff8a491d5bfda9adf3ba3762677ad1268947d40bf1ca
BLAKE2b-256 checksum
How to use checksums
272a1ae9bb0329eee91a1207434bceb9c4df38f089b2cc0011711edfa58d4cef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL shinrin-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.1 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d21fa3107ff5e89aac402204faeaf6ed63e86183a272cf62fb75fa9285393f2e
BLAKE2b-256 checksum
How to use checksums
5b26261296aa074c8971404ec06d3b434edc35635829ffff626bee937c0d730f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL shinrin-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
40ea91f1da3f398166f559508f694e5088392d14072c512534c9ee194a46982f
BLAKE2b-256 checksum
How to use checksums
83fe67ca5c631fd057886acdd62ecd100b9d2c8b2c8047d9a0b66a4d42b439a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL shinrin-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 1.1 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ce0409cfd4fb6a9a2c465f61b323367bee6384f944617488eee0a50040d86ad3
BLAKE2b-256 checksum
How to use checksums
3d70fa4368e441b529490d14b5667a538810fdc5e7216127a709deaf77e0bbd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp311-cp311-win_amd64.whl

Download URL shinrin-0.2.0-cp311-cp311-win_amd64.whl
Size 959.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
bf7536d623acbabb616b94215e482c5a34a1f74f771d46804a4f09049ed6fa92
BLAKE2b-256 checksum
How to use checksums
4376126044af97c8bebd0ce79555c2316e7c615bf76cadf55a9d8d71e0bf999b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL shinrin-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.1 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1c895f93e663c5efdec8d52528a28a49273fa536c762c53e6c91d59dfe973e81
BLAKE2b-256 checksum
How to use checksums
2b5a10a0cdc8f7b73c018c6b1fe9e53c4e98da7b14b5860b607a1824c1b13063
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL shinrin-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.1 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
dfeef00f9bd2ab68dd2f6d9711bd193beee6dfedf139526df40116899d052068
BLAKE2b-256 checksum
How to use checksums
431d796cd00fbdb258bb8bc304f6da95d03d7558b38aa035e788ae8c7ba5086f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL shinrin-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c2e06a15cca3ad4e493b7b41f27c32bac2d439c6cfe89b6fabe06099e1c18dc7
BLAKE2b-256 checksum
How to use checksums
f63b27baf78cc0d8ce3f162bc3433f426f5506c352ac468b15177b675d4ee61b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL shinrin-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 1.1 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d05c175bcd8db26389e891b2ad62b104b77f172af87db71ae17349201a03aee4
BLAKE2b-256 checksum
How to use checksums
590a8c54d9c57f03afa602422af608595954af9c836ac8eea1242d07089ef781
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp310-cp310-win_amd64.whl

Download URL shinrin-0.2.0-cp310-cp310-win_amd64.whl
Size 959.6 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
a6be5ae33daf6b6914881860a4ae5808a903e7b6d29462f63c5b2c235ae0970c
BLAKE2b-256 checksum
How to use checksums
4603563a152aab2a019988a47b6768b7955698183e6b375991f966cccbc436b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL shinrin-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.1 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9fe23b9b3087a296e0b4728f388ba9792b81ce25ea058e68864004ced9da4506
BLAKE2b-256 checksum
How to use checksums
a200e46b279d6b53bb6a335bb64fe34bdd59b425a8877589afdc68a663d27ee5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / shinrin-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL shinrin-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.1 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
71ccfe8af7f6bbedf9d1736a0f1858da291d8338fadb9660c8643d03e48aa104
BLAKE2b-256 checksum
How to use checksums
c916274f4d83917dd096ac56c9f9dfcdeded3e1c991885de3f14c328dbb2b263
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Security for shinrin 0.2.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.

Full provenance

All 27 files in this release have been uploaded with provenance metadata.

Select from 27 files

Attestation for shinrin-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

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.

Release history Release notifications | RSS feed

This release

0.2.0 This release

27 release files Full provenance

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