Skip to main content

High-performance interpretable rule-based ML — HUG-IML classifier, adaptive binning, EBM-style plots, pattern pruning, and benchmark runner (IEEE Access 2024).

Project description

hugiml-core

High-performance interpretable rule-based ML infrastructure built on the HUG-IML algorithm published in IEEE Access (2024).

CI PyPI Docs Python License DOI

HUGIML: interpretable tabular ML through compact human-readable patterns

HUGIML learns human-readable High Utility Gain patterns and uses those patterns as the model representation itself. Instead of explaining a black-box after training, the learned model is already composed of inspectable intervals, categories, supports, utilities, and coefficients.

glucose=[157.1,177.3)                coef= +1.4077   support=0.067
bmi=[31.8,39.1)                      coef= +1.0839   support=0.200
duration=[24,48)                     coef= +0.84     support=0.28
checking_status=no_checking          coef= +1.12     support=0.39

Where HUGIML fits


Table of Contents

  1. What Is HUG-IML?
  2. Installation
  3. Quick Start
  4. Feature Modes
  5. Hyperparameter Search
  6. Governance Studio Dashboard
  7. Augmented Pair Features
  8. Adaptive Binning
  9. Missing Value Handling
  10. Model Explanation and Visualisations
  11. Pattern Pruning
  12. Interpretability Metrics
  13. Multiclass, Imbalanced Data, High-Cardinality
  14. Drift Detection & Monitoring
  15. Calibration
  16. Serialisation
  17. Governance & Model Cards
  18. Benchmark Suite
  19. Validation Highlights
  20. Inference Server
  21. CI / CD
  22. Repository Structure
  23. License
  24. Citation

What Is HUG-IML?

The High Utility Gain Interpretable Machine Learning (HUG-IML) framework extracts High Utility Gain patterns from labelled tabular data, transforms the input into a binary pattern-presence matrix, and fits an interpretable downstream classifier (logistic regression by default) on that matrix.

The resulting patterns are human-readable and serve as the primary source of model explanations, making the system suitable for regulated domains such as credit scoring, healthcare, and risk management.

Key reference:

Krishnamoorthy, S. (2024). Interpretable Classifier Models for Decision Support Using High Utility Gain Patterns. IEEE Access, 12, 126088–126107. DOI: 10.1109/ACCESS.2024.3455563


Installation

# Core
pip install hugiml-core

# With profile plots
pip install "hugiml-core[plots]"

# With Governance Studio dashboard
pip install "hugiml-core[dashboard]"

# With benchmark comparison suite
pip install "hugiml-core[benchmarks]"

# With imbalanced-data helpers
pip install "hugiml-core[imbalanced]"

# With SHAP interoperability
pip install "hugiml-core[explainability]"

# With MLflow integration
pip install "hugiml-core[mlflow]"

# Everything
pip install "hugiml-core[all]"

Build from source requires a C++17 compiler and pybind11:

git clone https://github.com/srikumar2050/hugiml-core.git
cd hugiml-core
pip install -e ".[dev]"
python setup.py build_ext --inplace

Quick Start

Note on prepareXy: prepareXy performs schema and type preparation only — it detects integer, float, and categorical columns and encodes the target. Discretisation, HUG pattern mining, and downstream classifier fitting occur inside fit() on the training data supplied to that call.

Path A — prepareXy

import pandas as pd
from sklearn.model_selection import train_test_split
from hugiml import HUGIMLClassifierNative

clf = HUGIMLClassifierNative(B=7, L=1, G=5e-3)

X_enc, y_enc = clf.prepareXy(X_df, y)   # schema/type prep — no model fitting

X_tr, X_te, y_tr, y_te = train_test_split(
    X_enc, y_enc, stratify=y_enc, random_state=42
)

clf.fit(X_tr, y_tr)                     # mining + downstream fit on train only
proba = clf.predict_proba(X_te)

print(clf.get_hug_features())
print(clf.feature_importances())
print(clf.model_summary())

Path B — explicit allCols for CV and production pipelines

from hugiml import HUGIMLClassifierNative

clf = HUGIMLClassifierNative(
    allCols=[int_col_names, float_col_names, cat_col_names],
    origColumns=X.columns.tolist(),
    B=15,
    L=1,
    G=1e-5,
    topK=150,
    adaptive_binning=True,
    b_candidates=[2, 3, 5, 7, 10, 15],
)

clf.fit(X_train, y_train)

pred = clf.predict(X_test)
proba = clf.predict_proba(X_test)

Feature Modes

HUGIML can use the mined binary pattern matrix in three downstream feature modes. The default remains the original pattern-only behavior, so existing code keeps the same semantics unless feature_mode is set explicitly.

feature_mode Downstream estimator input When to use
"patterns_only" HUGIML binary pattern matrix only Standard HUGIML; best when the mined pattern space itself captures the decision boundary.
"original_plus_patterns" Original features plus all mined binary patterns Useful when the original features contain strong marginal signal and HUGIML patterns add supervised nonlinear refinements.
"original_plus_interactions" Original features plus only L > 1 mined patterns Useful when original features should handle marginal effects and HUGIML should contribute interaction/compound-region features only.
from hugiml import HUGIMLClassifierNative

# Backward-compatible default: pattern matrix only
clf = HUGIMLClassifierNative(B=10, L=2, G=1e-2, topK=150,
                              adaptive_binning=True, feature_mode="patterns_only")

# Hybrid: original features + all binary HUGIML patterns
clf_hybrid = HUGIMLClassifierNative(B=10, L=2, G=1e-2, topK=150,
                                    adaptive_binning=True, feature_mode="original_plus_patterns")

# Hybrid: original features + higher-order/interaction patterns only
clf_interactions = HUGIMLClassifierNative(B=10, L=2, G=1e-2, topK=150,
                                          adaptive_binning=True,
                                          feature_mode="original_plus_interactions")

transform(X) always returns the HUGIML binary pattern matrix, regardless of feature_mode. The feature mode only changes the matrix passed to the downstream estimator inside fit(), predict(), predict_proba(), and score().

For hybrid modes, HUGIML standardizes numeric original features internally before concatenating them with the sparse binary pattern matrix and any active augmented-pair columns. feature_importances(), model_summary(), and get_model_composition() report the downstream feature representation, while get_hug_features() and get_pattern_info() remain pattern-only APIs.


Hyperparameter Search

HUGIML provides a fast cached tuning path for adaptive-binning grids. When adaptive_binning=True, the full binning and transaction construction phase runs once per unique (G, L, topK) combination; subsequent candidates that vary only feature_mode reuse the cached artefacts and skip re-mining.

tune() — cross-validated search with automatic fast path

result = HUGIMLClassifierNative.tune(
    X, y,
    cv=5,
    shuffle=True,
    random_state=42,
    scoring="roc_auc",
    refit=True,
)

print(result.best_params_)
print(f"CV score: {result.best_score_:.4f}")
print(f"Fast path used: {result.fast_path_used_}")

best_model = result.best_estimator_

A custom grid is supplied via param_grid. Only G, L, topK, and feature_mode may vary; B may appear but is ignored when adaptive_binning=True.

grid = {
    "G":            [1e-3, 1e-2],
    "L":            [1, 2],
    "topK":         [30, 50],
    "feature_mode": ["patterns_only", "original_plus_patterns"],
}

result = HUGIMLClassifierNative.tune(
    X, y,
    param_grid=grid,
    base_params={"adaptive_binning": True},
    cv=3,
    scoring="roc_auc",
    refit=True,
)

fast_grid_tune() — single-split cached path for custom CV loops

tune_result = HUGIMLClassifierNative.fast_grid_tune(
    X_train, y_train,
    X_val,   y_val,
    param_grid=grid,
    base_params={"adaptive_binning": True},
    scoring="roc_auc",
    refit_full=False,
)

print(tune_result["best_params"])
print(f"Validation score: {tune_result['best_score']:.4f}")

Governance Studio Dashboard

The HUGIML Governance Studio is a multi-view Streamlit application that provides audit-ready evidence for interpretable model review.

Launch

# Installed console script (recommended)
hugiml-dashboard

# Direct Streamlit invocation
streamlit run src/hugiml/dashboard/app.py

# With custom CV folds and random seed
hugiml-dashboard -- --cv 5 --random-state 42

Evidence views

View What it shows
Overview Dataset summary, best CV score, feature mode, top patterns
Validation Per-fold performance metrics and calibration
Representation Audit Complexity budget, feature-family provenance, original vs pattern vs augmented
Pattern Inventory Full pattern table with coefficients, support, utility, and information gain
Case Review Per-row predictions, probability, and active pattern explanations
Data Quality & Policy Feature-level missingness rates and sensitive/proxy column review
Configuration Comparison Side-by-side CV performance across feature_mode variants
Representation Pruning Remove original features or downstream representation columns and re-evaluate
Monitoring PSI and KL-divergence drift signals across features

Data sources

  • Demo dataset — built-in credit-risk dataset; no upload required.
  • Upload — CSV, TSV, Excel (.xlsx/.xls), or Parquet. Define target column, ID column, excluded columns, sensitive columns, and positive label from the sidebar.

Demo preview

Installation

pip install "hugiml-core[dashboard]"

Augmented Pair Features

For interaction-oriented models, HUGIML can add native augmented-pair features to the downstream estimator. These are continuous product or absolute-difference transforms built from informative numeric features, for example:

glucose * bmi
abs(age - duration)

They are active when L > 1, adaptive_binning=True, and augmented_pair_transforms=True (the default). They are appended only to the downstream estimator; the mined HUG pattern matrix and transform(X) remain pattern-space APIs.

clf = HUGIMLClassifierNative(
    B=-1,
    adaptive_binning=True,
    L=2,
    topK=50,
    G=1e-2,
    feature_mode="original_plus_patterns",
    augmented_pair_transforms=True,
    topk_budget_strict=True,
)
clf.fit(X_train, y_train)

print(clf.get_model_composition())
print(clf.explain_augmented_pair_effects())

For selected pair features, HUGIML reports the raw formula, standardized formula, observed-row coverage, missing-pair policy, and raw-scale coefficient interpretation.


Adaptive Binning

The global B parameter controls how many quantile bins each numerical feature is discretised into. Adaptive binning selects the optimal bin count per feature via supervised information-gain search and elbow stopping.

from hugiml.adaptive import HUGIMLAdaptive

clf = HUGIMLAdaptive(b_candidates=[3, 5, 7, 10, 15], L=2, G=1e-2)

X_enc, y_enc = clf.prepareXy(X_df, y)
clf.fit(X_tr, y_tr)

print(clf.per_feature_b_)
clf.plot_bin_profiles()
clf.ig_heatmap()

Alternatively, enable adaptive binning directly on HUGIMLClassifierNative:

from hugiml import HUGIMLClassifierNative

clf = HUGIMLClassifierNative(
    adaptive_binning=True,
    b_candidates=[3, 5, 7, 10],
    min_marginal_gain_ratio=0.02,
)

How it works: for each numerical feature, HUGIML evaluates information gain at candidate B values and stops when the marginal gain falls below min_marginal_gain_ratio × current_IG. This prevents blindly selecting the maximum bin count.


Missing Value Handling

HUGIML treats NaN and Inf values as not observed — no imputation and no special parameter are required.

How it works: numerical columns are pre-binned at fit time. Non-finite cells become np.nan in the label array, and the C++ transaction builder skips them. The corresponding item is absent from the transaction. Patterns requiring that feature do not fire for that row.

import numpy as np
from hugiml import HUGIMLClassifierNative

X_train.iloc[5, 2] = np.nan

clf = HUGIMLClassifierNative(B=5, L=2, G=1e-4)
clf.fit(X_train, y_train)

X_test.iloc[0, 0] = np.nan
proba = clf.predict_proba(X_test)       # scored using available feature items

Mining Patterns About Missingness

To mine patterns that involve missingness (e.g., Glucose_MISSING=1 AND HeartRate=[110,140]), add binary missingness indicators as preprocessing features:

def add_missingness_indicators(X, threshold=0.05):
    X_aug = X.copy()
    for col in X.columns:
        if X[col].isna().mean() > threshold:
            X_aug[f"{col}__MISSING"] = X[col].isna().astype(int)
    return X_aug

X_with_indicators = add_missingness_indicators(X_raw)
clf = HUGIMLClassifierNative(B=7, L=2, G=1e-4)
clf.fit(X_with_indicators, y)

The Governance Studio Data Quality & Policy view shows feature-level missingness rates alongside sensitive column review.


Model Explanation and Visualisations

Interactive Plotly dashboard

from hugiml.plots import HUGPlotter

plotter = HUGPlotter(clf)

plotter.plot_dashboard(
    X_test,
    dataset_name="My Dataset",
    feature_names_for_profile=["age", "income", "glucose"],
    output_path="hugiml_dashboard.html",
)

plotter.plot_marginal_bin_profile("glucose", X=X_test).show()
plotter.plot_top_patterns(top_n=20).show()
plotter.plot_feature_importance(top_n=15).show()
plotter.plot_active_patterns(X_test, sample_idx=0).show()

Each profile panel shows the learned bin/pattern behavior for a feature: utility or coefficient-like contribution per bin, with support overlay where available.

Existing example dashboards:

Public tabular benchmark classification Feature shape profiles — public tabular benchmark

Credit risk scoring Feature shape profiles — credit risk

Profile visualisations

plotter.plot_marginal_bin_profile("age", X=X_test).show()  # EBM-style 1-D shape function
plotter.plot_feature_combinations("age").show()             # Feature-combination view
plotter.plot_top_patterns(top_n=20).show()                  # Top patterns by importance
plotter.plot_active_patterns(X_test, sample_idx=0).show()   # Local explanation for one sample

Pattern Pruning

In regulated domains, analysts often need to remove patterns that reference protected attributes, have high PSI, or are operationally invalid. HUGIML provides a controlled editing workflow with a JSON audit trail.

from hugiml.pruning import PatternEditor

editor = PatternEditor(clf, operator_name="risk-team")

print(editor.list_patterns().head(10))

editor.remove([3, 7], reason="references protected attribute 'gender'")
editor.remove_by_keyword("postcode", reason="high PSI — unstable feature")
editor.remove_low_support(min_support=0.01, reason="noise patterns")

editor.refit(X_tr, y_tr)
editor.calibrate(X_cal, y_cal, method="isotonic")

new_clf = editor.finalize()
print(editor.audit_report())

The Representation Pruning view in the Governance Studio provides an interactive version of this workflow without writing code.


Interpretability Metrics

from hugiml.metrics import compute_all_metrics

m = compute_all_metrics(clf, X_test)
print(m)

Example output:

InterpretabilityMetrics
==========================================
n_patterns              : 87
avg_pattern_length       : 1.34
coverage                 : 0.9812
mean_active_patterns     : 6.21
overlap_rate             : 0.0714
explanation_sparsity     : 0.0230

top-k cumulative |coef|:
top- 1 : 8.4%
top- 5 : 31.2%
top-10 : 54.7%

Multiclass, Imbalanced Data, High-Cardinality

Multiclass Classification

from hugiml.multiclass import MulticlassHUGReport

report = MulticlassHUGReport(clf)
print(report.importances_for_class(class_label=2, top_n=10))
print(report.summary())

Imbalanced Data Handling

from hugiml.multiclass import make_imbalanced_pipeline

clf_bal = make_imbalanced_pipeline(clf_proto, strategy="smote")
clf_bal.fit(X_tr, y_tr)

High-Cardinality Categorical Reduction

When categorical features have hundreds or thousands of unique values (ZIP codes, ICD-10 diagnoses, merchant IDs), grouping rare categories prevents combinatorial explosion in pattern mining:

def reduce_high_cardinality(X, y, threshold=50, min_frequency=0.01):
    """Group rare categories (<min_frequency) as '__OTHER__' for high-cardinality columns."""
    X_reduced = X.copy()
    for col in X.select_dtypes(include=["object", "category"]).columns:
        if X[col].nunique() <= threshold:
            continue
        value_counts = X[col].value_counts()
        min_count = len(X) * min_frequency
        rare_categories = value_counts[value_counts < min_count].index
        X_reduced[col] = X[col].apply(
            lambda x: "__OTHER__" if x in rare_categories else x
        )
    return X_reduced

X_reduced = reduce_high_cardinality(X_raw, y, threshold=50, min_frequency=0.01)
clf = HUGIMLClassifierNative(B=7, L=2, G=1e-4)
clf.fit(X_reduced, y)

# Or use built-in target encoding:
from hugiml.multiclass import encode_high_cardinality, apply_encoding
X_enc, enc_map = encode_high_cardinality(X_tr, y_tr, threshold=20, method="target_mean")
X_te_enc = apply_encoding(X_te, enc_map)

Note: Learn category groupings on training data only, then apply the same mapping to test/production data.


Drift Detection & Monitoring

clf.enable_monitoring(window_size=1000)

clf.predict_proba(X_new)

print(clf.monitor.report())

report = clf.detect_drift(X_new, current_labels=y_new)
print(report)

The Monitoring view in the Governance Studio shows PSI and KL-divergence drift signals per feature from the fitted model's training baseline.


Calibration

from hugiml.calibration import evaluate_calibration

result = evaluate_calibration(y_te.values, proba[:, 1])

print(f"ECE: {result.ece:.4f}")
print(f"Brier: {result.brier_score:.4f}")

Serialisation

from hugiml.serialization import save_model, load_model, generate_sbom

save_model(clf, "model.hugiml")
clf2 = load_model("model.hugiml")

sbom = generate_sbom(clf)

Governance & Model Cards

from hugiml.governance import generate_model_card

card = generate_model_card(
    clf,
    model_id="credit-scorer-v1.0.0",
    intended_use="Credit risk assessment for SME lending.",
    training_data_description="German Credit dataset, 1000 samples",
)

print(card.to_markdown())
card.save("model_card.json")

Model cards should include top positive/negative patterns, missing-value behavior, calibration metrics, drift-monitoring plan, and any pattern-pruning audit trail.

The Governance Studio dashboard provides interactive governance evidence views that complement programmatic model cards with visual audit artifacts.


Benchmark Suite

Reproduce paper claims or benchmark on your own datasets:

# Run full CV comparison
python -m hugiml.benchmarks.runner

# Specific datasets
python -m hugiml.benchmarks.runner --datasets german_credit pima adult

# Save results
python -m hugiml.benchmarks.runner --output benchmarks/results/

Or use the installed console script:

hugiml-bench --datasets german_credit --output results/

Scalability dashboard

For runtime and memory scaling evidence, see the static scalability dashboard:

The dashboard summarizes measured fit time, prediction latency, memory delta, pattern counts, and test AUC against XGBoost and LightGBM. It covers sample-size scaling, feature-count scaling, and parameter sweeps over B, G, topK, L, and adaptive binning. HUGIML retains many training and test artifacts to support governance and audit requirements.

Worked notebooks in notebooks/ are organized as 12 self-contained folders:

Folder Notebook Brief description
00_quickstart nb00_pattern_explanation_walkthrough.ipynb Quick end-to-end walkthrough of fitting HUGIML, extracting patterns, and reading pattern-level explanations.
01_benchmark_baselines nb01_benchmark_baselines.ipynb Benchmark comparison across HUGIML and common tabular baselines such as XGBoost, LightGBM, Random Forest, and logistic regression.
02_hug_vs_ebm nb02_hug_vs_ebm.ipynb Side-by-side comparison of HUGIML pattern profiles and EBM-style additive shape functions.
03_modeling_special_cases nb03_modeling_special_cases.ipynb Practical modeling cases including multiclass targets, imbalance, high-cardinality categoricals, adaptive binning, and pruning workflows.
04_credit_risk nb04_credit_risk.ipynb Credit-risk governance example using German Credit-style data, scorecard-style features, and auditable risk patterns.
05_aml nb05_aml.ipynb Anti-money-laundering example focused on suspicious transaction pattern discovery and model review artifacts.
06_mobile_money nb06_mobile_money_fraud.ipynb Mobile-money fraud example showing compact transaction-risk patterns and operational fraud-review signals.
07_basel_ca nb07_basel_ca.ipynb Basel capital-adequacy oriented example for regulated risk analytics and explainable model validation.
08_clinical nb08_healthcare_breast_cancer.ipynb Clinical classification example using breast-cancer features to demonstrate interpretable healthcare pattern explanations.
09_insurance nb09_insurance_underwriting.ipynb Insurance underwriting example with risk-selection patterns and model-card-friendly feature narratives.
10_medicare nb10_medicare_program_integrity.ipynb Medicare program-integrity example for suspicious provider/claim behavior and audit-ready pattern summaries.
11_workforce_analytics nb11_workforce_attrition.ipynb Workforce attrition analytics example showing HR risk patterns, explanation tables, and governance-oriented summaries.

Validation Highlights

The finance panels use German Credit / HELOC-style risk features such as loan duration, credit amount, checking status, and repayment-risk signals. The healthcare panels use Pima diabetes-style features such as glucose, BMI, pregnancies, pedigree, and age.

HUGIML vs EBM shape profiles

HUGIML native shape profiles compared with EBM shape functions

EBM is excellent for smooth effect inspection; HUGIML is strong when the explanation needs to be reviewed as a set of readable thresholds and pattern contributions.

Real-world and synthetic benchmarks

Real-world credit risk benchmark comparing HUGIML, LR, XGBoost, LightGBM, Random Forest, and EBM

Synthetic non-monotonic benchmark comparing HUGIML, LR, XGBoost, LightGBM, Random Forest, and EBM

Native missing-value handling

Native missing-value schemes in HUGIML, XGBoost, LightGBM, and EBM

Model Native missing-value behavior What to monitor
HUGIML Missing numerical values are absent from the transaction. Patterns requiring that feature item do not fire. Missingness rate and activation frequency of top patterns.
XGBoost Each split learns a default route for missing values. Whether default-route behavior changes under deployment shift.
LightGBM Histogram splits learn how missing values are routed. Missing-value routing and feature missingness drift.
EBM Missing values can be modeled as a separate bin/effect. Size and sign of each missing-bin effect.

Adaptive binning

Adaptive binning benchmark against fixed bin counts

Adaptive binning is a safe default when you do not want to tune B; fixed B=5 is a useful fast baseline.

Pattern explanations

HUGIML pattern explanations on finance and healthcare datasets

Model-card-ready artifacts

Model-card-ready HUGIML explanations

Observed benchmark results

Benchmark comparison

Model AUC (mean±std) Fit time/fold Complexity budget Remarks
HUG B=3 0.9907 ± 0.0031 0.32 s topK patterns topK is an explicit cap; actual mined patterns can be lower.
HUG B=5 0.9909 ± 0.0028 0.34 s topK patterns More bins per feature.
HUG adaptive 0.9954 ± 0.0022 1.20 s topK patterns Per-feature B increases fit time.
EBM 0.9940 ± 0.0025 11.0 s Additive terms + interactions Reference interpretable baseline.
XGBoost 0.9882 ± 0.0040 0.12 s Trees × leaves High-performing ensemble; not directly pattern-interpretable.
LightGBM 0.9921 ± 0.0028 0.07 s Leaves × trees Fast histogram boosting.

Complexity budget

The number of downstream features passed to the logistic regression (D) depends on L, feature_mode, and augmented_pair_transforms. K = topK, k = patterns actually mined (≤ K), k_aug = augmented pair features (≤ K), p = number of original input features.

L feature_mode augmented_pair_transforms D
L = 1 patterns_only (no effect at L=1) k
L = 1 original_plus_patterns (no effect at L=1) k + p
L > 1 patterns_only False k
L > 1 patterns_only True k + k_aug ≈ 2k
L > 1 original_plus_patterns False k + p
L > 1 original_plus_patterns True k + k_aug + p ≈ 2k + p

topk_budget_strict = True assembles all feature families first, then applies a single global information-gain filter retaining the best K features. D is hard-capped at K.

Missing value robustness

Missing value benchmark


Capabilities Summary

Capability Details
HUG pattern mining C++ accelerated via pybind11; optional OpenMP parallelism
scikit-learn API Full BaseEstimator / ClassifierMixin compliance
Mixed feature types Integer, float, categorical — auto-detected or explicitly supplied
Feature modes Pattern-only, original-plus-patterns, original-plus-interactions, augmented-pair downstream features
Fast hyperparameter search Cached adaptive-binning grid; mining runs once per unique (G, L, topK) group
Governance Studio Multi-view Streamlit dashboard with audit evidence views and upload support
Profile visualisations EBM-style 1-D/2-D HUG profiles, active-pattern explanations, coefficient-support views (Plotly)
Interpretability metrics Pattern count, coverage, overlap, sparsity, top-k cumulative contribution
Adaptive binning Per-feature supervised B selection — addresses the B-sensitivity trap
Pattern pruning Regulated remove/refit/calibrate workflow with full JSON audit trail
Multiclass & imbalance Multiclass report, SMOTE/class-weight pipeline, high-cardinality encoding
Benchmark suite Reproducible CV comparison vs EBM, XGBoost, RF, LR, RuleFit, GAM
Scalability dashboard Static runtime, latency, memory, n-scaling, p-scaling, and parameter-sweep evidence vs XGBoost and LightGBM
Calibration ECE, MCE, Brier score, reliability diagram data
Drift detection PSI + symmetric KL divergence + label drift
Monitoring Thread-safe PredictionMonitor, latency tracking
Governance Model cards (JSON + Markdown), audit artifacts, SBOM
Observability OpenTelemetry tracing, Prometheus metrics (both optional)
Secure serialisation Allowlist-based _RestrictedUnpickler, versioned schema
Deployment FastAPI inference server, Docker image, Kubernetes manifests
CI/CD GitHub Actions: lint → coverage → native tests → wheels → PyPI

Inference Server

A FastAPI-based inference server is included for containerised deployments.

docker build -t hugiml-core:latest -f docker/Dockerfile .

docker run -p 8080:8080 -v /path/to/models:/models hugiml-core:latest

curl -s -X POST http://localhost:8080/predict \
  -H "Content-Type: application/json" \
  -d '{"instances": [{"age": 35, "savings": "moderate"}]}'

Kubernetes manifests are in kubernetes/deployment.yaml.


CI / CD

Workflow Trigger What it does
ci.yml Every push / PR Lint, type-check, coverage gate, native tests, sanitizer build, benchmark regression, wheel build
release.yml Git tag v*.*.* Build platform wheels, generate SBOM, publish to PyPI, create GitHub release

Repository Structure

hugiml-core/
├── src/
│   ├── _native/                 C++ extension sources
│   └── hugiml/
│       ├── classifier.py        HUGIMLClassifierNative
│       ├── calibration.py       ECE, Brier, reliability diagrams
│       ├── explainability.py    SHAP bridge, feature lineage, stability
│       ├── governance.py        Model cards, audit artifacts
│       ├── monitoring.py        PredictionMonitor, DriftDetector
│       ├── serialization.py     save/load, SBOM, restricted unpickler
│       ├── telemetry.py         OpenTelemetry, Prometheus
│       ├── exceptions.py        Exception hierarchy
│       ├── metrics.py           Interpretability-complexity metrics
│       ├── plots.py             EBM-style profile visualisations
│       ├── pruning.py           Pattern editor + audit trail
│       ├── adaptive.py          Per-feature adaptive binning
│       ├── multiclass.py        Multiclass / imbalanced / encoding
│       ├── dashboard/           Governance Studio Streamlit application
│       │   ├── app.py           Entry point (hugiml-dashboard console script)
│       │   ├── runner.py        Model training and scoring helpers
│       │   ├── components/      Individual evidence-view renderers
│       │   └── ...
│       └── benchmarks/          CV comparison suite
├── notebooks/                   Worked examples (12 domain folders)
├── tests/                       Pytest suite
├── benchmarks/                  Micro-benchmarks and regression gate
├── docker/                      Dockerfile + FastAPI inference server
├── kubernetes/                  Deployment manifests
├── scripts/                     Build and utility scripts
├── docs/                        Sphinx documentation and model-card templates
├── .github/workflows/           CI/CD pipelines
├── pyproject.toml
└── setup.py

License

Apache License 2.0 — see LICENSE.


Citation

If you use hugiml-core in research or commercial work, please cite:

@article{krishnamoorthy2026interpretability,
  title        = {Interpretability Myopia: Governance Fitness in Financial Risk Models},
  author       = {Krishnamoorthy, Srikumar},
  journal      = {SSRN Electronic Journal},
  year         = {2026},
  doi          = {10.2139/ssrn.6821418},
  url          = {https://dx.doi.org/10.2139/ssrn.6821418},
  keywords     = {Interpretable machine learning, analytics, financial risk governance, deployment evaluation, regulatory compliance, model risk management}
}

@article{krishnamoorthy2024hugIML,
  author  = {Krishnamoorthy, Srikumar},
  title   = {Interpretable Classifier Models for Decision Support Using High Utility Gain Patterns},
  journal = {IEEE Access},
  volume  = {12},
  pages   = {126088--126107},
  year    = {2024},
  doi     = {10.1109/ACCESS.2024.3455563}
}

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

hugiml_core-1.1.8.tar.gz (360.1 kB view details)

Uploaded Source

Built Distributions

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

hugiml_core-1.1.8-cp313-cp313-win_amd64.whl (470.8 kB view details)

Uploaded CPython 3.13Windows x86-64

hugiml_core-1.1.8-cp313-cp313-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

hugiml_core-1.1.8-cp313-cp313-macosx_15_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

hugiml_core-1.1.8-cp313-cp313-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

hugiml_core-1.1.8-cp312-cp312-win_amd64.whl (470.7 kB view details)

Uploaded CPython 3.12Windows x86-64

hugiml_core-1.1.8-cp312-cp312-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

hugiml_core-1.1.8-cp312-cp312-macosx_15_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

hugiml_core-1.1.8-cp312-cp312-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

hugiml_core-1.1.8-cp311-cp311-win_amd64.whl (468.5 kB view details)

Uploaded CPython 3.11Windows x86-64

hugiml_core-1.1.8-cp311-cp311-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

hugiml_core-1.1.8-cp311-cp311-macosx_15_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

hugiml_core-1.1.8-cp311-cp311-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

hugiml_core-1.1.8-cp310-cp310-win_amd64.whl (467.8 kB view details)

Uploaded CPython 3.10Windows x86-64

hugiml_core-1.1.8-cp310-cp310-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

hugiml_core-1.1.8-cp310-cp310-macosx_15_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

hugiml_core-1.1.8-cp310-cp310-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

hugiml_core-1.1.8-cp39-cp39-win_amd64.whl (473.1 kB view details)

Uploaded CPython 3.9Windows x86-64

hugiml_core-1.1.8-cp39-cp39-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

hugiml_core-1.1.8-cp39-cp39-macosx_15_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9macOS 15.0+ x86-64

hugiml_core-1.1.8-cp39-cp39-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

File details

Details for the file hugiml_core-1.1.8.tar.gz.

File metadata

  • Download URL: hugiml_core-1.1.8.tar.gz
  • Upload date:
  • Size: 360.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hugiml_core-1.1.8.tar.gz
Algorithm Hash digest
SHA256 f41ec74d6c63d4bc37a6887908cda9b70aa70618d486d2c6f51290bf1e6b0adc
MD5 bcfacf00c03c4dfbda9b931c3d747e56
BLAKE2b-256 6b066c6f55fc5f4a55333ac434d07f2022d7273e40446bd67ed0cca2a5f183c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8.tar.gz:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: hugiml_core-1.1.8-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 470.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hugiml_core-1.1.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5760125811e38f95281a5925a29d3446d7f07cd639ad0c0c734fcc91589be73c
MD5 e8bbc43b25a9ec5ce5b560754750fe30
BLAKE2b-256 c81639bbda6229c4e626e58d99f629f8fdf3885f30387b2ce77743afc421fb42

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp313-cp313-win_amd64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 597ac93bdbc667a3edd9ace12db1bc89fdf9ed48597fcd66585b66bfc310cc51
MD5 85c23d04d8c237bf317eb11541b61ee4
BLAKE2b-256 e87cdd51942172c8a04c7e87d18bb08f3789c613555ba17f3949a8e885aada6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 8a8fecd40c39438bc0cc85aa3f96174d6584d6befe5b3a90d9791cc0f9052770
MD5 7cac0ad5305a39c5f55e5b5118af4090
BLAKE2b-256 7d9928796ced0ae97238962169e3daefe80d749d89b292dd0341a5fea3e30bbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp313-cp313-macosx_15_0_x86_64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 292bbe9994ef97b1174330d9250bea210326d9ad1df416026e106620d3993951
MD5 c1352e332eb8be3630be3a02290224c7
BLAKE2b-256 cb3a8d64a3208a12589d183e1884a80f00e4e300278d935b9c02e723bc072ee1

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp313-cp313-macosx_15_0_arm64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: hugiml_core-1.1.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 470.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hugiml_core-1.1.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 35c433ef840fc0cd54b5a953f27126dea8394eb5e908ec9097ad8e6c059b8221
MD5 0614910ef55c7c0f365790964100c596
BLAKE2b-256 e92898f3b147a8b4b8a62e4b3686e63f9cbf8d0c30cb0edafd34c0d6cdcf28ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp312-cp312-win_amd64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c080fa69df977f973b5220efbb699b9b7e5845fedc8c69a05a2b04557f850751
MD5 0a24636c90651b21d52f5984608d74ea
BLAKE2b-256 b93735de90de03e1ccdd5f4d84dafed9afabf6c4c97c57b5fca474ef3f667ee3

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 887a1123ee597c27de3b85557fbce91212d49c47025e668b7bd41b1e05f4c597
MD5 d21750fae30da9d60d8e9df5eee284d7
BLAKE2b-256 35849da983a750e1960261d420d4aab04a4e159a0214a883318a8cb699937801

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp312-cp312-macosx_15_0_x86_64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8a5c6de1a18429dc77543fbb0cb8822599bf07b869fb501eff1bf4f111888232
MD5 8a429e3c5804c04c232e9dd06889433e
BLAKE2b-256 d2c6f390292fc9907d585a0a43612fa4eb1c9e8e58bc9746d97b137e13e60fc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: hugiml_core-1.1.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 468.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hugiml_core-1.1.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5bda5245189fad1b78b591c530545ac7750f24caf7d73d1e0ae400b6ffc633ff
MD5 321a297d47b33ea61863d11dcc542c14
BLAKE2b-256 325004b2806a8d14339131e99c02d5d993f9c889393bdb329cda10146692ba56

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp311-cp311-win_amd64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5178fe7b85f2bd23a6d054aef9ae3431bbca079edac84fb737db3189bc9650eb
MD5 0fc1df139e271691281d47913d508af4
BLAKE2b-256 ecf64891068e50fdcd9ec53563f007b866097e55a1db8c676131512a06eccebb

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 5bd1e0cffc70467284ce2717fd6c4b06af782b037d02639a41d30da32767222e
MD5 b860a012dc2cd421896f8dc14d778abf
BLAKE2b-256 fbc3205c38be7c3938c8df01a65f14e8424761bdfe94c07b842e56ffd5ce8f46

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp311-cp311-macosx_15_0_x86_64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 fc64bc177e28cd575e6832308e1ce9ebbd9ce4e9e5e17bb39e01da4fa2fcc3d7
MD5 334b5e7f929d450e02fbb196711657ae
BLAKE2b-256 1766a88758baa38708447d9ccbebaff07b85a3f51fe8e2edd4b2afc273255888

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp311-cp311-macosx_15_0_arm64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: hugiml_core-1.1.8-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 467.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hugiml_core-1.1.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9076af1d93bb2ad86c2820ae7ea23c4555924a8866308f328ccec089370874a8
MD5 ed027490e8130a37dc912a2b103f6a9e
BLAKE2b-256 7b4ca14fe96b7a03470b8c16e2a98cb6a8c33128d5de439886e4e1e21a5e4186

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp310-cp310-win_amd64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f261bd781954ffa1088c0585bde61f6d69df21bd4c3cafca66de2f2e5b25baeb
MD5 f39cc9a7a4e8dc52575c733ab46f1437
BLAKE2b-256 a6e84310d212e0b67e9443e1431e8af8753f888e290cf150a0b5248038aff1fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 2719af3db626da8993a72f337bf4f680b83a470edfbda58c6e460ba9776cd8c0
MD5 686ffa96d74aaa0128fc7b54a16fc69a
BLAKE2b-256 341cc73f20cfbb1e073421b7fe942d8949600ea85bc6110759083a3542f026fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp310-cp310-macosx_15_0_x86_64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a85defea82772ce1eccc1ecb6f8ae79f349b8e9d089807f72e91a2be25d0d4bf
MD5 777659e476a401451330391d98e5fceb
BLAKE2b-256 7f727894ada4cd07b08e479ea79678a3ea7a1eb1cf370fb4dfedb44902f695c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp310-cp310-macosx_15_0_arm64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: hugiml_core-1.1.8-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 473.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hugiml_core-1.1.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6f5fbe3dadb22782d35a5b7132ae9eaf952ef297f26185a769ff224bb48f6cc0
MD5 ad8e245aec56cd5d848f5e3c9d3ea547
BLAKE2b-256 3504757bf4219dc22a11fab272215afd2a4e127c496b4df7191d8ba0bf0da11c

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp39-cp39-win_amd64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df19385398f579c7a0e2cef5276462250f5343aa12f0e0c60889f0f5efd3b5ef
MD5 bc6e5fd82a577a3c0e4961b2432e18b1
BLAKE2b-256 f2d715b60d3c9aff248e29ed6718f53f50509eeff31b26ce779a1e93e098b640

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp39-cp39-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp39-cp39-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 d06e8c2a1bcca39a7a500b982da306c257bde37e609effd183b17b414482ea92
MD5 847914422849407be6b50ba12f26a983
BLAKE2b-256 ee475ebc195536a3fd148a09056889f24a782854f905a8f090590ef406850b71

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp39-cp39-macosx_15_0_x86_64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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

File details

Details for the file hugiml_core-1.1.8-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for hugiml_core-1.1.8-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 214f448fdfc6874aa1838902ac5b84f6510240ece7b27ec0fa5763065e07089c
MD5 5f0de86b146277638667ce4757bd8812
BLAKE2b-256 d61b5a8a5caf62ece7e9bbd519f7c351a4d5051c72b1def81d87f66df90a65b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for hugiml_core-1.1.8-cp39-cp39-macosx_15_0_arm64.whl:

Publisher: release.yml on srikumar2050/hugiml-core

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