Skip to main content

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()

Performance-Fairness Trade-off

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fair_trees-3.1.9.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fair_trees-3.1.9-cp314-cp314-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.14Windows x86-64

fair_trees-3.1.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fair_trees-3.1.9-cp314-cp314-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fair_trees-3.1.9-cp313-cp313-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.13Windows x86-64

fair_trees-3.1.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fair_trees-3.1.9-cp313-cp313-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fair_trees-3.1.9-cp312-cp312-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.12Windows x86-64

fair_trees-3.1.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fair_trees-3.1.9-cp312-cp312-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

fair_trees-3.1.9-cp311-cp311-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.11Windows x86-64

fair_trees-3.1.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fair_trees-3.1.9-cp311-cp311-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

fair_trees-3.1.9-cp310-cp310-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10Windows x86-64

fair_trees-3.1.9-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fair_trees-3.1.9-cp310-cp310-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file fair_trees-3.1.9.tar.gz.

File metadata

  • Download URL: fair_trees-3.1.9.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

Hashes for fair_trees-3.1.9.tar.gz
Algorithm Hash digest
SHA256 2f2ec55e5e1d53ea8ac5cb0b7aea6df304e582e0718aaa55229e8b6abacba23c
MD5 3a289c4f4c0fca36f5adaaf21536fbd2
BLAKE2b-256 bc3afc5c2a49f8f263dbac9cc3a50a81f9a1650a49ecd3316bb6f5253b57e3ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9.tar.gz:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fair_trees-3.1.9-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

Hashes for fair_trees-3.1.9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e264166813841ec08769737ef3430ac842b2e453b5d07645a8a680da3f801d4c
MD5 821060ce88322ada1fe1d959f00abae7
BLAKE2b-256 32094f35ad88c4807c8e08c814b347dcaedf37bd52efdd36afbd425a38a15ba9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp314-cp314-win_amd64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e855857905e3b0f67d0a70e9b8567403b34aa0e5762f28b671ab6c3e05204648
MD5 063a8d776b11737b1e8fbba5e5b3949d
BLAKE2b-256 65e8dbac5b6800e5dc9c0fcaabf1f59d45dbc9fd993884f956b249ccbb99151b

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.9-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b231c1b1d9605aa53588db4909e0331843e0acc4579ba49b3b01207f70bca12e
MD5 0ab512d97f2ef36cc328b6a8b0006dc4
BLAKE2b-256 175e37471420c5529a3be9958019f8735266b40a0c3fa1f6a05eb27fc5710d03

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: fair_trees-3.1.9-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

Hashes for fair_trees-3.1.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c0bf6724d949b6c4ebf83462c911383f898bb911d3b17d3973e331fe1f0b4b79
MD5 e752ad38bd386874ffa7e9d4ebd2cbd5
BLAKE2b-256 33996bdac8fee256c3e29b8702413933f8e1d2394037b8b897bce54c06303243

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp313-cp313-win_amd64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7692d71a3d5f40bde253b58ba9ac90c97910991a670d6300f43dee2d6d311627
MD5 ef843f95398ef9e61bb8f7095bcf44ca
BLAKE2b-256 f9a1aad115a0854a1ea0c8f1a61093c96eb3d9c0d0f3f721e4735a1e21a8b6e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 859bb8dbff340d2fe61b3eb1a2750960331c899320e464087f8700b0df514a34
MD5 ca40b17e339f85822071f47bedcfd886
BLAKE2b-256 353d0dfe713add94fcd72c2ad63ee4ad61948676cd13d4f8cd55544fd0050550

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: fair_trees-3.1.9-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

Hashes for fair_trees-3.1.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6a6e4518729ce18147ffc2842aab155cff0ea6242670f61a8a6b788452b7b9b0
MD5 3bf6431f12fea66cbfd1c7e9bc8ba6d7
BLAKE2b-256 1b52de72bf0fd3061815a887902e82e60c1e55c2bf9c4777352d4ed0f8713e58

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp312-cp312-win_amd64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 89c85939ed5b928ed895ccf92cfdeb3f275bf8b3ed74e43ad842411f142f707a
MD5 c200bbc77f2cd211afc38c4877737162
BLAKE2b-256 6507821dfa657562271641ae65628fcc9320806ce6af4d3556e3d123f09b92a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eff722de92011c0c86007ae78f767781c8f8211c71efe51706d165bf837aa020
MD5 c1ae651c8c06ddef9694c6f6e735adb3
BLAKE2b-256 40afc61b5b5faccc3f0ca738dbda5dc638fd19860f65b30ac3d47902ee217471

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: fair_trees-3.1.9-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

Hashes for fair_trees-3.1.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0e18c0deb9f1f482b4fd4127c4a38d3ee231528f2ee9beedbb7cbd5056cd9b4a
MD5 e88b3fe7bdba9d6946436ab5397b0e28
BLAKE2b-256 70be003527e6c911e5273f6fb1d356ed46fcbf7ea2edf70e028fb8268ab125f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp311-cp311-win_amd64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 82156be49fcf280a7835f852747628304be689fd84638deab40d559ea492d3f4
MD5 c1dfbf5c5491a2a84bc3bf26e8018f79
BLAKE2b-256 7e9859696249bb714792003e6bff2d477f4db5e12890db27cef846f96534a16f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7cb6043d534271dcd78ffcd45ec077e46132708ca0e941b10f9db432c460fe2d
MD5 90bd106d2967e73ac4a39a91d8fd3e98
BLAKE2b-256 8be0c83b6639cad5e0098d5bd1216d013e8fbc771253e34c1152d182ebdb2198

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: fair_trees-3.1.9-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

Hashes for fair_trees-3.1.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e77fd113ba67999088f602db05a3db3534124995a2e8043fb15e47fe73752ca2
MD5 fb274436abffce54e48d6d40bf82b195
BLAKE2b-256 77f149f6ef38b891739ea6f97ba38a94e679aa1a4ad8c6fb907a1bf95c06021a

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp310-cp310-win_amd64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.9-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4581dbf8896c9a69de3646fedcda59b4511690d449dcb71da7944ec726560a55
MD5 ae8727b6e17b2689f512ba7152571745
BLAKE2b-256 54419b5cc4e7025099632af91fb807d7e416448d9c31a6867808a70756471625

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fair_trees-3.1.9-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e4206468468d36d136ef8563f845f00db72249b1f4965dfbc6f3da57ca97dfe
MD5 75ef3c1db7316114b1cb61167340c717
BLAKE2b-256 047394dceadcffafe1c911365a4c7b14a1b645d4c662d9a726a62b67d9efbe2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.9-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on pereirabarataap/fair-trees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page