Fast Generalized Linear Models with a Rust backend - statsmodels compatible
Project description
RustyStats 🦀📊
High-performance Generalized Linear Models with a Rust backend and Python API
Codebase Documentation: pricingfrontier.github.io/rustystats/
Features
- Dict-First API - Programmatic model building ideal for automated workflows and agents
- Fast - Parallel Rust backend for high-throughput fitting
- Memory Efficient - Low memory footprint at scale
- Stable - Step-halving IRLS, warm starts for robust convergence
- Splines - B-splines and natural splines with auto-tuned smoothing and monotonicity
- Target Encoding - Ordered target encoding for high-cardinality categoricals
- Regularisation - Ridge, Lasso, and Elastic Net via coordinate descent
- Lasso Credibility - Shrink toward a prior model instead of zero (CAS Monograph 13)
- Validation - Design matrix checks with fix suggestions before fitting
- Complete - 8 families, robust SEs, full diagnostics, VIF, partial dependence
- Minimal - Only
numpyandpolarsrequired
Installation
uv add rustystats
Quick Start
import rustystats as rs
import polars as pl
# Load data
data = pl.read_parquet("insurance.parquet")
# Fit a Poisson GLM for claim frequency
result = rs.glm_dict(
response="ClaimCount",
terms={
"VehAge": {"type": "linear"},
"VehPower": {"type": "linear"},
"Area": {"type": "categorical"},
"Region": {"type": "categorical"},
},
data=data,
family="poisson",
offset="Exposure",
).fit()
# View results
print(result.summary())
Families & Links
| Family | Default Link | Use Case |
|---|---|---|
gaussian |
identity | Linear regression |
poisson |
log | Claim frequency |
binomial |
logit | Binary outcomes |
gamma |
log | Claim severity |
tweedie |
log | Pure premium (var_power=1.5) |
quasipoisson |
log | Overdispersed counts |
quasibinomial |
logit | Overdispersed binary |
negbinomial |
log | Overdispersed counts (proper distribution) |
Dict-Based API
API built for programmatic model building.
result = rs.glm_dict(
response="ClaimCount",
terms={
"VehAge": {"type": "bs", "monotonicity": "increasing"}, # Monotonic (auto-tuned)
"DrivAge": {"type": "bs"}, # Penalized smooth (default)
"Income": {"type": "bs", "df": 5}, # Fixed 5 df
"BonusMalus": {"type": "linear", "monotonicity": "increasing"}, # Constrained coefficient
"Region": {"type": "categorical"},
"Brand": {"type": "target_encoding"},
"Age2": {"type": "expression", "expr": "DrivAge**2"},
},
interactions=[
{
"VehAge": {"type": "linear"},
"Region": {"type": "categorical"},
"include_main": True
},
],
data=data,
family="poisson",
offset="Exposure",
seed=42,
).fit(regularization="elastic_net")
Term Types
| Type | Parameters | Description |
|---|---|---|
linear |
monotonicity (optional) |
Raw continuous variable |
categorical |
levels (optional) |
Dummy encoding |
bs |
df or k, degree=3, monotonicity |
B-spline (default: penalized smooth, k=10) |
ns |
df or k |
Natural spline (default: penalized smooth, k=10) |
target_encoding |
prior_weight=1 |
Regularized target encoding |
expression |
expr, monotonicity (optional) |
Arbitrary expression (like I()) |
Interactions
Each interaction is a dict with variable specs. Use include_main to also add main effects.
interactions=[
# Standard interaction: product terms (main effects + interaction)
{
"DrivAge": {"type": "bs", "df": 5},
"Brand": {"type": "target_encoding"},
"include_main": True
},
# Categorical × continuous (interaction only)
{
"VehAge": {"type": "linear"},
"Region": {"type": "categorical"},
"include_main": False
},
# TE interaction: combined target encoding TE(Brand:Region)
{
"Brand": {"type": "categorical"},
"Region": {"type": "categorical"},
"target_encoding": True,
"prior_weight": 1.0, # optional
},
# FE interaction: combined frequency encoding FE(Brand:Region)
{
"Brand": {"type": "categorical"},
"Region": {"type": "categorical"},
"frequency_encoding": True,
},
]
| Flag | Effect |
|---|---|
| (none) | Standard product terms (cat×cat, cat×cont, etc.) |
target_encoding: True |
Combined TE encoding: TE(var1:var2) |
frequency_encoding: True |
Combined FE encoding: FE(var1:var2) |
Splines
# Default: penalized smooth with automatic tuning via GCV
result = rs.glm_dict(
response="ClaimNb",
terms={
"Age": {"type": "bs"}, # B-spline (auto-tuned)
"VehPower": {"type": "ns"}, # Natural spline (auto-tuned)
"Region": {"type": "categorical"},
},
data=data, family="poisson", offset="Exposure",
).fit()
# Fixed degrees of freedom (no penalty)
result = rs.glm_dict(
response="ClaimNb",
terms={
"Age": {"type": "bs", "df": 5}, # Fixed 5 df
"VehPower": {"type": "ns", "df": 4}, # Fixed 4 df
"Region": {"type": "categorical"},
},
data=data, family="poisson", offset="Exposure",
).fit()
Spline parameters:
- No parameters → penalized smooth with automatic tuning (k=10)
df=5→ fixed 5 degrees of freedomk=15→ penalized smooth with 15 basis functionsmonotonicity="increasing"or"decreasing"→ constrained effect (bs only)
When to use each type:
- B-splines (
bs): Standard choice, more flexible at boundaries, supports monotonicity - Natural splines (
ns): Better extrapolation, linear beyond boundaries
Monotonic Splines
Constrain the fitted curve to be monotonically increasing or decreasing. Essential when business logic dictates a monotonic relationship.
# Monotonically increasing effect (e.g., age → risk)
result = rs.glm_dict(
response="ClaimNb",
terms={
"Age": {"type": "bs", "monotonicity": "increasing"},
"Region": {"type": "categorical"},
},
data=data, family="poisson", offset="Exposure",
).fit()
# Monotonically decreasing effect (e.g., vehicle value with age)
result = rs.glm_dict(
response="ClaimAmt",
terms={"VehAge": {"type": "bs", "df": 4, "monotonicity": "decreasing"}},
data=data, family="gamma",
).fit()
Coefficient Constraints
Constrain coefficient signs using monotonicity on linear and expression terms.
result = rs.glm_dict(
response="y",
terms={
"age": {"type": "linear", "monotonicity": "increasing"}, # β ≥ 0
"age2": {"type": "expression", "expr": "age ** 2", "monotonicity": "decreasing"}, # β ≤ 0
"income": {"type": "linear"},
},
data=data, family="poisson",
).fit()
| Constraint | Term Spec | Effect |
|---|---|---|
| β ≥ 0 | "monotonicity": "increasing" |
Positive effect |
| β ≤ 0 | "monotonicity": "decreasing" |
Negative effect |
Target Encoding
Ordered target encoding for high-cardinality categoricals.
# Dict API
result = rs.glm_dict(
response="ClaimNb",
terms={
"Brand": {"type": "target_encoding"},
"Model": {"type": "target_encoding", "prior_weight": 2.0},
"Age": {"type": "linear"},
"Region": {"type": "categorical"},
},
data=data, family="poisson", offset="Exposure",
).fit()
# Sklearn-style API
encoder = rs.TargetEncoder(prior_weight=1.0, n_permutations=4)
train_encoded = encoder.fit_transform(train_categories, train_target)
test_encoded = encoder.transform(test_categories)
Key benefits:
- No target leakage: Ordered target statistics
- Regularization: Prior weight controls shrinkage toward global mean
- High-cardinality: Single column instead of thousands of dummies
- Exposure-aware: For frequency models with
offset="Exposure", automatically uses claim rate (ClaimCount/Exposure) instead of raw counts - Interactions: Use
target_encoding: Truein interactions to encode variable combinations
Expression Terms
result = rs.glm_dict(
response="y",
terms={
"age": {"type": "linear"},
"age2": {"type": "expression", "expr": "age ** 2"},
"age3": {"type": "expression", "expr": "age ** 3"},
"income_k": {"type": "expression", "expr": "income / 1000"},
"bmi": {"type": "expression", "expr": "weight / (height ** 2)"},
},
data=data, family="gaussian",
).fit()
Supported operations: +, -, *, /, ** (power)
Regularization
CV-Based Regularization
# Just specify regularization type - cv=5 is automatic
result = rs.glm_dict(
response="y",
terms={"x1": {"type": "linear"}, "x2": {"type": "linear"}, "cat": {"type": "categorical"}},
data=data,
family="poisson",
).fit(regularization="ridge") # "ridge", "lasso", or "elastic_net"
print(f"Selected alpha: {result.alpha}")
print(f"CV deviance: {result.cv_deviance}")
Options:
regularization:"ridge"(L2),"lasso"(L1), or"elastic_net"(mix)selection:"min"(best fit) or"1se"(more conservative, default:"min")cv: Number of folds (default: 5)
Explicit Alpha
# Skip CV, use specific alpha
result = rs.glm_dict(response="y", terms={"x1": {"type": "linear"}, "x2": {"type": "linear"}}, data=data).fit(alpha=0.1, l1_ratio=0.0) # Ridge
result = rs.glm_dict(response="y", terms={"x1": {"type": "linear"}, "x2": {"type": "linear"}}, data=data).fit(alpha=0.1, l1_ratio=1.0) # Lasso
result = rs.glm_dict(response="y", terms={"x1": {"type": "linear"}, "x2": {"type": "linear"}}, data=data).fit(alpha=0.1, l1_ratio=0.5) # Elastic Net
Lasso Credibility
Shrink model coefficients toward a prior model (complement of credibility) instead of toward zero. Based on the methodology in CAS Monograph 13 (Holmes & Casotto, 2025).
When lasso zeroes a coefficient, the prediction for that term falls back to the complement rather than vanishing — making regularized models directly usable as rating plans.
# 1. Fit a countrywide (prior) model
cw_result = rs.glm_dict(
response="ClaimCount",
terms={"VehAge": {"type": "bs"}, "DrivAge": {"type": "bs"}},
data=countrywide_data,
family="poisson",
offset="Exposure",
).fit()
# 2. Fit a state model with lasso, shrinking toward countrywide rates
state_result = rs.glm_dict(
response="ClaimCount",
terms={
"VehAge": {"type": "bs"},
"DrivAge": {"type": "bs"},
"Region": {"type": "categorical"},
},
data=state_data,
family="poisson",
offset="Exposure",
complement="countrywide_rate", # Column with prior rates (response scale)
).fit(regularization="lasso")
# 3. Inspect which terms the data supports vs. trusts the complement
print(state_result.summary()) # Shows "Lasso Credibility Results"
print(state_result.credibility_summary()) # Deviation from complement per term
Complement sources:
str— column name in the DataFrame (rates for log-link, probabilities for logit)np.ndarray— array of prior values on the response scaleGLMModel— fitted model; predictions are computed automatically
Works with all families/links, splines, categoricals, interactions, and target encoding.
Design Matrix Validation
# Check for issues before fitting
model = rs.glm_dict(
response="y",
terms={"x": {"type": "ns", "df": 4}, "cat": {"type": "categorical"}},
data=data, family="poisson",
)
results = model.validate() # Prints diagnostics
if not results['valid']:
print("Issues:", results['suggestions'])
# Validation runs automatically on fit failure with helpful suggestions
Checks performed:
- Rank deficiency (linearly dependent columns)
- High multicollinearity (condition number)
- Zero variance columns
- NaN/Inf values
- Highly correlated column pairs (>0.999)
Model Diagnostics
# Compute all diagnostics at once
diagnostics = result.diagnostics(
data=data,
categorical_factors=["Region", "VehBrand", "Area"], # Including non-fitted
continuous_factors=["Age", "Income", "VehPower"], # Including non-fitted
)
# Export as compact JSON (optimized for LLM consumption)
json_str = diagnostics.to_json()
# Pre-fit data exploration (no model needed)
exploration = rs.explore_data(
data=data,
response="ClaimNb",
categorical_factors=["Region", "VehBrand", "Area"],
continuous_factors=["Age", "VehPower", "Income"],
exposure="Exposure",
family="poisson",
detect_interactions=True,
)
Diagnostic Features:
- Calibration: Overall A/E ratio, calibration by decile with CIs, Hosmer-Lemeshow test
- Discrimination: Gini coefficient, AUC, KS statistic, lift metrics
- Factor Diagnostics: A/E by level/bin for ALL factors (fitted and non-fitted)
- VIF/Multicollinearity: Variance inflation factors for design matrix columns
- Partial Dependence: Effect plots with shape detection and recommendations
- Overfitting Detection: Compare train vs test metrics when test data provided
- Interaction Detection: Greedy residual-based detection of potential interactions
- Warnings: Auto-generated alerts for high dispersion, poor calibration, missing factors
- Base Model Comparison: Compare new model against existing/benchmark predictions
Diagnostics JSON Shape
The diagnostics.to_json() output includes:
{
"model_summary": {
"formula": "...", "family": "poisson", "link": "log",
"n_obs": 2000, "n_params": 6, "df_resid": 1994,
"converged": true, "iterations": 5,
"scale": 1.0,
"scale_pearson": 1.0148,
"null_deviance": 1408.77,
"robust_se_type": "HC1"
},
"train_test": {
"train": {
"n_obs": 2000, "deviance": 2118.42,
"log_likelihood": -1059.21,
"aic": 2130.42, "bic": 2162.70,
"gini": 0.3241, "auc": 0.6621, "ae_ratio": 1.0
}
},
"coefficient_summary": [
{
"feature": "Age", "estimate": 0.00996,
"std_error": 0.00339, "z_value": 2.941,
"p_value": 0.0033, "significant": true,
"conf_int": [0.003318, 0.01659],
"relativity": 1.01, "relativity_ci": [1.0033, 1.0167],
"robust_std_error": 0.003378, "robust_z_value": 2.947,
"robust_p_value": 0.0032, "robust_significant": true
}
]
}
- BIC (
train_test.train.bic): Bayesian Information Criterion alongside AIC - Scale (
model_summary.scale): Deviance-based dispersion parameter - Scale Pearson (
model_summary.scale_pearson): Pearson-based dispersion estimate - Null Deviance (
model_summary.null_deviance): Intercept-only model deviance - Confidence Intervals (
coefficient_summary[].conf_int): 95% CI[lower, upper] - Robust SEs (
coefficient_summary[].robust_*): HC1 sandwich estimators for each coefficient - Robust SE Type (
model_summary.robust_se_type): Present only when robust SEs were computed
Robust SE fields are null when store_design_matrix=False (lean mode) or for deserialized models.
Comparing Against a Base Model
Compare your new model against predictions from an existing model (e.g., current production model):
# Add base model predictions to your data
data = data.with_columns(pl.lit(old_model_predictions).alias("base_pred"))
# Run diagnostics with base_predictions
diagnostics = result.diagnostics(
train_data=data,
categorical_factors=["Region", "VehBrand"],
continuous_factors=["Age", "VehPower"],
base_predictions="base_pred", # Column name with base model predictions
)
# Access comparison results
bc = diagnostics.base_predictions_comparison
# Side-by-side metrics
print(f"Model loss: {bc.model_metrics.loss}, Base loss: {bc.base_metrics.loss}")
print(f"Model Gini: {bc.model_metrics.gini}, Base Gini: {bc.base_metrics.gini}")
# Improvement metrics (positive = new model is better)
print(f"Loss improvement: {bc.loss_improvement_pct}%")
print(f"Gini improvement: {bc.gini_improvement}")
print(f"AUC improvement: {bc.auc_improvement}")
# Decile analysis sorted by model/base prediction ratio
for d in bc.model_vs_base_deciles:
print(f"Decile {d.decile}: actual={d.actual:.4f}, "
f"model={d.model_predicted:.4f}, base={d.base_predicted:.4f}")
The comparison includes:
- Side-by-side metrics: Loss (mean deviance), Gini, AUC, A/E ratio for both models
- Improvement metrics:
loss_improvement_pct,gini_improvement,auc_improvement - Decile analysis: Data sorted by model/base ratio, showing where the new model diverges
- Calibration comparison: Count of deciles where each model has better A/E
Model Serialization
Save and load fitted models for later use:
# Fit and save
model_bytes = result.to_bytes()
with open("model.bin", "wb") as f:
f.write(model_bytes)
# Load later
with open("model.bin", "rb") as f:
loaded = rs.GLMModel.from_bytes(f.read())
# Predict with loaded model
predictions = loaded.predict(new_data)
What's preserved:
- Coefficients and feature names
- Categorical encoding levels
- Spline knot positions
- Target encoding statistics
- Formula, family, link function
- Complement of credibility specification
Compact storage: Only prediction-essential state is stored (~KB, not MB).
Model Export (PMML & ONNX)
Export fitted models to standard formats for deployment — no extra dependencies required. PMML uses stdlib XML; ONNX protobuf serialization is implemented from scratch in Rust.
PMML
# Export to PMML 4.4 XML
pmml_xml = result.to_pmml()
result.to_pmml(path="model.pmml")
# Load & predict (consumer side)
# uv add pypmml
from pypmml import Model
pmml_model = Model.fromFile("model.pmml")
new_data = pl.DataFrame({"VehAge": [3, 5, 1], "Area": ["C", "A", "B"]})
preds = pmml_model.predict(new_data.to_dict(as_series=False))
ONNX
# Export — "scoring" requires pre-built design matrix, "full" embeds preprocessing
result.to_onnx(path="model.onnx", mode="scoring")
result.to_onnx(path="model_full.onnx", mode="full")
# Predict (consumer side)
# uv add onnxruntime
import onnxruntime as ort
session = ort.InferenceSession("model_full.onnx")
preds = session.run(None, {"input": raw_features})[0]
| Size | Smaller | Larger |
Dependencies
Rust
ndarray,nalgebra- Linear algebrarayon- Parallel iterators (multi-threading)statrs- Statistical distributionspyo3- Python bindings
Python
numpy- Array operations (required)polars- DataFrame support (required)
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rustystats-0.6.0.tar.gz.
File metadata
- Download URL: rustystats-0.6.0.tar.gz
- Upload date:
- Size: 323.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8aa1267c84b950597f155f64d6fdb8cf54a0f393b4c9a70fd5d8fb90019d0dce
|
|
| MD5 |
0c135a0cb3f615a1a0b6a783068fe70d
|
|
| BLAKE2b-256 |
ebc120f325facbfb03c44934ae0e1d15b1b53bfebea8fd3b8e3be4d5bb0b9ef9
|
Provenance
The following attestation bundles were made for rustystats-0.6.0.tar.gz:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0.tar.gz -
Subject digest:
8aa1267c84b950597f155f64d6fdb8cf54a0f393b4c9a70fd5d8fb90019d0dce - Sigstore transparency entry: 1059951642
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a6490ec2711fff910dad4d3f72c7be392ae7de96acb56548ac035bb92081800
|
|
| MD5 |
cca91e473d79bd2a022b9e7faaf8f630
|
|
| BLAKE2b-256 |
97a1520eecf018e5de023adc96bb61f1745e81ad4bf40588fb47ad2217fc257e
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp313-cp313-win_amd64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp313-cp313-win_amd64.whl -
Subject digest:
6a6490ec2711fff910dad4d3f72c7be392ae7de96acb56548ac035bb92081800 - Sigstore transparency entry: 1059952497
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa04d3a10f383815c2d3ef2f54435e3b789567931618c6d9237a61d146ca55d4
|
|
| MD5 |
869bf4e6807eeb36bf496b1d2eccfa41
|
|
| BLAKE2b-256 |
3b637c08cd1c5731680f3f83ed07f53d850e929021f8956dbe7c1017118211d8
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
fa04d3a10f383815c2d3ef2f54435e3b789567931618c6d9237a61d146ca55d4 - Sigstore transparency entry: 1059952817
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6833d96db2c43126b7b6e6815c9bc7fb229a7c2124678dd04eeb83f078e09d5
|
|
| MD5 |
b05b44b299232adaee594cabac21b1c8
|
|
| BLAKE2b-256 |
62cd27c1c5e0d25977702c5e5b656f66c2cd9aa1734db611e6aa7767d5ff97e9
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
d6833d96db2c43126b7b6e6815c9bc7fb229a7c2124678dd04eeb83f078e09d5 - Sigstore transparency entry: 1059952146
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dec1dfc46a82b1a5bd1dfd89e5a32c86bc2652eaee60686b30e802d0f235ac80
|
|
| MD5 |
333c8dfc1632ad8736eabb262f5dee12
|
|
| BLAKE2b-256 |
e07b7b4387a92fde5071730753716a5a799d39605864ecd91beab578cc89f75c
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
dec1dfc46a82b1a5bd1dfd89e5a32c86bc2652eaee60686b30e802d0f235ac80 - Sigstore transparency entry: 1059951988
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fe2985ba809d721214fcc2e387e39072848585b2e6d78dcd63ff0c603e37fb1
|
|
| MD5 |
335b94f13547df6d23f896d66ebb58b1
|
|
| BLAKE2b-256 |
2992d71f341040b2ef0e357bde0a4db020c53d69ed5f65175382d1314fd35b10
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl -
Subject digest:
0fe2985ba809d721214fcc2e387e39072848585b2e6d78dcd63ff0c603e37fb1 - Sigstore transparency entry: 1059952095
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
669a3c5ba8f202e57ffcc1f07c039322fbe31e709a74b173f499870f3dff9fac
|
|
| MD5 |
de0b2a10e6cd067dc3ba9a438fca1358
|
|
| BLAKE2b-256 |
fea010bb584d5f1037702eca1bf0bfaef7de528862ebf0d6b977fb751952afda
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp312-cp312-win_amd64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp312-cp312-win_amd64.whl -
Subject digest:
669a3c5ba8f202e57ffcc1f07c039322fbe31e709a74b173f499870f3dff9fac - Sigstore transparency entry: 1059952394
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e2d8afdd4a5cdff4881f36a2f702a65add1d5d0982a4cddf2c5a8696690e4ec
|
|
| MD5 |
ee92e28889fc19a8276163bd6f8521e0
|
|
| BLAKE2b-256 |
90aa51065cffd4e0d5635a66b5c7e356cb274e25677b3bee847c26958d8d4660
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
0e2d8afdd4a5cdff4881f36a2f702a65add1d5d0982a4cddf2c5a8696690e4ec - Sigstore transparency entry: 1059952569
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2206e90bbd246369046604345b902c0adeddc89087f9199e87785181e3a9de14
|
|
| MD5 |
0866ad6507be60e1247573aeacda0d22
|
|
| BLAKE2b-256 |
2334e0d4ea8ca37c0e89f9d52fc3174418e436db73e045acd111921350754d29
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
2206e90bbd246369046604345b902c0adeddc89087f9199e87785181e3a9de14 - Sigstore transparency entry: 1059952253
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
467ca943bcb8224b44bd2e9493c250231df81d58140b7a725f80ac2e02bcf499
|
|
| MD5 |
c499a4f4e87746d1995319b39f1d7c8e
|
|
| BLAKE2b-256 |
051935b3ca78af96ea4bbc28f0c240620c54c70a3b3f0760931804074bd52877
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
467ca943bcb8224b44bd2e9493c250231df81d58140b7a725f80ac2e02bcf499 - Sigstore transparency entry: 1059951875
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37b174494c4807ad247f004ce887dd420fd9da208978175c31615ea6722c58e6
|
|
| MD5 |
f20e6c7a75f7860b26cf2eabd0a19a59
|
|
| BLAKE2b-256 |
cb9da59fa0b4313efad3157a871d227b630bd992e90a032ff17d6957a5a2c4bb
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl -
Subject digest:
37b174494c4807ad247f004ce887dd420fd9da208978175c31615ea6722c58e6 - Sigstore transparency entry: 1059952295
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71e4efa40fe70662437af99b4a78370dd456294ab75c465787778e7b5bd81425
|
|
| MD5 |
09c45ec58b63a4514545be7ebcc3a965
|
|
| BLAKE2b-256 |
bcc7cb4d811f97dd065062552cda0c01afd6f135bc7d02a477237a3427e0c808
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp311-cp311-win_amd64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp311-cp311-win_amd64.whl -
Subject digest:
71e4efa40fe70662437af99b4a78370dd456294ab75c465787778e7b5bd81425 - Sigstore transparency entry: 1059952648
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80869503fbffcf433cb0b4fea0bbceb4641f47f4f0ecd32190273c4157d1e1e4
|
|
| MD5 |
c157e2efc0924b04674b93c4a94509c6
|
|
| BLAKE2b-256 |
42a913b34534d4ea69b4df07b02281ccea14b7f8ab12efed668ec3dc3fc63644
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
80869503fbffcf433cb0b4fea0bbceb4641f47f4f0ecd32190273c4157d1e1e4 - Sigstore transparency entry: 1059951760
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77c9b941e9be69e1d7f7cd1544b7b8fba33db777252c6257962fc2d4235f3ced
|
|
| MD5 |
cb88f506ff947eba85476eac84d764fd
|
|
| BLAKE2b-256 |
2cd4d4b2013e6b76b6c436a078c30c4e98dab0bf5319b47315056c7d0fc1364b
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
77c9b941e9be69e1d7f7cd1544b7b8fba33db777252c6257962fc2d4235f3ced - Sigstore transparency entry: 1059951930
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7e5829117f545dac3fe93e67c3622ffeddba3ff9963efd53026ddc333806a37
|
|
| MD5 |
4347eb285ff4f1b6b1d0d65d99295dd8
|
|
| BLAKE2b-256 |
bc6202d5c9076d4dba9ca7a81bffd346bcdb354cb4801195068a3bf2037f49c1
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
f7e5829117f545dac3fe93e67c3622ffeddba3ff9963efd53026ddc333806a37 - Sigstore transparency entry: 1059952740
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
247659db41c53577413723c5bcff25bf469592427e501c6d48a4339b9e46b5df
|
|
| MD5 |
6b2d910487bc5fff3c2937aa14eaa422
|
|
| BLAKE2b-256 |
d32b2ecaba76c0145af4b0159baf488d716477e22cc86b41699a92553d49d43a
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl -
Subject digest:
247659db41c53577413723c5bcff25bf469592427e501c6d48a4339b9e46b5df - Sigstore transparency entry: 1059952344
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afaa35c923bee7f0689911edf40f908b3098c799f4c661ce33d222df32a552f4
|
|
| MD5 |
ad5cd8826f6bf39010d21a83573f164e
|
|
| BLAKE2b-256 |
6ff2faabb5b1ac70737c38e2e4b5c041f4fef2adbb7c25f0adc42372686c7699
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp310-cp310-win_amd64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp310-cp310-win_amd64.whl -
Subject digest:
afaa35c923bee7f0689911edf40f908b3098c799f4c661ce33d222df32a552f4 - Sigstore transparency entry: 1059951712
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26895b2c17f35065087a333160efa6e845f545a102a1936e27e706c2266a041d
|
|
| MD5 |
5f2064afc930068ca23b13a3579758f8
|
|
| BLAKE2b-256 |
754f02793a5dff992a785e7ed9ba5ee11a7bd74a72149267f9b6644373d6ae1c
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
26895b2c17f35065087a333160efa6e845f545a102a1936e27e706c2266a041d - Sigstore transparency entry: 1059952441
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49bf9cf66127fcba836901622c90407cd73cf4c67e27a26185c5767463accde2
|
|
| MD5 |
b600984ef90df0d5ea8f7efb25c91f1c
|
|
| BLAKE2b-256 |
dba7ae56d016b210582aad65a9b010bd7c79e766969862ab5b338911534a7e08
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
49bf9cf66127fcba836901622c90407cd73cf4c67e27a26185c5767463accde2 - Sigstore transparency entry: 1059952039
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a87bfa9a080a49b1c072c5f7bbf175b41dca66ef0fe717767b80c7cba8061979
|
|
| MD5 |
b35f0b11af2d64a3859322e79c0f7b86
|
|
| BLAKE2b-256 |
7b00ab707dc11d9f7d665a28049fcc8f18da8aafaecbeb85dbf621f5448dc94a
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
a87bfa9a080a49b1c072c5f7bbf175b41dca66ef0fe717767b80c7cba8061979 - Sigstore transparency entry: 1059951815
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rustystats-0.6.0-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: rustystats-0.6.0-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f03a2f4886aeefa587a408c8b3be1ec35d14999536ecb95d6a298bcd9dc47a0
|
|
| MD5 |
3ab9536520fe32b6dc00651596783825
|
|
| BLAKE2b-256 |
fb2db3341898d8f916da744c88beecf358768705b4beebd8d76dee0f00643937
|
Provenance
The following attestation bundles were made for rustystats-0.6.0-cp310-cp310-macosx_10_12_x86_64.whl:
Publisher:
release.yml on PricingFrontier/rustystats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustystats-0.6.0-cp310-cp310-macosx_10_12_x86_64.whl -
Subject digest:
4f03a2f4886aeefa587a408c8b3be1ec35d14999536ecb95d6a298bcd9dc47a0 - Sigstore transparency entry: 1059952187
- Sigstore integration time:
-
Permalink:
PricingFrontier/rustystats@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PricingFrontier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca4c076b2701f06b449381ee51558bb9529b66a2 -
Trigger Event:
workflow_dispatch
-
Statement type: