Fairness-aware decision tree and random forest classifiers
Project description
fair-trees
This package is the implementation of the paper "Fair tree classifier using strong demographic parity" (Pereira Barata et al., Machine Learning, 2023).
It provides fairness-aware decision tree and random forest classifiers built on a modified scikit-learn tree engine. The splitting criterion jointly optimises predictive performance and statistical parity with respect to one or more sensitive (protected) attributes Z.
Installation
pip install fair-trees
Or from source:
pip install -e . --no-build-isolation
Quick start
import numpy as np
import pandas as pd
from fair_trees import FairDecisionTreeClassifier, FairRandomForestClassifier, load_datasets
datasets = load_datasets()
data = datasets["bank_marketing"] # "adult" is also available
# Preprocessing — the bundled data contains raw DataFrames
X = pd.get_dummies(data["X"]).values.astype(np.float64)
y = pd.factorize(data["y"].iloc[:, 0])[0]
Z = np.column_stack([pd.factorize(data["Z"][col])[0] for col in data["Z"].columns])
Fairness-aware decision tree
clf = FairDecisionTreeClassifier(
theta=0.3, # trade-off: 0 = pure accuracy, 1 = pure fairness
Z_agg="max", # how to aggregate across sensitive attributes / classes
max_depth=5,
)
clf.fit(X, y, Z=Z)
y_prob = clf.predict_proba(X)[:, 1]
Fairness-aware random forest
rf = FairRandomForestClassifier(
n_estimators=100,
theta=0.3,
Z_agg="max",
max_depth=5,
random_state=42,
)
rf.fit(X, y, Z=Z)
y_prob = rf.predict_proba(X)[:, 1]
Evaluation
The package does not ship its own metric functions, but the two scores that
matter—ROC-AUC (predictive quality) and SDP (statistical
parity)—can be computed from scipy in a few lines.
ROC-AUC via the Mann–Whitney U statistic
from scipy.stats import mannwhitneyu
roc_auc = mannwhitneyu(
y_prob[y == 1],
y_prob[y == 0],
).statistic / (sum(y == 1) * sum(y == 0))
print(f"ROC-AUC: {roc_auc:.4f}")
Statistical Disparity (SDP) score
SDP measures how well the model's predictions are separated by a protected attribute. It is defined as:
SDP = 1 − |AUC_Z − 0.5| × 2
where AUC_Z is computed the same way as ROC-AUC but treating each
sensitive attribute/class in Z as the positive label.
When Z contains multiple columns (attributes) and/or more than two
classes per attribute, the per-group AUC values must be aggregated. The
Z_agg parameter controls this—matching the logic used inside the
splitting criterion:
Z_agg |
Behaviour |
|---|---|
"mean" |
Average the per-group SDP scores (across classes within an attribute, then across attributes). |
"max" |
Take the worst-case (lowest) SDP across all groups—i.e. the group with the highest disparity dominates. |
import numpy as np
from scipy.stats import mannwhitneyu
def sdp_score(y_prob, Z, Z_agg="max"):
"""Compute the Statistical Disparity (SDP) score.
Parameters
----------
y_prob : array-like of shape (n_samples,)
Predicted probabilities for the positive class.
Z : array-like of shape (n_samples,) or (n_samples, n_attributes)
Sensitive / protected attribute(s). Each column is treated as a
separate attribute; each unique value within a column is a class.
Z_agg : {"mean", "max"}, default="max"
Aggregation method across attributes and classes.
- "mean": average SDP across all groups.
- "max": return the worst-case (lowest) SDP.
Returns
-------
float
SDP in [0, 1]. 1 = perfect parity, 0 = maximum disparity.
"""
Z = np.atleast_2d(np.asarray(Z).T).T # ensure (n_samples, n_attr)
y_prob = np.asarray(y_prob)
sdp_values = []
for attr_idx in range(Z.shape[1]):
z_col = Z[:, attr_idx]
classes = np.unique(z_col)
attr_sdps = []
for cls in classes:
mask_pos = z_col == cls
mask_neg = ~mask_pos
if mask_pos.sum() == 0 or mask_neg.sum() == 0:
continue
auc_z = mannwhitneyu(
y_prob[mask_pos],
y_prob[mask_neg],
).statistic / (mask_pos.sum() * mask_neg.sum())
attr_sdps.append(1 - abs(auc_z - 0.5) * 2)
if not attr_sdps:
continue
if Z_agg == "mean":
sdp_values.append(np.mean(attr_sdps))
else: # "max" → worst case = minimum SDP
sdp_values.append(np.min(attr_sdps))
if not sdp_values:
return 1.0 # no disparity measurable
if Z_agg == "mean":
return float(np.mean(sdp_values))
else:
return float(np.min(sdp_values))
Putting it all together
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import mannwhitneyu
from fair_trees import FairRandomForestClassifier, load_datasets
# Load and preprocess
datasets = load_datasets()
data = datasets["bank_marketing"]
X = pd.get_dummies(data["X"]).values.astype(np.float64)
y = pd.factorize(data["y"].iloc[:, 0])[0]
Z = np.column_stack([pd.factorize(data["Z"][col])[0] for col in data["Z"].columns])
# Sweep over theta values
thetas = [0, 0.2, 0.4, 0.6, 0.8, 1.0]
aucs, sdps = [], []
for theta in thetas:
rf = FairRandomForestClassifier(
n_estimators=100, theta=theta, Z_agg="max", max_depth=5, random_state=42,
)
rf.fit(X, y, Z=Z)
y_prob = rf.predict_proba(X)[:, 1]
roc_auc = mannwhitneyu(
y_prob[y == 1], y_prob[y == 0],
).statistic / (sum(y == 1) * sum(y == 0))
sdp = sdp_score(y_prob, Z, Z_agg="max")
aucs.append(roc_auc)
sdps.append(sdp)
print(f"theta={theta:.1f} ROC-AUC={roc_auc:.4f} SDP={sdp:.4f}")
# Plot
fig, (ax1, ax3) = plt.subplots(1, 2, figsize=(14, 5))
# Left — Metrics vs. theta (dual axis)
ax1.set_xlabel("theta")
ax1.set_ylabel("ROC-AUC", color="tab:blue")
ax1.plot(thetas, aucs, "o-", color="tab:blue", label="ROC-AUC")
ax1.tick_params(axis="y", labelcolor="tab:blue")
ax2 = ax1.twinx()
ax2.set_ylabel("SDP", color="tab:orange")
ax2.plot(thetas, sdps, "s--", color="tab:orange", label="SDP")
ax2.tick_params(axis="y", labelcolor="tab:orange")
ax1.set_title("Metrics vs. theta")
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax1.legend(lines1 + lines2, labels1 + labels2, loc="lower center")
# Right — ROC-AUC vs. SDP frontier
ax3.plot(sdps, aucs, "o-", color="tab:green")
for i, theta in enumerate(thetas):
ax3.annotate(f"θ={theta}", (sdps[i], aucs[i]), textcoords="offset points",
xytext=(8, 4), fontsize=9)
ax3.set_xlabel("SDP (fairness →)")
ax3.set_ylabel("ROC-AUC (performance →)")
ax3.set_title("Performance–Fairness Frontier")
fig.suptitle("Performance-Fairness Trade-off", fontsize=14)
fig.tight_layout()
plt.savefig("tradeoff.png", dpi=150, bbox_inches="tight")
plt.show()
Key parameters
| Parameter | Default | Description |
|---|---|---|
theta |
0.0 |
Trade-off weight in [0, 1]. 0 = standard (unfair) tree; 1 = splits optimise only for fairness. |
Z_agg |
"max" |
Aggregation over sensitive groups: "mean" (average) or "max" (worst-case). |
Z |
None |
Sensitive attributes, passed to .fit(). Array of shape (n_samples,) or (n_samples, n_attributes). |
All other parameters (max_depth, min_samples_split, n_estimators,
etc.) behave identically to their scikit-learn counterparts.
Citation
If you use this software, please cite the paper:
Pereira Barata, A., Takes, F.W., van den Herik, H.J., & Veenman, C. (2023). Fair tree classifier using strong demographic parity. Machine Learning. doi:10.1007/s10994-023-06376-z
See CITATION.cff for a machine-readable citation file.
License
BSD-3-Clause
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 fair_trees-3.1.8.tar.gz.
File metadata
- Download URL: fair_trees-3.1.8.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9499cf95a93a8098ef13fcae473429fe5b5004d25f29412db870f040bfd018c4
|
|
| MD5 |
c435b356dc6535d02f398c507f5d1872
|
|
| BLAKE2b-256 |
7626b0a79e6db70f5759d2f673cded453be55e217c311c69139f53b7a4634474
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8.tar.gz:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8.tar.gz -
Subject digest:
9499cf95a93a8098ef13fcae473429fe5b5004d25f29412db870f040bfd018c4 - Sigstore transparency entry: 975129589
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 3.5 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b6b40633c8fe5504c7a1cfbe2b0d1fb76abf2e7116351023ffc01155c600b7a
|
|
| MD5 |
b2d9ab95a7e0a2c5c7a54c8a04a64cf8
|
|
| BLAKE2b-256 |
90c8b625a5a4d4d967bf1feb152171473d68e8a4ee929ebc71ad690eef4f2f21
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp314-cp314-win_amd64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp314-cp314-win_amd64.whl -
Subject digest:
9b6b40633c8fe5504c7a1cfbe2b0d1fb76abf2e7116351023ffc01155c600b7a - Sigstore transparency entry: 975129617
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.14, 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 |
dd1660db0ab30405102cf942b095ca0097cc50c2842313be225accb539151947
|
|
| MD5 |
8d954c514b49a3ed982d7ae48f699ce3
|
|
| BLAKE2b-256 |
be92a1a8a4ae0e155268100051da93d0695a191dd468f10d8aae17f9cbe92a52
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
dd1660db0ab30405102cf942b095ca0097cc50c2842313be225accb539151947 - Sigstore transparency entry: 975129626
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.14, 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 |
6c83aa02e63449dadadfa46b3aa8e167b215f9cfeb46bc5d6474ec481316cae2
|
|
| MD5 |
575cc52e99b380885270e068c932c6bf
|
|
| BLAKE2b-256 |
0d1b4cba3de167eee7d8f8e4156d2f9c4e37b572b0d71978a01c8ba7bf1523ae
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
6c83aa02e63449dadadfa46b3aa8e167b215f9cfeb46bc5d6474ec481316cae2 - Sigstore transparency entry: 975129592
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 3.4 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 |
56ebf2dff07a382b0233522df387bbb2fcebffa202fb749263b7ff47a9108665
|
|
| MD5 |
04614c911b70df977fa58f30b6978c0d
|
|
| BLAKE2b-256 |
f97e1d2c269dee6f8c2c3dc6598180fd6ebadef1b3ffe7f0637c256c44576256
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp313-cp313-win_amd64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp313-cp313-win_amd64.whl -
Subject digest:
56ebf2dff07a382b0233522df387bbb2fcebffa202fb749263b7ff47a9108665 - Sigstore transparency entry: 975129621
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.0 MB
- 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 |
ab0d79e9631f073fd6fd020e2b06581d3566dd8720213e6763b011f3c42f4731
|
|
| MD5 |
e3f564abc5406b780542ad7a5b9d6e3f
|
|
| BLAKE2b-256 |
d6490d3bb3c8dfcb290c578c30069bbdbe79d0f52d1cbe21414043b93ff5e934
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
ab0d79e9631f073fd6fd020e2b06581d3566dd8720213e6763b011f3c42f4731 - Sigstore transparency entry: 975129604
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.5 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 |
0bbe5ad4ad8f5aa8f8c8102d439acfa2005274d0f4b3e6f640f24fe54861395f
|
|
| MD5 |
4018305ab7d15f20013fbe888a7397fb
|
|
| BLAKE2b-256 |
96612f119c038d7f15e30317699c9133e02b4e35c3d65d3e2fdd1cee75a8baef
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
0bbe5ad4ad8f5aa8f8c8102d439acfa2005274d0f4b3e6f640f24fe54861395f - Sigstore transparency entry: 975129611
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 3.5 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 |
1407f080c1085dcdb5b420e45482958d2a4be516947ac0b54e5ca55221d070dc
|
|
| MD5 |
c370efc14e145a1b50a6b370cb9e959c
|
|
| BLAKE2b-256 |
fc0ada1f98a54085d4ed52bbba83490b3153bda9a2c5a12ca39b955a8d628d3b
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp312-cp312-win_amd64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp312-cp312-win_amd64.whl -
Subject digest:
1407f080c1085dcdb5b420e45482958d2a4be516947ac0b54e5ca55221d070dc - Sigstore transparency entry: 975129607
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.0 MB
- 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 |
01f0f93c68238540f3f156b17b2fd1bc6e93d6bc5b1d4db76c80a6919450e4c6
|
|
| MD5 |
241ef9a353159b4ced810375943ed90d
|
|
| BLAKE2b-256 |
715e77ef612d98d175492bc8969bcc3fa25e32069e0d61a9a99fdda57af2afa8
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
01f0f93c68238540f3f156b17b2fd1bc6e93d6bc5b1d4db76c80a6919450e4c6 - Sigstore transparency entry: 975129624
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 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 |
498265835161a3b732f747af359c54f0b34a2cbe0e3c9a5375a02ac826aadde6
|
|
| MD5 |
a0abb71ab782024bf0908babec174ae5
|
|
| BLAKE2b-256 |
6cd77e4a5752c7d7e86bca152c0add5ac58e7a942c1128fb15b05fdaaca1a94c
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
498265835161a3b732f747af359c54f0b34a2cbe0e3c9a5375a02ac826aadde6 - Sigstore transparency entry: 975129600
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 3.5 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 |
a8ed52c250350797bafa2c5f66ac1b9f674f03ad9e5c0f3f75ac0e2e0e282c88
|
|
| MD5 |
c4aea32a32aad8f77826dfb01e841e91
|
|
| BLAKE2b-256 |
2394a7891203f0b076f478ed0691606ce686548d94b50384f9e2fec55eee0da3
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp311-cp311-win_amd64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp311-cp311-win_amd64.whl -
Subject digest:
a8ed52c250350797bafa2c5f66ac1b9f674f03ad9e5c0f3f75ac0e2e0e282c88 - Sigstore transparency entry: 975129595
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.1 MB
- 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 |
2bcb6a400337c327aa8ceb7f00150d59e68cf5b03e4b3e8b57131a8f31d5a1bb
|
|
| MD5 |
9945eb90e9328b2afa3493c96fe7c09a
|
|
| BLAKE2b-256 |
6eb9e2a4cc9c7820c2217f711f9d29d116b5b7cf9b545f4b34611cc2e591a558
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
2bcb6a400337c327aa8ceb7f00150d59e68cf5b03e4b3e8b57131a8f31d5a1bb - Sigstore transparency entry: 975129620
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 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 |
68a92d544a11b53a2018d74db5b23687441905561aea6ea5ea6bd1519d93e178
|
|
| MD5 |
c96edb14621b5cecf41199f3f180acee
|
|
| BLAKE2b-256 |
f435d7cfbcd1e5c2306ac731ebc0eb50b58feeb50bc517fae2569958c4c81078
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
68a92d544a11b53a2018d74db5b23687441905561aea6ea5ea6bd1519d93e178 - Sigstore transparency entry: 975129623
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 3.5 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 |
46b18ae511b112a617be6c37f005e5575af7cce47f6efc4937a9618efe5ee0d6
|
|
| MD5 |
0ce3c9f95dfd1e04980e14efedd77246
|
|
| BLAKE2b-256 |
60af14733999ad2895ad5c069f608e87100724ba6640b278a35347bab46b9434
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp310-cp310-win_amd64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp310-cp310-win_amd64.whl -
Subject digest:
46b18ae511b112a617be6c37f005e5575af7cce47f6efc4937a9618efe5ee0d6 - Sigstore transparency entry: 975129619
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.1 MB
- 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 |
6c1e4ed224629338094e9ba653ee985d70f22fc4260e344e12b4555b5b307a38
|
|
| MD5 |
1e75357426d62b1f2e00e04f8731ea30
|
|
| BLAKE2b-256 |
a76a7a27d06f2742045b4af2e2507f17edad2dc47f2c315dbddb2611f4622fda
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
6c1e4ed224629338094e9ba653ee985d70f22fc4260e344e12b4555b5b307a38 - Sigstore transparency entry: 975129594
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type:
File details
Details for the file fair_trees-3.1.8-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: fair_trees-3.1.8-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 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 |
9538d90d6d20f5e2a2ba9836fd560c05791470e749fdbbf98304f86ac2ca7f1e
|
|
| MD5 |
615390e1a5c3c6bdf74bd4158b15d9a0
|
|
| BLAKE2b-256 |
81f4581d3f9c605245929ac37f3b2814c8ba7960a1e9e33c5faf1c78d7db6b22
|
Provenance
The following attestation bundles were made for fair_trees-3.1.8-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
build_wheels.yml on pereirabarataap/fair-trees
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fair_trees-3.1.8-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
9538d90d6d20f5e2a2ba9836fd560c05791470e749fdbbf98304f86ac2ca7f1e - Sigstore transparency entry: 975129602
- Sigstore integration time:
-
Permalink:
pereirabarataap/fair-trees@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Branch / Tag:
refs/tags/v3.2.3 - Owner: https://github.com/pereirabarataap
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@fbe30096a5a3b9301662dcdc679201bfe769dc4c -
Trigger Event:
release
-
Statement type: