Gradient boosted decision trees for multiple outputs
Project description
OmniGBDT
OmniGBDT packages the original GBDT-MO algorithm as a regular Python library. It keeps the native C++ training core and adds modern Python packaging, cross-platform wheels, public custom-objective hooks, and optional sklearn-compatible wrappers.
The main public classes are MultiOutputGBDT and SingleOutputGBDT.
For the original project, benchmark figures, experiment scripts, and upstream research context, please see:
- Original repository: https://github.com/zzd1992/GBDTMO
- Experiment and evaluation repository: https://github.com/zzd1992/GBDTMO-EX
Installation
Install the released package
pip install omnigbdt
or with uv:
uv add omnigbdt
OmniGBDT targets wheel-based installs on:
- Linux x86_64
- Windows x86_64
- macOS arm64 (Apple Silicon, 14+)
The GitHub Actions workflow builds these wheels in CI and publishes them on version tags matching v*.
Optional extras
Install plotting support if you want to render dumped trees with create_graph():
pip install "omnigbdt[plot]"
Install sklearn-compatible wrappers if you want to use tools such as permutation_importance:
pip install "omnigbdt[sklearn]"
The same extras can be installed with uv:
uv add "omnigbdt[plot]"
uv add "omnigbdt[sklearn]"
The optional sklearn wrappers are a fork-specific addition. They make it possible to use sklearn inspection utilities such as permutation-based feature importance:
Quick Start
Minimum workable example
The example below creates a multi-output regression problem with intentionally correlated targets. It compares:
- one
MultiOutputGBDTmodel trained on the full target matrix - one
SingleOutputGBDTmodel per target column
import numpy as np
from omnigbdt import SingleOutputGBDT, MultiOutputGBDT, Verbosity
rng = np.random.default_rng(0)
n_samples = 512
n_features = 4
n_outputs = 3
X = rng.random((n_samples, n_features)).astype("float64")
shared_signal = (
1.5 * X[:, 0]
- 0.8 * X[:, 1]
+ 0.4 * np.sin(np.pi * X[:, 2])
)
target_specific = np.column_stack([
0.3 * X[:, 2] * X[:, 3],
-0.4 * X[:, 0] + 0.2 * X[:, 3],
0.5 * X[:, 1] * X[:, 3],
])
shared_noise = 0.05 * rng.standard_normal(n_samples)[:, None]
independent_noise = 0.02 * rng.standard_normal((n_samples, n_outputs))
Y = np.column_stack([
1.2 * shared_signal,
0.9 * shared_signal,
1.1 * shared_signal,
]).astype("float64")
Y += target_specific + shared_noise + independent_noise
params = {
"loss": b"mse",
"max_depth": 3,
"lr": 0.1,
"num_threads": 1,
"verbosity": Verbosity.SILENT,
}
multi = MultiOutputGBDT(out_dim=n_outputs, params=params)
multi.set_data((X, Y))
multi.train(1)
multi_preds = multi.predict(X)
single_models = []
for col in range(n_outputs):
model = SingleOutputGBDT(params=params)
target = np.ascontiguousarray(Y[:, col])
model.set_data((X, target))
model.train(1)
single_models.append(model)
single_preds = np.column_stack([model.predict(X) for model in single_models])
multi_rmse = np.sqrt(np.mean((multi_preds - Y) ** 2))
single_rmse = np.sqrt(np.mean((single_preds - Y) ** 2))
print("MultiOutputGBDT RMSE:", round(float(multi_rmse), 6))
print("SingleOutputGBDT-per-target RMSE:", round(float(single_rmse), 6))
print("Prediction shape from MultiOutputGBDT:", multi.predict(X[:3]).shape)
print("Prediction shape from stacked SingleOutputGBDT models:", single_preds[:3].shape)
Custom objectives
You can supply gradients and Hessians from Python with an XGBoost-style callback:
import numpy as np
from omnigbdt import MultiOutputGBDT, Verbosity
def mse_objective(preds, target):
return preds - target, np.ones_like(preds)
def rmse_metric(preds, target):
return float(np.sqrt(np.mean((preds - target) ** 2)))
rng = np.random.default_rng(0)
X_train = rng.random((256, 4)).astype("float64")
Y_train = rng.random((256, 3)).astype("float64")
X_valid = rng.random((64, 4)).astype("float64")
Y_valid = rng.random((64, 3)).astype("float64")
booster = MultiOutputGBDT(
out_dim=Y_train.shape[1],
params={
"loss": b"mse",
"max_depth": 3,
"lr": 0.1,
"early_stop": 2,
"num_threads": 1,
"verbosity": Verbosity.FULL,
},
)
booster.set_data((X_train, Y_train), (X_valid, Y_valid))
booster.train(
20,
objective=mse_objective,
eval_metric=rmse_metric,
maximize=False,
)
preds = booster.predict(X_valid)
print(preds.shape)
Notes:
SingleOutputGBDT.train(..., objective=...)expects 1Dpredsandtargetarrays.MultiOutputGBDT.train(..., objective=...)expects 2D arrays shaped(n_samples, out_dim).lossmust still be a supported built-in native loss name such asb"mse"because the native booster validates it at construction time, but custom rounds use your Python callback instead of the built-in objective.- If
early_stop > 0on the custom-objective path, you must also provideeval_set,eval_metric, andmaximize. - The protected
_set_gh(...)plusboost()workflow still exists as an advanced manual escape hatch.
Permutation importance with sklearn
Install the optional sklearn extra first:
pip install "omnigbdt[sklearn]"
or with uv:
uv add "omnigbdt[sklearn]"
Then use the sklearn-compatible multi-output wrapper with permutation importance:
import time
import numpy as np
from sklearn.inspection import permutation_importance
from omnigbdt import MultiOutputGBDTRegressor
rng = np.random.default_rng(0)
X = rng.random((256, 4)).astype("float64")
shared_signal = (
1.2 * X[:, 0]
- 0.7 * X[:, 1]
+ 0.3 * np.sin(np.pi * X[:, 2])
)
shared_noise = 0.05 * rng.standard_normal(256)[:, None]
Y = np.column_stack([
1.1 * shared_signal + 0.2 * X[:, 3],
0.9 * shared_signal - 0.3 * X[:, 0],
1.0 * shared_signal + 0.4 * X[:, 1] * X[:, 3],
]).astype("float64")
Y += shared_noise + 0.02 * rng.standard_normal((256, 3))
model = MultiOutputGBDTRegressor(
num_rounds=10,
max_depth=3,
num_threads=1,
)
model.fit(X, Y)
start_time = time.time()
result = permutation_importance(
model,
X,
Y,
scoring="r2",
n_repeats=10,
random_state=42,
n_jobs=1,
)
elapsed_time = time.time() - start_time
print(f"Elapsed time: {elapsed_time:.3f} seconds")
print(result.importances_mean)
The sklearn-compatible wrappers also accept objective=..., eval_metric=..., and maximize=..., and forward them to the same custom-objective training path.
Source and Development Installs
Install from source
pip install .
or with uv:
uv add ./OmniGBDT
On Windows, use either uv add .\\OmniGBDT or uv add ./OmniGBDT.
Do not use uv add OmniGBDT without ./ or .\\, because that asks the package registry for a published package named omnigbdt instead of using the local folder.
Use OmniGBDT inside an existing uv project
Add OmniGBDT as a normal released dependency:
uv add omnigbdt
Add a sibling checkout as an editable dependency while developing two projects side by side:
uv add --editable ../OmniGBDT
If you copy the OmniGBDT folder inside an existing uv workspace and run:
uv add ./OmniGBDT
then uv may treat it as a workspace member. If you want it to remain a plain path dependency, use:
uv add --no-workspace ./OmniGBDT
On Windows, the same commands are:
uv add .\\OmniGBDT
uv add --no-workspace .\\OmniGBDT
The equivalent manual configuration in pyproject.toml is:
[project]
dependencies = ["omnigbdt"]
[tool.uv.sources]
omnigbdt = { path = "../OmniGBDT", editable = true }
Windows source builds
Local installs (uv add ./OmniGBDT or pip install .) compile the native C++ library during installation.
So on Windows, you must install first:
- Visual Studio Build Tools 2022 (or Visual Studio 2022)
- the
Desktop development with C++workload - MSVC build tools and a working OpenMP-capable compiler
If CMake fails with an error such as:
Running 'nmake' '-?' failed with: no such file or directory
CMAKE_CXX_COMPILER not set, after EnableLanguage
then the package is being built from source but the MSVC toolchain is not available in the current shell.
In this case, try:
- Installing Visual Studio Build Tools 2022 with the C++ workload.
- Reopening the terminal from
x64 Native Tools Command Prompt for VS 2022. - Rerun
uv add ./OmniGBDTorpip install ..
If the toolchain is already installed, also check that CMAKE_GENERATOR is not forcing NMake Makefiles in a shell where nmake.exe is unavailable.
What OmniGBDT Adds
Compared with the upstream GBDTMO repository, OmniGBDT:
- replaces the old
make.shand manual shared-library workflow with standard Python packaging - bundles the native library inside the Python package
- keeps
load_lib(path=None)for advanced or compatibility workflows - adds wheel automation for Linux, macOS, and Windows
- adds public Python callback hooks for custom gradients, Hessians, metrics, and early stopping
- adds optional sklearn-compatible wrappers so users can apply sklearn inspection tools such as permutation-based feature importance
Core native-code deviations from upstream GBDT-MO
Most changes in this fork are packaging and distribution changes. The native C/C++ training code has only been changed in a few targeted ways so far:
- stricter
min_samplesenforcement during split scoring: candidate split points are rejected unless both child branches satisfymin_samples - safe child-node materialization after a split: if a branch cannot be split further, it is emitted as an explicit leaf instead of being left implicit or partially unassigned
- proper root-leaf fallback: if no valid split exists at the root, the model stores a true single-leaf tree and prediction, dump, and load work cleanly for that case
As a consequence, same-seed runs do not necessarily match older buggy runs exactly. Trees can be smaller because invalid small-child splits are filtered earlier, and the control flow through the native code changes accordingly.
Outside of those fixes, the core objective functions, histogram-based split search, and overall training structure are still inherited from the original repository.
Project Provenance
This fork builds directly on the original GBDT-MO implementation by Zhendong Zhang and Cheolkon Jung.
OmniGBDT is intended to make the package easier to build, install, and distribute. It is not the canonical source for the paper, benchmark tables, figures, or research documentation.
For evaluation metrics, dataset-specific experiments, and extended project context, please refer to:
Development
Run tests
For local development with uv, sync the project together with the optional test dependencies:
uv sync --extra test
Then run the test suite with:
uv run pytest
If you only want the smoke coverage in this repository, you can run:
uv run pytest tests/test_smoke.py
Build the documentation locally
The hosted documentation is configured through the repository-level .readthedocs.yaml file and the pinned dependencies in docs/requirements.txt.
To preview the docs locally with the same Sphinx dependency set used on Read the Docs, run:
uv run --no-project --with-requirements docs/requirements.txt sphinx-build -W -n -b html docs _build/html
Build the native library directly
To build the native library:
cmake -S . -B build
cmake --build build --config Release
Versioning
This fork follows Semantic Versioning independently from the upstream GBDT-MO repository.
License
This fork is distributed under the Apache License 2.0. The main license text for this fork is in LICENSE.
Because this repository incorporates and modifies the original GBDT-MO codebase, the original upstream MIT license notice from Zhendong Zhang is preserved in LICENSE.upstream. Additional attribution and fork-specific notice text is provided in NOTICE.
Citation
If you use this project in research, please credit the original paper by Zhang and Jung:
@article{zhang2020gbdt,
title={GBDT-MO: Gradient-boosted decision trees for multiple outputs},
author={Zhang, Zhendong and Jung, Cheolkon},
journal={IEEE transactions on neural networks and learning systems},
volume={32},
number={7},
pages={3156--3167},
year={2020},
publisher={Ieee}
}
Project details
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 omnigbdt-0.2.0.tar.gz.
File metadata
- Download URL: omnigbdt-0.2.0.tar.gz
- Upload date:
- Size: 88.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17156d5fe0c940ec6d7b0b4d1a418a1d22927867de7b382f26ded6d9e12104a9
|
|
| MD5 |
b38f8ab14d837b178158437c330cf6e2
|
|
| BLAKE2b-256 |
f0c8bfdff3242be6042d182c1ff032dcfafe74389215b9020dd8be3a98357965
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0.tar.gz:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0.tar.gz -
Subject digest:
17156d5fe0c940ec6d7b0b4d1a418a1d22927867de7b382f26ded6d9e12104a9 - Sigstore transparency entry: 1217231154
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 86.8 kB
- 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 |
65dba11eb3895cca652aa3d3fcfd1daba19c32a063101af6d012fdf6e02c33f3
|
|
| MD5 |
b1cd614917c5bd033f758df2d79c84ff
|
|
| BLAKE2b-256 |
c61e8f95f1a6dd4f85462cd5bdcf39a87e15fcfe917a49394dbde42b8988e3a5
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp313-cp313-win_amd64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp313-cp313-win_amd64.whl -
Subject digest:
65dba11eb3895cca652aa3d3fcfd1daba19c32a063101af6d012fdf6e02c33f3 - Sigstore transparency entry: 1217231580
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 206.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
887552ad021bd1e0ca6d0f78862bae6a43c1c518e69b8e9e9b09fafee1dc188f
|
|
| MD5 |
429ea879971c8a842bf60809050f9cd1
|
|
| BLAKE2b-256 |
4af28442f65d259f223a1b9cf8f8455b30a39dde23f468063dae19c3352d8104
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
887552ad021bd1e0ca6d0f78862bae6a43c1c518e69b8e9e9b09fafee1dc188f - Sigstore transparency entry: 1217231638
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp313-cp313-macosx_14_0_arm64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp313-cp313-macosx_14_0_arm64.whl
- Upload date:
- Size: 331.0 kB
- Tags: CPython 3.13, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fda15cbda719761a6d518f6bfec5c1bca9d3bee6793beb571b709869a11677e
|
|
| MD5 |
681e311c1bcc2902e24ef5147f25ad5e
|
|
| BLAKE2b-256 |
d87e8eef633dc9d37ede1f4b23d78287aebefff53b5ca4145cb2eb5f7669fc2c
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp313-cp313-macosx_14_0_arm64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp313-cp313-macosx_14_0_arm64.whl -
Subject digest:
1fda15cbda719761a6d518f6bfec5c1bca9d3bee6793beb571b709869a11677e - Sigstore transparency entry: 1217231488
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 86.8 kB
- 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 |
ba66d26e5cb7b16d88854c6b58bbd10a951506c87c6a88cd3f281099e101e200
|
|
| MD5 |
95b87bdd1a730594eb5462a379281770
|
|
| BLAKE2b-256 |
398e52d09425a6cc56e511a434bfeffab40baef198aec8a63275cf57ea6770ce
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp312-cp312-win_amd64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp312-cp312-win_amd64.whl -
Subject digest:
ba66d26e5cb7b16d88854c6b58bbd10a951506c87c6a88cd3f281099e101e200 - Sigstore transparency entry: 1217231880
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 206.1 kB
- Tags: CPython 3.12, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
635cd154dbd107305dab680dc6772d601a84b1c9c9af0c6acfb9cb0c076785cf
|
|
| MD5 |
760e616ee95e76ea80516e2b5e66267f
|
|
| BLAKE2b-256 |
dfcee929bece788cfd2c4e963362c900508a8947530bfc43ccf21260bfac47f2
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
635cd154dbd107305dab680dc6772d601a84b1c9c9af0c6acfb9cb0c076785cf - Sigstore transparency entry: 1217231696
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp312-cp312-macosx_14_0_arm64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp312-cp312-macosx_14_0_arm64.whl
- Upload date:
- Size: 331.0 kB
- Tags: CPython 3.12, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
916deee464563bdb4d09abcb98f1b14605078524b252bdfe6c25d7934a28e7d7
|
|
| MD5 |
ca2ed0cd58d9c25e67338a9d1cdf4c27
|
|
| BLAKE2b-256 |
4147a859e28ca578d8227539fab2a2e281c764ffe795861ab9a2dedeaea5cd25
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp312-cp312-macosx_14_0_arm64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp312-cp312-macosx_14_0_arm64.whl -
Subject digest:
916deee464563bdb4d09abcb98f1b14605078524b252bdfe6c25d7934a28e7d7 - Sigstore transparency entry: 1217231759
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 86.8 kB
- 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 |
ba4e1e2394890f7aa97524f40774ac02b1a89bef3649b7326b83dfdaa3849f2f
|
|
| MD5 |
6e31f4cd420c4f1613a3e8c8562b6da3
|
|
| BLAKE2b-256 |
e475925f6d959839103c159f429ca4983ba82b7f3c9c8cafea84a74338c1fa8c
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp311-cp311-win_amd64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp311-cp311-win_amd64.whl -
Subject digest:
ba4e1e2394890f7aa97524f40774ac02b1a89bef3649b7326b83dfdaa3849f2f - Sigstore transparency entry: 1217231289
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 206.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dacc86d2f387f2139328efc2563d0dfaf6970405d8e39c5f1f3465ff0939b147
|
|
| MD5 |
0dca287c0a6b2cd7d9e63bcb8cbaab8f
|
|
| BLAKE2b-256 |
d39a9a6de852034b8147809ca6e63567f281359ffe7a28558c4eb0eae5bc9fe2
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
dacc86d2f387f2139328efc2563d0dfaf6970405d8e39c5f1f3465ff0939b147 - Sigstore transparency entry: 1217231414
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp311-cp311-macosx_14_0_arm64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp311-cp311-macosx_14_0_arm64.whl
- Upload date:
- Size: 331.0 kB
- Tags: CPython 3.11, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a00330c2a57ba2facc49d31b52a6f6850cae524723171f16318d82543b91421
|
|
| MD5 |
96f8373302e225130fb1a981b851173e
|
|
| BLAKE2b-256 |
6db1bec4775d92c9bb37fc7c9dfd6c6213ac4446b976426d4054ab1825e76bf4
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp311-cp311-macosx_14_0_arm64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp311-cp311-macosx_14_0_arm64.whl -
Subject digest:
3a00330c2a57ba2facc49d31b52a6f6850cae524723171f16318d82543b91421 - Sigstore transparency entry: 1217231832
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 86.8 kB
- 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 |
4b050f94ecc1b7f9ed4caf696a34b251823ecb35c97d76b06cf7a421e754b3aa
|
|
| MD5 |
715680602d4a3ceca8aea6c76d142814
|
|
| BLAKE2b-256 |
712292a0e389cc119eac754a2644c72429b099d964105f38f8fa2b35b69aaedf
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp310-cp310-win_amd64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp310-cp310-win_amd64.whl -
Subject digest:
4b050f94ecc1b7f9ed4caf696a34b251823ecb35c97d76b06cf7a421e754b3aa - Sigstore transparency entry: 1217231944
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 206.1 kB
- Tags: CPython 3.10, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3db6ebe5f0cfce6c1e52b61f14ebe76b75a9c0be3fd383e1cb11eb181bfb8c58
|
|
| MD5 |
8d5488a178ef8513a2ef152c0004fed4
|
|
| BLAKE2b-256 |
74f3d8d2ccb81af21da0f892981df075a8b9a915accff65d95b511bd2ee65e31
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
3db6ebe5f0cfce6c1e52b61f14ebe76b75a9c0be3fd383e1cb11eb181bfb8c58 - Sigstore transparency entry: 1217231324
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnigbdt-0.2.0-cp310-cp310-macosx_14_0_arm64.whl.
File metadata
- Download URL: omnigbdt-0.2.0-cp310-cp310-macosx_14_0_arm64.whl
- Upload date:
- Size: 331.0 kB
- Tags: CPython 3.10, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
242360a80a38e86076ed725b9297c1eefc43955d42058ad759396499eb50d3ba
|
|
| MD5 |
9c82887de032c7c5d2316c843453b217
|
|
| BLAKE2b-256 |
3b2f093dfe4d97acfcaeaf62f713b246403163676679b07bfc695d68f5faa7d6
|
Provenance
The following attestation bundles were made for omnigbdt-0.2.0-cp310-cp310-macosx_14_0_arm64.whl:
Publisher:
wheels.yml on University-of-Aruba/OmniGBDT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigbdt-0.2.0-cp310-cp310-macosx_14_0_arm64.whl -
Subject digest:
242360a80a38e86076ed725b9297c1eefc43955d42058ad759396499eb50d3ba - Sigstore transparency entry: 1217231221
- Sigstore integration time:
-
Permalink:
University-of-Aruba/OmniGBDT@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/University-of-Aruba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@20e14e5d6a70d5898268bf9d2780776e14d19031 -
Trigger Event:
push
-
Statement type: