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.8.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.8-cp314-cp314-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.14Windows x86-64

fair_trees-3.1.8-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.8-cp314-cp314-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

fair_trees-3.1.8-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.8-cp313-cp313-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

fair_trees-3.1.8-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.8-cp312-cp312-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

fair_trees-3.1.8-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.8-cp311-cp311-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

fair_trees-3.1.8-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.8-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.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

Hashes for fair_trees-3.1.8.tar.gz
Algorithm Hash digest
SHA256 9499cf95a93a8098ef13fcae473429fe5b5004d25f29412db870f040bfd018c4
MD5 c435b356dc6535d02f398c507f5d1872
BLAKE2b-256 7626b0a79e6db70f5759d2f673cded453be55e217c311c69139f53b7a4634474

See more details on using hashes here.

Provenance

The following attestation bundles were made for fair_trees-3.1.8.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.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

Hashes for fair_trees-3.1.8-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9b6b40633c8fe5504c7a1cfbe2b0d1fb76abf2e7116351023ffc01155c600b7a
MD5 b2d9ab95a7e0a2c5c7a54c8a04a64cf8
BLAKE2b-256 90c8b625a5a4d4d967bf1feb152171473d68e8a4ee929ebc71ad690eef4f2f21

See more details on using hashes here.

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

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.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd1660db0ab30405102cf942b095ca0097cc50c2842313be225accb539151947
MD5 8d954c514b49a3ed982d7ae48f699ce3
BLAKE2b-256 be92a1a8a4ae0e155268100051da93d0695a191dd468f10d8aae17f9cbe92a52

See more details on using hashes here.

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

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.8-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.8-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6c83aa02e63449dadadfa46b3aa8e167b215f9cfeb46bc5d6474ec481316cae2
MD5 575cc52e99b380885270e068c932c6bf
BLAKE2b-256 0d1b4cba3de167eee7d8f8e4156d2f9c4e37b572b0d71978a01c8ba7bf1523ae

See more details on using hashes here.

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

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.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

Hashes for fair_trees-3.1.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 56ebf2dff07a382b0233522df387bbb2fcebffa202fb749263b7ff47a9108665
MD5 04614c911b70df977fa58f30b6978c0d
BLAKE2b-256 f97e1d2c269dee6f8c2c3dc6598180fd6ebadef1b3ffe7f0637c256c44576256

See more details on using hashes here.

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

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.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ab0d79e9631f073fd6fd020e2b06581d3566dd8720213e6763b011f3c42f4731
MD5 e3f564abc5406b780542ad7a5b9d6e3f
BLAKE2b-256 d6490d3bb3c8dfcb290c578c30069bbdbe79d0f52d1cbe21414043b93ff5e934

See more details on using hashes here.

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

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.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0bbe5ad4ad8f5aa8f8c8102d439acfa2005274d0f4b3e6f640f24fe54861395f
MD5 4018305ab7d15f20013fbe888a7397fb
BLAKE2b-256 96612f119c038d7f15e30317699c9133e02b4e35c3d65d3e2fdd1cee75a8baef

See more details on using hashes here.

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

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.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

Hashes for fair_trees-3.1.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1407f080c1085dcdb5b420e45482958d2a4be516947ac0b54e5ca55221d070dc
MD5 c370efc14e145a1b50a6b370cb9e959c
BLAKE2b-256 fc0ada1f98a54085d4ed52bbba83490b3153bda9a2c5a12ca39b955a8d628d3b

See more details on using hashes here.

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

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.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 01f0f93c68238540f3f156b17b2fd1bc6e93d6bc5b1d4db76c80a6919450e4c6
MD5 241ef9a353159b4ced810375943ed90d
BLAKE2b-256 715e77ef612d98d175492bc8969bcc3fa25e32069e0d61a9a99fdda57af2afa8

See more details on using hashes here.

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

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.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 498265835161a3b732f747af359c54f0b34a2cbe0e3c9a5375a02ac826aadde6
MD5 a0abb71ab782024bf0908babec174ae5
BLAKE2b-256 6cd77e4a5752c7d7e86bca152c0add5ac58e7a942c1128fb15b05fdaaca1a94c

See more details on using hashes here.

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

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.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

Hashes for fair_trees-3.1.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a8ed52c250350797bafa2c5f66ac1b9f674f03ad9e5c0f3f75ac0e2e0e282c88
MD5 c4aea32a32aad8f77826dfb01e841e91
BLAKE2b-256 2394a7891203f0b076f478ed0691606ce686548d94b50384f9e2fec55eee0da3

See more details on using hashes here.

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

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.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2bcb6a400337c327aa8ceb7f00150d59e68cf5b03e4b3e8b57131a8f31d5a1bb
MD5 9945eb90e9328b2afa3493c96fe7c09a
BLAKE2b-256 6eb9e2a4cc9c7820c2217f711f9d29d116b5b7cf9b545f4b34611cc2e591a558

See more details on using hashes here.

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

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.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 68a92d544a11b53a2018d74db5b23687441905561aea6ea5ea6bd1519d93e178
MD5 c96edb14621b5cecf41199f3f180acee
BLAKE2b-256 f435d7cfbcd1e5c2306ac731ebc0eb50b58feeb50bc517fae2569958c4c81078

See more details on using hashes here.

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

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.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

Hashes for fair_trees-3.1.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 46b18ae511b112a617be6c37f005e5575af7cce47f6efc4937a9618efe5ee0d6
MD5 0ce3c9f95dfd1e04980e14efedd77246
BLAKE2b-256 60af14733999ad2895ad5c069f608e87100724ba6640b278a35347bab46b9434

See more details on using hashes here.

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

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.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c1e4ed224629338094e9ba653ee985d70f22fc4260e344e12b4555b5b307a38
MD5 1e75357426d62b1f2e00e04f8731ea30
BLAKE2b-256 a76a7a27d06f2742045b4af2e2507f17edad2dc47f2c315dbddb2611f4622fda

See more details on using hashes here.

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

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.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_trees-3.1.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9538d90d6d20f5e2a2ba9836fd560c05791470e749fdbbf98304f86ac2ca7f1e
MD5 615390e1a5c3c6bdf74bd4158b15d9a0
BLAKE2b-256 81f4581d3f9c605245929ac37f3b2814c8ba7960a1e9e33c5faf1c78d7db6b22

See more details on using hashes here.

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

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