Skip to main content

A high performance package for performing machine learning observability

Project description

fair-ml

Custom implementation of bias analysis for machine learning models. Based on the AWS SageMaker bias models, though this accommodates bias based on protected classes not used in model training.

Working on v0.2.0 to add some more runtime drift proxies, provide better runtime support, and make the crate available in both pure Rust and Python contexts.

This Python Library and Rust crate serves to treat ML Observability as a first class principle for ML systems, by making it accessible, and exploring more effective methods of implementing real time systems.

Background Modules Usage Future

Background

Governance in AI systems is becoming more important. Many large cloud providers and other vendors provide services for these analyses, but they are expensive and sometimes over-engineered. The overall goal of this project is to provide a lightweight monitoring framework for machine learning models, that is hopefully easy to use.

The core idea of this project is to provide composable pieces to create you own ML observavility service. The tools available on the market force users into a rather rigid pattern of use, and are built in such a way that they are not "editable" after definition, at least the tools I have used in my experience. For example, once the "schema" is defined for a model, you cannot later add a non model feature to the monitoring set for bias, where logically, this should not be a constraint as long as there is an ability to define a mapping between inference scores, ground truth, and feature values.

Bias analysis works by seperating a feature into two demographic groups, and predictions and outcomes into positive and negative outcomes. The goal in this analysis is to quantify the divergance between how the model and true outcomes favors one demographic.

To do so everything is segmented into two distinct groups representing favored and disfavord groups, though labeling one group as "favored" is a semantic detail. In reality, it does not matter which group is which, only that there is logical segmentation logic to distinctly define 2 groups.

Additionally, there is a module to monitor overall performance at runtime. The nature of ML makes it difficult to have unit tests, and to ensure performance at runtime. ML deployments are different from other software deployments given the inability to ensure accurate results. Our assertions need to be done after the fact. Though, most deploy the model and let it run. There often is not a consistent effort to ensure accuracy in the model predictions over the entire lifetime of the model. There are services available to do this with different vendors (ie AWS SageMaker), but this requires significant cost and compute; they also tend to be slow.

The goal of this package is to offer that kind of ML observability at no cost, and limited resources needed.

A newer goal of this package is to make an attempt at introducing utilities that can close the gap between how ML observability is done and how traditional system style observability is done. The gap is typically in the time it takes to get feedback, and how it is done. ML observability is often implement as batch data jobs on some cron cadence. It does not feel as smooth or as elegant as system observability, and the feedback time is tied to the cadence of the cron schedule. Version v0.2.0 introduces streaming types, that can accumulate data and create a smoother, real time observability cadence, more to come on this in future versions. The streaming types in v0.2.0 can be (hoepfully) easily composed to create a long running service. The internal representation in Rust has a very minimal memory footprint, so many different datasets can be used in a single process with relatively low resource constraint.

Other changes in v0.2.0 to exisiting logic is to refactor internal logic for performance and clean up the Python surface to have better annotations for static analysis.

The logic is written in Rust, with a python interface to let users pass in some different types (ie not only numpy arrays but also python lists, if for whatever reason someones likes to use python lists instead of numpy arrays), and an easy to use interface. The performance penalty there is minimal and makes use quite a bit easier. I generally feel that users do not need to pay someone a lot of money for services that do not require it.

This package would not be possbile without the great work done by the contributors of PYO3, that work is wonderdul.

Modules

When I have more time, I will write a better wiki as documentation, but for now the documentation for the public api surface lives here.

bias.data_bias

Batch pre-training bias analysis on feature and ground truth data.


bias.model_bias

Batch post-training bias analysis on feature, ground truth, and prediction data.

bias.streaming

Stateful streaming bias monitors for long-running services. Data is accumulated incrementally and evaluated against a fixed baseline.

drift.base

Batch distributional drift detection. Computes a drift score by comparing a runtime dataset against a fixed baseline distribution.


drift.streaming

Stateful streaming drift monitors. Data is accumulated incrementally; drift is computed against a fixed baseline at any point without needing to retain the raw stream.

Two flush strategies are provided for each data type:

Flush (StreamingContinuousDataDriftFlush, StreamingCategoricalDataDriftFlush) — accumulated data is periodically discarded. Accepts flush_rate (max samples before auto-flush) and flush_cadence (seconds between auto-flushes).

Decay (StreamingContinuousDataDriftDecay, StreamingCategoricalDataDriftDecay) — older samples are down-weighted over time using exponential decay. Accepts decay_half_life (in seconds).

All four classes share this interface:

  • update_stream(example) — accumulate a single example
  • update_stream_batch(runtime_data) — accumulate a batch
  • reset_baseline(new_baseline) — replace the baseline
  • compute_drift(drift_metric) -> float
  • compute_drift_multiple_criteria(drift_metrics) -> list[float]
  • export_snapshot() -> dict
  • export_baseline() -> dict
  • total_samples: int
  • num_bins: int / n_bins: int

Flush variants additionally expose:

  • flush() — manually discard accumulated runtime data
  • last_flush() -> int — Unix timestamp of the last flush

model_perf

Batch model performance analysis and runtime drift evaluation.


model_perf.streaming

Stateful streaming model performance monitors. Maintains a baseline and accumulates runtime data incrementally.

BinaryClassificationStreaming[T: LabelBound]

  • __init__(label, y_true, y_pred)label is the positive class label; any type implementing __eq__
  • update_stream(y_true, y_pred)
  • update_stream_batch(y_true, y_pred)
  • reset_baseline(y_true, y_pred)
  • reset_baseline_and_label(label, y_true, y_pred) — only method that allows changing the label
  • flush()
  • performance_snapshot() -> PerformanceSnapshot
  • drift_snapshot() -> DriftSnapshot
  • drift_report(drift_threshold) -> DriftReport
  • drift_report_partial_metrics(metrics, drift_threshold) -> DriftReport

LinearRegressionStreaming and LogisticRegressionStreaming — same interface. LogisticRegressionStreaming additionally accepts a threshold: float | None = 0.5 in the constructor and exposes reset_baseline_and_decision_threshold(y_true, y_pred, threshold).

Usage

The intended usage is to monitor machine learning models for bias and performance degradation over time. The general flow is:

  1. At training time, run analysis on a holdout set to establish baseline metrics.
  2. Save those baseline results to persistent storage.
  3. At runtime, collect inference data (features, predictions) and ground truth as it becomes available.
  4. Periodically run analysis on the runtime data and compare it to the baseline.
  5. Act on failures — alert, retrain, or escalate depending on severity.

Where this fits in a system architecture depends on deployment type:

  • API-served model: run analysis as a background job on a cron schedule, triggered when ground truth is available.
  • Batch scoring: run analysis alongside the batch inference job, evaluating the previous run's data once ground truth is collected.

Bias Evaluations

Some pre-work is required to identify features to monitor for bias and define the logic to segment data into advantaged and disadvantaged groups. Feature data used at inference time should be persisted alongside predictions.

from fair_perf_ml.bias import data_bias, model_bias

# --- At training time ---

data_bias_baseline = data_bias.perform_analysis(
    feature=[...],
    ground_truth=[...],
    feature_label_or_threshold=...,
    ground_truth_label_or_threshold=...
)

model_bias_baseline = model_bias.perform_analysis(
    feature=[...],
    ground_truth=[...],
    predictions=[...],
    feature_label_or_threshold=...,
    ground_truth_label_or_threshold=...,
    prediction_label_or_threshold=...
)

# Save data_bias_baseline and model_bias_baseline to persistent storage.

# --- At runtime ---

data_bias_latest = data_bias.perform_analysis(
    feature=[...],
    ground_truth=[...],
    feature_label_or_threshold=...,
    ground_truth_label_or_threshold=...
)

model_bias_latest = model_bias.perform_analysis(
    feature=[...],
    ground_truth=[...],
    predictions=[...],
    feature_label_or_threshold=...,
    ground_truth_label_or_threshold=...,
    prediction_label_or_threshold=...
)

# Load baselines from storage.
data_bias_baseline = ...
model_bias_baseline = ...

data_result = data_bias.runtime_comparison(
    baseline=data_bias_baseline,
    latest=data_bias_latest
)

if data_result.passed:
    print("Data bias check passed")
else:
    print("Data bias check failed", data_result.failed_report)

model_result = model_bias.runtime_comparison(
    baseline=model_bias_baseline,
    latest=model_bias_latest
)

if model_result.passed:
    print("Model bias check passed")
else:
    print("Model bias check failed", model_result.failed_report)

The output schema for data_bias.perform_analysis:

{
    "ClassImbalance": float,
    "DifferenceInProportionOfLabels": float,
    "KlDivergence": float,
    "JsDivergence": float,
    "LpNorm": float,
    "TotalVarationDistance": float,
    "KolmogorovSmirnov": float
}

The output schema for model_bias.perform_analysis:

{
    "DifferenceInPositivePredictedLabels": float,
    "DisparateImpact": float,
    "AccuracyDifference": float,
    "RecallDifference": float,
    "DifferenceInConditionalAcceptance": float,
    "DifferenceInAcceptanceRate": float,
    "SpecialityDifference": float,
    "DifferenceInConditionalRejection": float,
    "DifferenceInRejectionRate": float,
    "TreatmentEquity": float,
    "ConditionalDemographicDesparityPredictedLabels": float,
    "GeneralizedEntropy": float
}

Bias Streaming

For long-running services where data arrives continuously, use the streaming monitors to avoid re-running full batch analysis every evaluation cycle.

from fair_perf_ml.bias.streaming import DataBiasStreaming, ModelBiasStreaming
from fair_perf_ml.bias.streaming import BiasSegmentationCriteria, BiasSegmentationType

feature_criteria = BiasSegmentationCriteria(
    segmentation_type=BiasSegmentationType.Label,
    label="female"
)
ground_truth_criteria = BiasSegmentationCriteria(
    segmentation_type=BiasSegmentationType.Label,
    label=1
)

monitor = DataBiasStreaming(
    feature_segment_criteria=feature_criteria,
    ground_truth_segment_criteria=ground_truth_criteria,
    feature_data=[...],   # baseline feature data
    ground_truth_data=[...]  # baseline ground truth data
)

# Accumulate data as it arrives.
monitor.push(feature_value="female", ground_truth_value=1)
monitor.push_batch(feature_data=[...], ground_truth_data=[...])

# Evaluate at any point.
report = monitor.drift_report(drift_threshold=0.10)
if not report.passed:
    print("Bias drift detected", report.failed_report)

# Discard runtime data and start a new window, keeping the baseline.
monitor.flush()

Model Performance

from fair_perf_ml import model_perf

# --- At training time ---

# Choose one based on model type.
baseline = model_perf.linear_regression_analysis(y_true=bl_true, y_pred=bl_pred)
# baseline = model_perf.binary_classification_analysis(y_true=bl_true, y_pred=bl_pred)
# baseline = model_perf.logistic_regression_analysis(y_true=bl_true, y_pred=bl_pred, decision_threshold=0.5)

# Save baseline to persistent storage.

# --- At runtime ---

runtime = model_perf.linear_regression_analysis(y_true=rt_true, y_pred=rt_pred)

# Full check across all metrics.
result = model_perf.runtime_check_full(baseline=baseline, latest=runtime)

# Or check a specific subset of metrics.
result = model_perf.partial_runtime_check(
    baseline=baseline,
    latest=runtime,
    metrics=["RootMeanSquaredError", "MeanSquaredError", "RSquared"]
)

if result.passed:
    print("Performance check passed")
else:
    print("Performance degraded", result.failed_report)

The output schema for linear_regression_analysis:

{
    "modelType": "LinearRegression",
    "performanceData": {
        "RootMeanSquaredError": float,
        "MeanSquaredError": float,
        "MeanAbsoluteError": float,
        "RSquared": float,
        "MaxError": float,
        "MeanSquaredLogError": float,
        "RootMeanSquaredLogError": float,
        "MeanAbsolutePercentageError": float
    }
}

The output schema for binary_classification_analysis:

{
    "modelType": "BinaryClassification",
    "performanceData": {
        "BalancedAccuracy": float,
        "PrecisionPositive": float,
        "PrecisionNegative": float,
        "RecallPositive": float,
        "RecallNegative": float,
        "Accuracy": float,
        "F1Score": float
    }
}

The output schema for logistic_regression_analysis:

{
    "modelType": "LogisticRegression",
    "performanceData": {
        "BalancedAccuracy": float,
        "PrecisionPositive": float,
        "PrecisionNegative": float,
        "RecallPositive": float,
        "RecallNegative": float,
        "Accuracy": float,
        "F1Score": float,
        "LogLoss": float
    }
}

All drift report results share this structure:

{
    "passed": bool,
    "failed_report": [
        { "metric": "MetricName", "baseline_value": float, "latest_value": float, "delta": float }
    ]
}

Model Performance Streaming

For API-served models where predictions and ground truth arrive continuously, use the streaming monitors to maintain a rolling window of performance metrics.

from fair_perf_ml.model_perf.streaming import (
    BinaryClassificationStreaming,
    LinearRegressionStreaming,
    LogisticRegressionStreaming,
)

# Initialize with baseline data (e.g. from a holdout set).
monitor = BinaryClassificationStreaming(
    label=1,          # positive class label
    y_true=[...],     # baseline ground truth
    y_pred=[...]      # baseline predictions
)

# Accumulate predictions and ground truth as they arrive.
monitor.update_stream(y_true=1, y_pred=1)
monitor.update_stream_batch(y_true=[...], y_pred=[...])

# Snapshot current performance metrics.
snapshot = monitor.performance_snapshot()

# Evaluate drift against the baseline.
report = monitor.drift_report(drift_threshold=0.05)
if not report.passed:
    print("Performance drift detected", report.failed_report)

# Check only specific metrics.
from fair_perf_ml.models import ClassificationDriftMetric
partial = monitor.drift_report_partial_metrics(
    metrics=[ClassificationDriftMetric.F1Score, ClassificationDriftMetric.Accuracy],
    drift_threshold=0.05
)

# Reset the runtime window without touching the baseline.
monitor.flush()

# Replace the baseline entirely (e.g. after retraining).
monitor.reset_baseline(y_true=[...], y_pred=[...])

LinearRegressionStreaming and LogisticRegressionStreaming have the same interface. LogisticRegressionStreaming additionally accepts a threshold: float | None = 0.5 decision threshold in the constructor and exposes reset_baseline_and_decision_threshold(y_true, y_pred, threshold).

Data Drift

from fair_perf_ml.drift.base import ContinuousDataDrift, CategoricalDataDrift

# Continuous features.
drift = ContinuousDataDrift(baseline_data=[...], quantile_type="FreedmanDiaconis")
score = drift.compute_drift(runtime_data=[...], drift_metric="JensenShannon")
scores = drift.compute_drift_multiple_criteria(
    runtime_data=[...],
    drift_metrics=["JensenShannon", "WassersteinDistance"]
)

# Categorical features.
drift = CategoricalDataDrift(baseline_data=["cat", "dog", "cat", ...])
score = drift.compute_drift(runtime_data=[...], drift_metric="PopulationStabilityIndex")

Data Drift Streaming

from fair_perf_ml.drift.streaming import (
    StreamingContinuousDataDriftFlush,
    StreamingContinuousDataDriftDecay,
    StreamingCategoricalDataDriftFlush,
    StreamingCategoricalDataDriftDecay,
)

# Flush strategy: discard data after flush_rate samples or flush_cadence seconds.
monitor = StreamingContinuousDataDriftFlush(
    baseline_dataset=[...],
    quantile_type="FreedmanDiaconis",
    flush_rate=10_000,
    flush_cadence=3600,
)

monitor.update_stream(1.23)
monitor.update_stream_batch([1.1, 2.2, 3.3])

score = monitor.compute_drift("JensenShannon")
monitor.flush()  # manually reset the runtime window

# Decay strategy: older samples are down-weighted using exponential decay.
monitor = StreamingContinuousDataDriftDecay(
    baseline_dataset=[...],
    quantile_type=None,
    decay_half_life=3600,  # seconds
)
monitor.update_stream_batch([...])
score = monitor.compute_drift("WassersteinDistance")

Future

  • Multi-dimensional segmenter for bias analysis (currently requires one monitor per feature)
    • This can be done as-is with multiple monitors, but a unified multi-feature API would reduce boilerplate

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_perf_ml-0.2.0.tar.gz (142.0 kB view details)

Uploaded Source

Built Distributions

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

fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (767.6 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl (811.9 kB view details)

Uploaded PyPymusllinux: musl 1.2+ i686

fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl (834.7 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (728.2 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (563.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (585.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (694.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (560.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (553.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl (608.3 kB view details)

Uploaded PyPymanylinux: glibc 2.5+ i686

fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl (766.8 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_i686.whl (808.1 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_armv7l.whl (831.1 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl (725.8 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (584.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (689.2 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (556.7 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (550.7 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

fair_perf_ml-0.2.0-cp313-cp313-win_amd64.whl (403.3 kB view details)

Uploaded CPython 3.13Windows x86-64

fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl (767.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_i686.whl (811.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_armv7l.whl (835.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARMv7l

fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_aarch64.whl (727.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (563.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (585.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390x

fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (690.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64le

fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (560.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7l

fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (551.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl (610.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.5+ i686

fair_perf_ml-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (505.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fair_perf_ml-0.2.0-cp312-cp312-win_amd64.whl (404.1 kB view details)

Uploaded CPython 3.12Windows x86-64

fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (766.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_i686.whl (812.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_armv7l.whl (835.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARMv7l

fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_aarch64.whl (727.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (563.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (584.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (690.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (560.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (551.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (610.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.5+ i686

fair_perf_ml-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (505.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

fair_perf_ml-0.2.0-cp311-cp311-win_amd64.whl (404.7 kB view details)

Uploaded CPython 3.11Windows x86-64

fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (768.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_i686.whl (811.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_armv7l.whl (835.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARMv7l

fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_aarch64.whl (729.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (562.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (584.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (694.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (559.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7l

fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (552.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (607.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.5+ i686

fair_perf_ml-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (509.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file fair_perf_ml-0.2.0.tar.gz.

File metadata

  • Download URL: fair_perf_ml-0.2.0.tar.gz
  • Upload date:
  • Size: 142.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for fair_perf_ml-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d33b6b61281b4879daac8f85beb5454ada4a2b2821b257e57d7f3fe20b0987eb
MD5 f70c8bb986b9b2e19b4211e55bf9657b
BLAKE2b-256 8487af17625db6b1edf07f673a13e9456f488d4fcdae14d3998c756392df6463

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fe412074d17b67e07ca025d8e30f9187b83e694e09205b29eabc8586ca68b884
MD5 294e8f76f5c9a74f8c9c05e64605ef6e
BLAKE2b-256 9fe96a1be85ad223cb05c9e6561becc5d68bf6aa86427e11af756bd05f25a23b

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b3837f544724606dcf980b682e99f830b42e553d6e90d38e2d8d17aa8c33c6b5
MD5 09e39e48a1931b75c151ef3429228473
BLAKE2b-256 a221ee9f8776238fef5ca09eb6e6dfcae01b4007ee3cb8ba0323036167f95d82

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 5bd0b176ec05b65448032d55a2b8e755d357cc17ae32f81fb2cee7ed10d0fafa
MD5 db0d4eefda498883c795d48e396c6887
BLAKE2b-256 3dc4a2e87b715d8bc8a9c7b43faabf51258ef4a6a02b51c5eef497bec4df10ac

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fa5c91adb0a0619a0b716f26381b0828c0753af42565108bb1c8216fbb2902b7
MD5 5c07c3549c41dc8b5bd285fb1358c8cb
BLAKE2b-256 a1c8caad8fc485bed9864ff302e7261c15690b28ebb3c758964b13b07793bc40

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3044e665757cd4c018740ca04ff7dfe81843e85e28ac8e9650e19d5da77d4105
MD5 fa3be6d248bc266ae10384ff8bf2de9c
BLAKE2b-256 00ba115640b9c94e65b76d18d609772e8394b16f940af8ea410ca18b0812ee1a

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 930654aa6edf357234005a72941f17aacae56962fe4722063cb9bdc09c9b198b
MD5 588591b3259967864b4776a8990ad114
BLAKE2b-256 a33dd0e7d8887ad937ab08ea5afa68e520219cc25f0e2b4bd2d6f30c676491be

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 de8e6a283bf1e1f3c4d96117afaf082de26116e8fb3f26e0673ddb59a0101bbb
MD5 83c358a95e112393efd244e8979d3655
BLAKE2b-256 513e12d19f3c6b951aa39c8cdfb3af7991b7f66e7477c342d30af2acb774b6a6

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 da43dca501b46928ada76d450ed38237eb03478cd9ca071a31351c04c4206453
MD5 bc128fe027c00c8aeac83e381592a440
BLAKE2b-256 2c237ce706eb39ee1d002144700a2d33ec67f41d9c11f6d725586d7006f55759

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5c8537c1052819d6ec0908044cbc54561e81ec30728e56b0df3830fb720a4b37
MD5 4c7588b6de65216c5074b0e391f2476f
BLAKE2b-256 b04d3c8f3771a098889f99e14109c71c6fda541d6d525ec9aea71a5f3f777941

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 bca6cc8029d4968d4fd5c6691185230c54e4d09f898efac0badb47a12a068587
MD5 2cf0f09129389d52a60cbb6d32fba79a
BLAKE2b-256 b6c20017b9fff6de453789b53958d6d6e84197c6f834550578b465d5c50477b0

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6614b759eb6672f8a0429cf2b5bfed5fdcd592c2731af4d529a6fa15fede114b
MD5 b6104bc40a1691c9bbe522192ac1c6ce
BLAKE2b-256 137f29877757b67cb1e4519ad18708a2ad3c5acc978ab9162258e15bd9df40f5

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 25334f5c15e47a7336610c7b78592e9b2cfa0dbbd6cc5e29b3430fb66bb43c34
MD5 302efc89ae91bdba398ce9b381c2d159
BLAKE2b-256 0005b96af237d3c73127eeb131af36110c1d5a0aa9f2b4360be0a1307bd59a02

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 5d1a8271a658324ec9a0f8c6e94fb1728ca6a5ff7f93fd7a2bd1bd87a7dcf10e
MD5 eb4e700eaeb8279647a5d25c02682978
BLAKE2b-256 cfca813a5982b7e98eec03980a832df930e0acc74f24ffd5fdae929857327b85

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7c05a2791233ac2f3260aa633a7846c47f029d157dbfe8194dc15d6421fbc76f
MD5 6c39c7ca9a8437b8104f8f98082eb50e
BLAKE2b-256 58cd866cd9b02db47c4a89a758df6245b0482bd28d9f4d60fbedb9014f5b39c8

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ef1d8707f4e49ca965e81899cd955d5d5a9755cd9ed73ba883447b302f22555c
MD5 55f75f0dc1637ca474cdc0c2d2c5c0de
BLAKE2b-256 ec78d77ca250223bb3f4200cabe726529dab41d06fa4d1dd3c46bae39ad0ce8e

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 cd1da94e332ee78757d341a05729273b1e52c2610018fdad45038a8718492eb5
MD5 0fcf1652f925a8223b80cd162940b6c6
BLAKE2b-256 9e29917752bca53e642901e863a6359057cd42def06104813b50f5c061f26458

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 763cd5d78843676c5a7164429b2401d1a44c52ccbc2138a82515969de4c5d822
MD5 cafd55de9b058399070868fb1e77b9cd
BLAKE2b-256 1bf1a018740854990dc7f45b12e893d6b400ca4b1bb531e74567d227e4c39294

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fcd8e7a3bbf9a8b5490611c244798830fb1d1cf03ec22034cdc1c5b3fa409e48
MD5 b4a0af6ba34a54742f6658f3e068ebda
BLAKE2b-256 280c435ee81b894c7b04a53b8ba57138a320f6311794a1afcb84240e06029930

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b1d0f2fcbf2a40db48dfbe41ec67017106ad806962fabb44ef9d0927302fedda
MD5 64c2ceccb5964a80138bc71e624d5a92
BLAKE2b-256 93804fe4a7d6f6044327b3da12a0f0029f33197fd0900d82e50477abab18050a

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 686da6a39326e1f6e3377615a2fc4414823d8a8e623a5084f45ff56ea14d3bec
MD5 856ce23bfa3c1ba4ab862a9764ccb1e9
BLAKE2b-256 ccaccf08dcf3d250b951b2742936df6af6ce637384056be12071fec531d88e5e

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 5ae4b714b6d9f2069e937f032d510663f565acf16affe151e25550edf4bbdabf
MD5 0de49f00b3db32572b8853d08eb38cba
BLAKE2b-256 2495fac8f88a734238ba830fbfe6bf16dfbdb4822fe419e1062f624b426cfddd

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 91899098294852cb0cb5a1dbd8f65267e0c9bc7181219be8c536a4593c51a950
MD5 633bfbc4ec1777945d274b71984b5ea0
BLAKE2b-256 71d5be0b02b9ce7d1107971978bb41eeb497126bbcff40484514296187131cda

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 37b690d5fa1a451511d339ae373a8ead181c61fa0f0e7b5787deaffc52ec8b49
MD5 d1cadbd21f082dd9b5ad0df9e04514f5
BLAKE2b-256 58e98a5dc18b7e10295e63d1388d267d9de8b2b7594e13bd43d8ae60a26e355b

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86081a904fc2b6366aebecbd670c6697fbf954192e31fa258955beeb0ada3d6e
MD5 4d69baa8869103cdafd51ffc28b1e881
BLAKE2b-256 70b546eeb3f90c68f94ea9072b786880b5872b1097c6955ab29c98521e155b6d

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2014e08c05b28ebc30599e6de0066c6e2076a1da6b0d9b626a143252f07f6c57
MD5 d0febb1f2b017ba24c8447e8fb86835e
BLAKE2b-256 5246724cd5da09c5f49f63f607b89ab2bba10136709a059f8d0b10a71159d3dd

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f365758c1ec24f06b6527288b80bff3167eae0147ee0dcda075243f68ef0fd86
MD5 7beae641bf0617c14f8a7f33f8e2cef5
BLAKE2b-256 9d60dd2f726330659d03bb6f787c62352bcce75b647a6f7e56bef8c4664e6bec

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a217e08ec3bd5a479349f341802c0fddbaed32a0deb84597c99845d0398939bd
MD5 41165a113333346b340372a7439dcc7f
BLAKE2b-256 08040157d7b7a4c8e4c1a3adbfbdac7e5ac1e74f4f41f3663f6c7ac02ebbde80

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 feef52bdcb926d0996248af5ae2810054e2f8474c87a3621d8fdd2e303b5117a
MD5 9b5b986f112f89a76d5f1d34ae3d9abd
BLAKE2b-256 c659d0d095583fe06dc52d3ba4142893a779362dabd2a38487b800aa14e6f226

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 3bebaa046978b2f35dcaba0b6af67084179aeda9ee1baf6aa1f84e8786b8cb8e
MD5 aacb68aaf6631038c8ac9faca2311018
BLAKE2b-256 0920082015b7885a24784f5cf0d9a9773094cf7ae0f9273ed5dfdb4bb14a7a5c

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0748126dce8c7c5ffcfac2739b252c865f301284be63d9819108c5be5b78f768
MD5 4cf4a629601ef3143a6e52eb0a3bd9c0
BLAKE2b-256 8ec7bc8393bf2b08f769bf9da1687d466076394ce155ddb18178965f79bb59a6

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f2b1dce5afcbe8ca6369c0d239daaeb47582351cc920ed48c78286e43befc294
MD5 c603ca28068bc0e0a289b4e89ef07761
BLAKE2b-256 358a8289f19be64f74a246c3edc9a73908f30f022cf98616c3dbb7ad8eb6ce54

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bfbfbed59a9e67aa6e5d931ddc61811ff959a6c6f224f936ce9bacd48ab1cedc
MD5 4d21725dc65e7fab5311c3d4b82f1fde
BLAKE2b-256 04473fd5a1f8a92091f295100d9c04f4f79e763addd22ab5dcf922bfb9e169f3

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 35009c235ed1f09084896cd26bfc292a7c554c76effd84596cfddd80ab0e7a78
MD5 5a65ca8e3db1aaf6e7a35af288b56b76
BLAKE2b-256 2d7b710ec0e1ead15dcaa54c22bf7c6d828f2b5626670637e28abeb285200b7b

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 92066225358945b36bcaedb74722628d439682826ed4b0e999d46356dc49422e
MD5 0562f672c88a66b0bd625a2d4c0b854e
BLAKE2b-256 be7685ccb6e709ba33ebe882bc5f26a7fec524583b3256cfb57a62ea6c5d259f

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bf03f52526cc2893cfeffca1c7f82971b3277c2e69fcbcd5b3db068a377a0e1e
MD5 1613a64a0d2c88252705d8a1a067c5a8
BLAKE2b-256 4a54cf489346419b2d4f855441adda5cc85eac2f325a3b1f292e5c61b1ade8bd

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dde876ad34dd14fd213dbcf4d7ae86f3f44bbd346a3b3dbb67e3ff0eb0167e11
MD5 7610a22e40cb1d1d2c5f74d5a128885b
BLAKE2b-256 e17af694516b79b0f19c240c2b2dc3019643ee865b2ae4ca7fa3e3430f264395

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 bafa06157cb67732688dd0e942f873e56c4a7650bd790fd826960f1030a62796
MD5 af132d8ab2baaea40e2f0a485195b99c
BLAKE2b-256 a61cb408f238932b01c9fc50021f73bea51fa18992e6e1485ff9e7ee8116ee7d

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0d00f30b632c0e7784993505109b9cc771575764860c04fa968c17e68e8415bc
MD5 c3e25f952ad653013523d518fd568634
BLAKE2b-256 a3d96ff2416abc125b13565699a461627aaedfee5efe0a60591fd0e0596b0e7c

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 046701603242663ec210583ab0c81d5a5d4f840e52b9297753be9a70d611e01a
MD5 8fa632246dadfce768d18df86730706d
BLAKE2b-256 2844b654f3d238758146b7cdddc9d4054a8997cbd87dc06aa9ce22113229cdee

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 99c50139811007808afab9904b6b007f1ed270197dfbf38e784fa11a878c863a
MD5 e8d0096dc31b95b9488510cde50d46c6
BLAKE2b-256 e7067d3b7608d8069e3dbeb20213467f738042d970d63c3a74238d52682c98b8

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 65f74b1dcd848cf84b0dea76184b8434c00f583e2932b8b89612bd6503938ec2
MD5 22fc7676e3fc5bd44216e08f633ae5ac
BLAKE2b-256 b222a6ac5558d37d4e0ec41d664ffd65a203e5bb02823a96b0e90c236a322f97

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9ca8371f70c445e054f03115940346a0f824afaf06163ca17c0e1881acb887f5
MD5 0fe079bd28d1682a69ba53eb00f19bd2
BLAKE2b-256 907cdd6456edcefa8d908761b02755a82fbcb7e77b947078d2d57d94d540830c

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 df3f2db4ce2cc543457411212989dcbbd2f0b4d018ea283cd143e19f9eaa7c83
MD5 b2fcbdc86118ce2f72a09f8aede262fa
BLAKE2b-256 c926f5120587e34e36cffbbf70f98c88933593254358d8c9f453f1d899a70c1e

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4283542475a66a01acf9daaca7c973c0284eeda80d7fffa3c8d8ec4f2d6816c7
MD5 822bf7bbe7ebf8e11f7b3ba3b62ad974
BLAKE2b-256 451058d2740a409ceb596c461bebcf00555ffe313e2d2abcb898e81b33e75eed

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 6bc7ba29c7f87b6f761190e63c1386530581fae96ac21577fd2963044d70dd97
MD5 80e674162563fb1addfc6a4aa7e8d0d2
BLAKE2b-256 7703a00a8326e41192c030f5847dac54dcf2e523a30611d959a73e8a1d3f980c

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 65d6f04a733890d31fa71c3c4ffccd514dd4f9d1d523507411d935531d152cde
MD5 4259d9b041ce00e1f1722c5717c1b664
BLAKE2b-256 c422e97e98b88dc6bd1befb88518bd0a5908ab95f7dc6ba320ab2994bd81529a

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f2e203c611bb09c77891c859c0ec6ad11ca78caa3a975304fce9a2dd4f2c03c3
MD5 f6600367d8cd2881949a183e19d1d3f4
BLAKE2b-256 30bf3ca92f44e0a24654fe781196fff9747731b8eac1c4796823119df26d96f5

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ebc195e6f80e0ea688d0947613dc209aa7356406d62126cfcb188cec60bbd892
MD5 ef91282bf45996facf49873316602e7a
BLAKE2b-256 aff5d36db7b80ebaeb8f2c03e67502a234af25c48c71a63ca9e5b084faf4675e

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 6d31b8c062d4420c18631d7c914e4e50a076d6090fe60d12286f3d9b5d9c5169
MD5 a6361b1751632836941777597ccf4638
BLAKE2b-256 a3eff0647e034c885534d085382e239394f6da5c1644a155734f362d957d3e79

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 375ce1d81e1e53cce36a542336936d7a7b59aa008c2187feb07b5b826df300c3
MD5 2fc146d9070a860abc81befeada4b477
BLAKE2b-256 2eb307a49d2de4d422cc520b451e7812ca0c6c94c262b0e1e5639bc48d68b834

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e23cb6b6b3eaf23da89db33f98b08a15375a6297f52884c24b9e402bc0a05d49
MD5 f71fd00dbc81fb65de1bc02393b11985
BLAKE2b-256 9feccd9d45c83bcaf20a023b70169589f588b995e750850bf7c016165478cf15

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c6e41248ff174bc9462ac8209bf2c2c139a2a899635454b79f94dc2eeb4e74c1
MD5 5ce7ec8960957cac3be9f4acebe27bd8
BLAKE2b-256 3279d3d2d13cee3c160ef3ce73214ef51388f6daf92fb9380cda83e3fab5894c

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c6b6f6145e5c02b1994861072c09d365104b1aad4f0381e431f20c3c443658d2
MD5 d054f8430eb4b6d492ec0bd2eb66a28e
BLAKE2b-256 870baf396ef900ce7b1b51b15272f431db4804f8add47b1ba9f48ed96a4a961c

See more details on using hashes here.

File details

Details for the file fair_perf_ml-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fair_perf_ml-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40238a11c504ea2e3cc2c8bfff17531e63fd370f318d28f78bcc9be30dbee944
MD5 806b9d2e9aeb45c4d316867ea9ba394e
BLAKE2b-256 daf418714190ecc12fed69eaf8fea657f1560b540d5689eaf4f231a17f6afc9f

See more details on using hashes here.

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