hessboost for Python
Fast, deterministic gradient boosting in Rust. The core API (DMatrix,
train, cv, Booster, and scikit-learn estimators) takes the parameter
names XGBoost users know, and models move to and from XGBoost as JSON or
UBJSON.
- Strict. An unknown parameter, a value of the wrong type or range, or a combination hessboost does not implement raises an error; nothing is silently ignored.
- Deterministic. The same parameters, data, and seed give the same
model at any
nthread. - Typed (
py.typed, complete type information), with the GIL released while training and predicting, and free-threaded CPython supported. - Modern modeling (opt-in). Conformal prediction intervals,
confidence intervals for the regression function (Boulevard boosting),
distributional boosting (a predictive distribution per row), LightGBM/CatBoost
tree options, class-balanced binary bagging, and XE-NDCG ranking
(
objective="rank:xendcg").
Installation
uv add hessboost # or: pip install hessboost
Extras: hessboost[pandas] and hessboost[scikit-learn]. numpy is the only
required dependency.
Prebuilt wheels are published for Linux x86_64 and aarch64 (glibc
manylinux and musl/Alpine musllinux), macOS arm64 (with Metal support,
device="metal"), and Windows x86_64: one abi3 wheel per platform for
CPython 3.11 and newer, plus a wheel for free-threaded CPython 3.14t.
Elsewhere the installer builds from the source distribution, which needs
Rust 1.93 or newer and a C compiler (for libzstd).
Quick start
import numpy as np
import hessboost
rng = np.random.default_rng(0)
X = rng.normal(size=(1000, 5))
y = (X[:, 0] + X[:, 1] ** 2 > 1).astype(int)
dtrain = hessboost.DMatrix(X[:800], label=y[:800])
dvalid = hessboost.DMatrix(X[800:], label=y[800:])
booster = hessboost.train(
{"objective": "binary:logistic", "max_depth": 4, "eta": 0.1, "eval_metric": "auc"},
dtrain,
num_boost_round=500,
evals=[(dvalid, "valid")],
early_stopping_rounds=20,
verbose_eval=False,
)
probabilities = booster.predict(X[800:]) # through booster.best_iteration
shap = booster.predict(X[800:], pred_contribs=True) # (rows, features + 1)
print(booster.best_iteration, booster.get_score(importance_type="gain"))
DMatrix takes numpy arrays of any numeric dtype and memory layout (a
C-contiguous float32 array is used without a copy), pandas DataFrames,
scipy sparse matrices, and anything numpy.asarray accepts. NaN is missing
(or pass missing=); ranking data takes group= sizes or qid=, and
survival:aft takes label_lower_bound=/label_upper_bound=.
Booster.predict accepts the same inputs directly.
train supports XGBoost's everyday arguments: evals, evals_result,
early_stopping_rounds, verbose_eval (printed live, every round or
every n-th), xgb_model (continued training, or tree refresh with
process_type="update"), a custom objective obj, a custom_metric,
and callbacks. Ctrl-C stops training at the end of the current round
and raises KeyboardInterrupt. hessboost.cv cross-validates over
shuffled folds, explicit folds, or a scikit-learn splitter.
class StopAtTarget(hessboost.TrainingCallback):
def after_iteration(self, iteration, evals_log):
return evals_log["valid"]["auc"][-1] > 0.99 # True stops training
hessboost.train(params, dtrain, 1000, evals=[(dvalid, "valid")], callbacks=[StopAtTarget()])
pandas and categorical features
DataFrame column names become feature names, and category columns become
native categorical features. A category's code is its position in the
column's categories, so the booster remembers each column's categories and
re-codes a frame passed to predict (and the other prediction and
calibration methods) whose categories are ordered differently or include
unseen values (which count as missing):
import pandas as pd
df = pd.DataFrame({"color": pd.Categorical(["red", "blue", "red"] * 100), "size": np.arange(300.0)})
booster = hessboost.train({}, hessboost.DMatrix(df, label=np.arange(300.0)), 20)
booster.predict(df)
A DMatrix is coded once, when it is built, so it must have the features
of every model or matrix it meets: predict and the calibrators check it
against each model reading it, and train checks every evals matrix
against dtrain and against xgb_model, and dtrain against xgb_model
(continued training or refresh). Feature names (where both have them;
predict(validate_features=False) skips them), which features are
categorical, and each categorical feature's categories, in order, must
match; a mismatch raises HessboostError naming the eval set and the
feature. Build eval frames with the training frame's categories (for
example valid["color"].cat.set_categories(train["color"].cat.categories)).
Codes without recorded categories (numpy data with
feature_types=["c", ...]) are taken to be the other side's codes; only
which features are categorical is compared, and a model continued on them
keeps the earlier model's categories. ConformalizedQuantile.calibrate
likewise needs its two models to share their features, and re-codes frames
to whichever model records categories. The scikit-learn estimators re-code
every eval_set frame to the training frame's categories and, with
xgb_model, the training frame to the earlier model's.
scikit-learn
from hessboost.sklearn import HessboostClassifier
model = HessboostClassifier(
n_estimators=300, max_depth=4, learning_rate=0.1, early_stopping_rounds=20
)
model.fit(X_train, y_train, eval_set=[(X_valid, y_valid)])
model.predict_proba(X_test)
model.feature_importances_
HessboostRegressor (multi-target with a 2-D y), HessboostClassifier
(any class labels), HessboostRanker (group= or qid=), and
HessboostDistributionRegressor (dist:* objectives; predict returns
means, predict_distribution the distributions) take XGBoost's
scikit-learn parameter names, plus callbacks. Parameters left at None
keep hessboost's defaults, and params={...} passes any other training
parameter; fit(..., verbose=True) (or a period) prints rounds live. They
work with pipelines, clone, grid search, and pickling, and pass
scikit-learn's estimator checks (except three documented deviations).
import hessboost does not import scikit-learn; hessboost.sklearn needs
it.
Model files
| Method | Formats |
|---|---|
save_model(path, format=None) |
by extension: .json native JSON, .ubj XGBoost UBJSON, anything else native binary; or format="binary" | "json" | "xgboost-json" | "xgboost-ubjson" |
Booster(path_or_bytes), load_model(...) |
any of the four, or a LightGBM 4.x text model (format="lightgbm", import only), detected from the content (ModelFormatError if it looks like none of them) |
save_raw(format="binary") |
the same formats as bytes |
pickle / copy |
native binary plus feature names, categories, and best_score |
The native binary format is compressed, checksummed, and lossless; files
load in subsequent releases. Use
format="xgboost-json" or .ubj for a file XGBoost loads. A LightGBM
model (lightgbm.Booster.save_model) predicts LightGBM's values for
missing values as NaN and categorical features as non-negative codes;
models with no exact equivalent raise ModelFormatError. booster[a:b]
slices boosting iterations.
Modern modeling
from hessboost.conformal import ConformalizedQuantile
band = hessboost.train(
{"objective": "reg:quantileerror", "quantile_alpha": [0.05, 0.95]},
hessboost.DMatrix(X_train, y_train),
200,
)
cqr = ConformalizedQuantile.calibrate_outputs(band, X_cal, y_cal, alpha=0.1)
lower, upper = cqr.predict_interval(X_test).T # >= 90% coverage, finite-sample
lower, upper = inference.confidence_intervals(X_test, alpha=0.05).T # for f(x)
dist = hessboost.train({"objective": "dist:normal"}, hessboost.DMatrix(X_train, y_train), 300)
d = dist.predict_distribution(X_test)
d.mean(), d.std(), d.interval(0.9), d.log_prob(y_test), d.crps(y_test)
sglb = hessboost.train({"posterior_sampling": True}, hessboost.DMatrix(X_train, y_train), 1000)
members, iterations = sglb.predict_virtual_ensembles(X_test, 10) # (10, rows)
u = sglb.predict_uncertainty(X_test, 10) # u.knowledge rises off the training data
from hessboost.online import Approximate, OnlineModel
online = OnlineModel.train(
{"tree_method": "hist", "max_depth": 6},
hessboost.DMatrix(X_train, y_train),
100,
Approximate(0.1),
)
report = online.update(hessboost.DMatrix(X_new, y_new), deletions=[3, 17])
online.model.predict(X_test) # online.data: the updated training rows
from hessboost.inference import BoulevardInference, honest_refit
params = {"booster": "boulevard", "eta": 0.8, "boulevard_dropout": 0.5, "subsample": 0.8}
trained = hessboost.train(params, hessboost.DMatrix(X_struct, y_struct), 200)
model = honest_refit(trained, X_values, y_values) # leaves from independent rows
inference = BoulevardInference.fit(model, X_values, holdout=X_cal, holdout_label=y_cal)
from hessboost.diffusion import DiffusionModel, DiffusionParams, crps, quantiles
flow = DiffusionModel.fit(DiffusionParams.flow_matching(), X_train, y_train)
draws = flow.sample(X_test, 200, seed=0) # (rows, 200, outputs) float32
quantiles(draws, [0.05, 0.5, 0.95]) # (rows, 3, outputs)
crps(draws, y_test) # (rows, outputs)
from hessboost.diffusion.forest import ForestModel, ForestParams
forest = ForestModel.fit(ForestParams.forest_diffusion(), X_with_nans)
synthetic = forest.sample(1000, seed=0) # ForestSamples: .values (1000, columns), .labels None
filled = forest.impute(X_with_nans, n_imputations=5) # (5, rows, columns)
hessboost.conformal:SplitConformalandConformalizedQuantile(from two quantile models, two outputs of one, or adist:*model).hessboost.online:OnlineModeladds and deletes training rows of a trained model in place (incremental learning, machine unlearning).mode=Exact()is exact: every update equalshessboost.trainononline.databit for bit;Approximate(tolerance)(the default, at0.1) keeps splits that still rank near the top and is faster than retraining for small changes.update(additions, deletions, callback=...)returns anUpdateReport(nodes_kept,subtrees_regrown,rows_refreshed), orNonewhencallback(iteration)returnedTrue; a refused, stopped, or interrupted (Ctrl-C) update changes nothing.OnlineModel.from_modelresumes from a savedBoosterand its training data. Updates needhistdepth-wise trees without sampling or constraints and unweighted data.hessboost.ebm: explainable boosting machines ({"booster": "ebm"}, cyclic GA2M with outer bags, FAST pairs, per-bag early stopping, and categorical terms):shape_functionsreturns every term's piecewise-constant shape (NumericAxisedges orCategoricalAxiscodes, plus a missing cell per axis) andBooster.ebm;hessboost.inference.EbmInferenceputs confidence bands on the shapes of anebm_boulevardmodel.hessboost.inference: Boulevard boosting's asymptotic confidence, prediction (Gaussian noise), and reproduction intervals forf(x)(BoulevardInference, exact or Nystrom),honest_refit, andBooster.boulevard. The intervals are conditional on the tree structures: nominal for low-dimensional smooth signals after an honest refit, under-covering elsewhere (see the crate'sinferencedocs).hessboost.diffusion: nonparametricp(y | x)for scalar or vector labels (multimodal, skewed, heavy-tailed) by conditional diffusion or flow matching with GBDT score models, after Treeffuser and DiffGBM.DiffusionParamsis a frozen dataclass tree (Score/FlowMatchingand their SDEs, paths, and time sampling;EarlyStopping,Residualizer) with presetsdefault(),treeffuser(), andflow_matching(); itstrainingmappings are XGBoost parameters, astrainreads them.DiffusionModel.samplereturns(rows, n_samples, outputs)draws, deterministic per seed and step count (n_steps=overrides the model's);mean,quantiles, andcrpssummarize them. Models save withto_bytes(format="binary")/save(path, format="binary")("binary"or"json") and load withfrom_bytes(data, format="auto")/load(path, format="auto"), which detect the format (ModelFormatErrorfor bytes in neither), or pickle (which also keeps feature names and categories).fitreleases the GIL but cannot be interrupted: Ctrl-C takes effect once it returns.hessboost.diffusion.forest: ForestFlow / ForestDiffusion synthetic tabular rows (optionally per class of a label) and missing-value imputation with per-noise-level GBDTs.ForestParams(method"flow"orDiffusion(beta_min, beta_max),n_t,duplicate_k, one"continuous"/"integer"/"categorical"kind per column, XGBoosttrainingparameters) has presetsforest_flow()(the defaults) andforest_diffusion().ForestModel.sample(n_rows)returns a frozenForestSamples(values, labels)(labels only for a class-conditional model),sample_for_labels(labels)one row per label, andimpute(X, y, n_imputations=, repaint=Repaint(...))(n_imputations, rows, columns)with the observed entries kept (diffusion only). Values are in the data's own coding. Models save and load likeDiffusionModels.hessboost.folds:k_fold,forward_chaining(expanding-window, purged by a rowgap), andpurged_forward(timestamped rows, purged by each row's own label window, for overlapping or irregular horizons) folds forcvor your own validation loops.Booster.predict_virtual_ensembles/predict_uncertainty: CatBoost's virtual ensembles of an SGLB model (posterior_sampling,langevin,model_shrink_rate), with knowledge, data, and total uncertainty (hessboost.Uncertainty).- Every hessboost training option (
path_smooth,extra_trees,linear_tree,grow_policy="symmetric",use_quantized_grad,pos_bagging_fraction,neg_bagging_fraction,bagging_by_query, thedist:*objectives and theirdist_gradient,rank:xendcg, ...) is aparamskey. XE-NDCG's keyed per-round random stream differs from LightGBM'srank_xendcgstream.
Differences from XGBoost's Python package
- Errors:
hessboost.HessboostError(aValueError) for refused inputs, with subclassesInvalidDataError(data content: labels outside the objective's domain, negative weights, bad groups or bounds; the message names the input and any eval set),IncompatibleModelError(a model the parameters or data do not match: continued training, refresh, slicing) andModelFormatError(model files); invalid or conflicting parameters raiseHessboostErroritself.TypeErrorfor wrong types. Unsupported parameters are refused, includingverbosity;missingbelongs toDMatrix. TrainingCallback.after_iteration(iteration, evals_log) -> boolsees the round and the evaluation history, not the model (XGBoost's also gets the booster and hasbefore_training/after_traininghooks); returningTruestops training with the rounds so far.hessboost.cvhas no callbacks and finishes its folds before Ctrl-C takes effect.custom_metric(predictions, labels, weights)returns a float and is named by the function's__name__(XGBoost passes aDMatrixand returns(name, value)).obj(margins, dtrain)matches XGBoost; the model then predicts margins from a zero intercept (orbase_score).objreplacesobjective, whichparamsmust then not set, andnum_classis the custom objective's output count (XGBoost's custom-softmax convention; default: one per label column).cvreturns a dict of numpy arrays (test-<metric>-mean/-std) with held-out metrics only; there is nostratifiedoras_pandas.predictdefaults to the iterations throughbest_iteration(XGBoost's scikit-learn behavior); passiteration_range=(0, 0)for all.pred_leafreturnsint32.- Model files do not store feature names or categories (pickles do).
- Not available:
DMatrixfrom files orQuantileDMatrix,inplace_predict(predicttakes arrays directly),Booster.get_dump/trees_to_dataframe/dump_model, attributes (set_attr), plotting, distributed (Dask/Spark) and GPU (CUDA) training,approx_contribs, andstrict_shape.
Development
From python/ in the repository,
with uv:
uv sync # build the extension and install dev tools
uv run pytest
uv run pyright --verifytypes hessboost --ignoreexternal
Lint, format, and type-check all of the repository's Python from its root
(configuration: ruff.toml, ty.toml):
uv run --project python ruff check
uv run --project python ruff format --check
uv run --project python ty check
License
Apache-2.0.
Release files for hessboost 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hessboost-0.2.0.tar.gz | 1.2 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| hessboost-0.2.0-cp314-cp314t-win_amd64.whl | CPython 3.14 | CPython 3.14 free-threading | Windows x86-64 | Details |
| hessboost-0.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux musl 1.2+ x86-64 | Details |
| hessboost-0.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux musl 1.2+ ARM64 | Details |
| hessboost-0.2.0-cp314-cp314t-manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux glibc 2.28+ x86-64 | Details |
| hessboost-0.2.0-cp314-cp314t-manylinux_2_28_aarch64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux glibc 2.28+ ARM64 | Details |
| hessboost-0.2.0-cp314-cp314t-macosx_11_0_arm64.whl | CPython 3.14 | CPython 3.14 free-threading | macOS 11.0+ ARM64 | Details |
| hessboost-0.2.0-cp311-abi3-win_amd64.whl | CPython 3.11 | abi3 | Windows x86-64 | Details |
| hessboost-0.2.0-cp311-abi3-musllinux_1_2_x86_64.whl | CPython 3.11 | abi3 | Linux musl 1.2+ x86-64 | Details |
| hessboost-0.2.0-cp311-abi3-musllinux_1_2_aarch64.whl | CPython 3.11 | abi3 | Linux musl 1.2+ ARM64 | Details |
| hessboost-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| hessboost-0.2.0-cp311-abi3-manylinux_2_28_aarch64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| hessboost-0.2.0-cp311-abi3-macosx_11_0_arm64.whl | CPython 3.11 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 30.8 MB
Release files / hessboost-0.2.0.tar.gz
| Download URL | hessboost-0.2.0.tar.gz |
|---|---|
| Size | 1.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0690980a6af6bd3ec17d5046a3dc2d69a70859896ffaca5a06ff0264576bc99c
|
|
BLAKE2b-256 checksum How to use checksums |
cb1244d158d429d8e06b60c12524a46ffb9f9d659ee9b3ab80ff94079a51b5ba
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp314-cp314t-win_amd64.whl
| Download URL | hessboost-0.2.0-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
295863445be4ca9be2069e30ec265912fc785eb0f3e6186bdb42c6932852c957
|
|
BLAKE2b-256 checksum How to use checksums |
863633c71d9f9e1ae75059e6a4b2439d120af31e4f845890d193b6485b234da3
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | hessboost-0.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
2bbbf9d1a1421c2becf9177480a8a24727c3fdcce83c3dbd04245c3adf7a7b21
|
|
BLAKE2b-256 checksum How to use checksums |
38497ceeb82a67880cf527c242c691047b10d08476b2f86bf70ed08c58d6cd7e
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl
| Download URL | hessboost-0.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
f271175de630068741bd693f2883c7afe4c42961578808ee8526a56846b78fa6
|
|
BLAKE2b-256 checksum How to use checksums |
0dc855ae329765bb9fda4cd89f7b5fe28564da1a37380d9e1a22537dd9e4ae9b
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | hessboost-0.2.0-cp314-cp314t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5c2ac89e4d241c67cf5f9c033d630c41461e3d55b68cd730738c56752858529f
|
|
BLAKE2b-256 checksum How to use checksums |
ae5361bc0098110063b3237928981efb19da8e1e98012e82311ac7184f6d7e4e
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp314-cp314t-manylinux_2_28_aarch64.whl
| Download URL | hessboost-0.2.0-cp314-cp314t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
82aad543e0f3b8a57156c20b8f43136ecb297209bf756de6bd3fa54dabb53a00
|
|
BLAKE2b-256 checksum How to use checksums |
f5f06fbb1a6e76d49a024aeaf24feb5c2fa46c1596350f36500b81b25e832221
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | hessboost-0.2.0-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b4b7b0eb7614eeb2f7ab76d92e1b050e4f31c08c639200bb4b0738edd0ccbd73
|
|
BLAKE2b-256 checksum How to use checksums |
7d832c866070309672eecae579ab2bebe7fc4b3313fc9d8e0412c7c15f4110c8
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp311-abi3-win_amd64.whl
| Download URL | hessboost-0.2.0-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
50db21a76cee10c2ca80712432cacb3fbb23bb9ba727b753ab0989c50e114da7
|
|
BLAKE2b-256 checksum How to use checksums |
c7b0cfa7d49df90faaebbb1e81d3e93df74101289073f50e958a3328cc017b5b
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp311-abi3-musllinux_1_2_x86_64.whl
| Download URL | hessboost-0.2.0-cp311-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
6983e96e9f4b4a6fba264bdfa07e5f87f93b9d10b05205a1c878a2b3bf95f6ac
|
|
BLAKE2b-256 checksum How to use checksums |
c4334cd8bcb4700ac83a91b61550cff1cbf09e2c04e79a9e7c258c8e71e59d7a
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp311-abi3-musllinux_1_2_aarch64.whl
| Download URL | hessboost-0.2.0-cp311-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
9b4108558696ea037e1bfc15d0943adce2ea1b3f125dd0892e135e2c28b3c9d8
|
|
BLAKE2b-256 checksum How to use checksums |
ff5f93014ad02841465270f3150a1b094edb72f878ce41d96272b04fac1cfda2
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl
| Download URL | hessboost-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
57de8e6ea8a3043f49034897a221c239b028296d42f3ca3c64c83a28906a25f4
|
|
BLAKE2b-256 checksum How to use checksums |
26571b2ef3aac7656f787ee3887046ededeb27c59292965166d9152547659829
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp311-abi3-manylinux_2_28_aarch64.whl
| Download URL | hessboost-0.2.0-cp311-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
1adc3a1b67492308af6f7959fd25af231bebb4099d7a761c6f09d356327a3aa1
|
|
BLAKE2b-256 checksum How to use checksums |
c668749dbc35b301f3d12d05dabe6032818b6495f5b3192cb810f206472630dc
|
| 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 Sep 27, 2026.
Transparency logRelease files / hessboost-0.2.0-cp311-abi3-macosx_11_0_arm64.whl
| Download URL | hessboost-0.2.0-cp311-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.11 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9250e00cebe1169c7d7f4a4d8c73ca8d74734866b2e74e6da4547de38058a80e
|
|
BLAKE2b-256 checksum How to use checksums |
9502f6bbe9aadbb1e7759cffcc0ba449b1d341950c99ffb36dda66e94c17cbae
|
| 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 Sep 27, 2026.
Transparency log