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).
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
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
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.
This section summarizes practical comparisons against established interpretable and high-performance tabular baselines. The goal is not to claim that HUGIML always beats boosted trees or EBM; the goal is to show where HUGIML provides a distinct trade-off: compact, auditable pattern explanations with competitive predictive behavior.
HUGIML vs EBM shape profiles
EBM learns smooth additive shape functions. HUGIML learns threshold/category profiles using native bin-level pattern contributions. On Pima diabetes and credit-risk examples, the models can express similar directional behavior, but HUGIML presents it as compact intervals/categories that are easier to audit.
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 non-monotonic benchmarks
The following benchmark panels compare HUGIML with LR, XGBoost, LightGBM, Random Forest, and EBM under explicit fitted-complexity budgets. They are intended as validation visuals, not as a universal ranking of models.
Real-world credit-risk benchmark. On Give Me Some Credit and Taiwan Credit Card Default, LightGBM and XGBoost achieve the highest raw ROC-AUC. HUGIML improves over LR while remaining in a compact fitted-complexity range. EBM is shown with capped bins (max_bins=8, interactions=0) so that it is assessed as a competitive interpretable baseline rather than being penalized by excessive bin-score complexity.
Synthetic non-monotonic benchmark. The synthetic panels use two controlled datasets with interval-like and oscillatory feature effects. They illustrate model behavior when LR is structurally misspecified by a single global slope. HUGIML provides a compact nonlinear lift over LR, while LightGBM and XGBoost remain strongest in raw ROC-AUC. EBM is shown with capped bins (max_bins=16, interactions=0) to provide a fairer interpretable baseline.
For a detailed benchmark analysis results, refer to the interactive benchmark dashboard here: Open the HUGIML Benchmark Analysis Dashboard
Native missing-value handling
HUGIML, XGBoost, LightGBM, and EBM can all operate without an external imputation pipeline, but they treat missingness differently.
| 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. |
Native missing handling is usually preferable to blindly injecting mean/median values. It does not remove all risk: if the missingness mechanism changes, all models that use missingness as signal can drift.
Adaptive binning
The global B parameter controls numerical bin resolution. A single fixed B can be too coarse for informative features or too fragmented for noisy ones. Adaptive binning selects per-feature resolution using supervised information gain and elbow stopping.
Adaptive binning is a safe default when you do not want to tune B; fixed B=5 is a useful fast baseline; very large fixed B can over-fragment patterns.
Pattern explanations on finance and healthcare datasets
HUGIML keeps explanations close to the model: feature intervals/categories, coefficients, support, utility, and information gain are available directly from the fitted classifier.
Learned patterns map naturally to domain narratives: glucose/BMI/age in diabetes and duration/checking-status/credit-amount style signals in German Credit or HELOC-style risk scoring.
Model-card-ready artifacts
Because HUGIML’s explanations are compact, they can be copied directly into model cards, audit packets, validation reports, and deployment reviews.
Features
| 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 |
| 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 — fixes the B-sensitivity trap |
| Feature modes | Pattern-only, original-plus-patterns, and original-plus-interactions downstream representations |
| 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 |
| 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 |
Installation
# Core
pip install hugiml-core
# With profile plots
pip install "hugiml-core[plots]"
# 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 CMake or 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:prepareXyperforms 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 insidefit()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. |
from hugiml import HUGIMLClassifierNative
# Backward-compatible default: pattern matrix only
clf = HUGIMLClassifierNative(
B=10,
L=2,
G=1e-3,
topK=150,
adaptive_binning=True,
feature_mode="patterns_only",
)
# Hybrid: original features + all binary HUGIML patterns
clf_hybrid_all = HUGIMLClassifierNative(
B=10,
L=2,
G=1e-3,
topK=150,
adaptive_binning=True,
feature_mode="original_plus_patterns",
)
# Hybrid: original features + higher-order/interaction patterns only
clf_hybrid_interactions = HUGIMLClassifierNative(
B=10,
L=2,
G=1e-3,
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. feature_importances() and model_summary() report the downstream feature representation used by the fitted model, while get_hug_features() and get_pattern_info() remain pattern-only APIs.
Model Explanation Dashboard
The explanation dashboard is available directly from a fitted model:
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. Positive values signal the target class; negative values signal the complementary class.
Existing example dashboards:
public tabular benchmark classification
Credit risk scoring
Profile Visualisations
from hugiml.plots import HUGPlotter
plotter = HUGPlotter(clf)
# EBM-style 1-D shape function: utility per bin + support overlay
plotter.plot_marginal_bin_profile("age", X=X_test).show()
# Feature-combination view for compound patterns
plotter.plot_feature_combinations("age").show()
# Top patterns by importance
plotter.plot_top_patterns(top_n=20).show()
# Local explanation for one sample
plotter.plot_active_patterns(X_test, sample_idx=0).show()
# Full interactive dashboard
plotter.plot_dashboard(X_test, dataset_name="Dataset", output_path="dashboard.html")
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%
Pattern Pruning: Regulated Editing Workflow
In regulated domains, analysts often need to remove patterns that reference protected attributes, have high PSI, or are operationally invalid. HUGIML provides an EBM-inspired 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())
Adaptive Binning
The global B parameter controls how many quantile bins each numerical feature is discretised into. Choosing one B for all features can miss the optimal resolution for informative features or over-fragment noisy ones.
HUGIMLAdaptive selects the optimal bin count per feature via supervised entropy/information-gain search with elbow stopping.
from hugiml.adaptive import HUGIMLAdaptive
clf = HUGIMLAdaptive(
b_candidates=[3, 5, 7, 10, 15],
L=2,
G=1e-4,
)
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(
B=10, # upper bound
adaptive_binning=True,
b_candidates=[3, 5, 7, 10],
min_marginal_gain_ratio=0.02, # elbow threshold
)
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.
NaN handling: adaptive pre-binning treats non-finite cells as np.nan, consistent with native missing-value handling.
Missing Value Handling
HUGIML v1.1.0 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
This differs from median/mean imputation: HUGIML does not fabricate replacement values. It also differs from row dropping: incomplete rows remain usable.
See the benchmark section below for missing-value robustness.
Mining Patterns About Missingness
In healthcare and finance, absence of data is often informative, a missing critical lab may indicate the patient was too unstable for testing, or a missing field in a credit application may signal intentional concealment.
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
# Usage
X_with_indicators = add_missingness_indicators(X_raw)
clf = HUGIMLClassifierNative(B=7, L=2, G=1e-4)
clf.fit(X_with_indicators, y)
# Extract missingness-related patterns
all_patterns = clf.get_hug_features()
missing_patterns = [p for p in all_patterns if '__MISSING' in p]
# Example patterns discovered:
# ['Glucose__MISSING=1 AND Age=[50,65] AND EmergencyAdmit=1',
# 'Troponin__MISSING=1 AND HeartRate=[110,140]',
# 'CurrentDebt__MISSING=1 AND Income=low']
Note: Apply the same add_missingness_indicators() transformation to test/production data. Use sklearn.pipeline.Pipeline with FunctionTransformer to ensure consistency.
Multiclass, Imbalanced Data, High-Cardinality Categoricals
Multiclass Classification
from hugiml.multiclass import (
MulticlassHUGReport,
make_imbalanced_pipeline,
encode_high_cardinality,
apply_encoding,
)
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), the pattern mining engine faces combinatorial explosion and dramatically slower mining. To reduce cardinality while preserving discriminative signal, group rare categories as 'OTHER':
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 # Skip low-cardinality columns
# Compute frequency per category
value_counts = X[col].value_counts()
min_count = len(X) * min_frequency
# Map rare categories to '__OTHER__'
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
# Usage
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)
# Example: 10,000 ZIP codes → ~100 frequent ZIPs + '__OTHER__'
# Patterns: "ZIP_CODE=10001 AND Income=low" or "ZIP_CODE=__OTHER__ AND CreditScore=[600,650]"
# Or use existing utility (basic 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. Use a custom sklearn transformer or save the learned rare_categories mapping separately to ensure consistency.
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/
Worked notebooks in notebooks/ are organized as 12 self-contained folders. Each folder includes an .ipynb notebook and, where available, matching .py, .html, data, and metadata artifacts.
| 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. |
Observed results: public benchmark snapshot
The shipped benchmark runner supports multiple public datasets; the top validation visuals above emphasize healthcare and credit-risk examples.
| 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. |
Missing value robustness
Simulation setup: Wine dataset, 3-fold stratified CV, missing rates 0–40%, mechanisms MCAR, MAR, and MNAR.
Observations:
- HUGIML fit time can decrease with more missing data because the transaction miner processes shorter transactions.
- Tree models often route missing values through learned default directions.
- Imputation-based pipelines may learn artifacts when the imputed distribution is stable in train/test but shifts in deployment.
- HUGIML’s “no item” semantics give interpretable absence: a pattern simply does not fire if one of its features is unavailable.
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)
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.
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}")
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 |
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
│ └── benchmarks/ CV comparison suite
├── notebooks/ Worked examples
├── tests/ Pytest suite
├── benchmarks/ Micro-benchmarks and regression gate
├── docker/ Dockerfile + FastAPI inference server
├── kubernetes/ Deployment manifests
├── scripts/ Build and utility scripts
├── docs/ 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hugiml_core-1.1.3.tar.gz.
File metadata
- Download URL: hugiml_core-1.1.3.tar.gz
- Upload date:
- Size: 223.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f50f5667c76658b1ed5372d4c115dd1fe1de45be63ef04c4af74c6925dd2e672
|
|
| MD5 |
9b5e4f899610aebdcef7ca1d3f545e55
|
|
| BLAKE2b-256 |
375b449a627680dedae1defc030ee8b1983ac51d905b8a0f25c56b9cdfc5edb0
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3.tar.gz:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3.tar.gz -
Subject digest:
f50f5667c76658b1ed5372d4c115dd1fe1de45be63ef04c4af74c6925dd2e672 - Sigstore transparency entry: 1671772497
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 305.3 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
012ea69e788c5590d384ca4cbe85f99fc4af0e14ba445ad55c06a89d2e59a9c0
|
|
| MD5 |
24721cbf891830fe8970696008a95215
|
|
| BLAKE2b-256 |
1da5cc357eac6bf740e064f6d574e16cf4dbac30ea867e88aa02b802831d90d6
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp313-cp313-win_amd64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp313-cp313-win_amd64.whl -
Subject digest:
012ea69e788c5590d384ca4cbe85f99fc4af0e14ba445ad55c06a89d2e59a9c0 - Sigstore transparency entry: 1671777684
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 836.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
322aa9fc5a57d7681b2a9b04501db95e1f11272abaf8c2ff6c0b3a3f72c45137
|
|
| MD5 |
77aadb3ce38cc10648bcb787ac643b57
|
|
| BLAKE2b-256 |
745a403db9d56c5dc5264dd8600ccc36f7b5a78e4883cf62d941cf0027d827f3
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp313-cp313-manylinux_2_28_x86_64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp313-cp313-manylinux_2_28_x86_64.whl -
Subject digest:
322aa9fc5a57d7681b2a9b04501db95e1f11272abaf8c2ff6c0b3a3f72c45137 - Sigstore transparency entry: 1671778068
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp313-cp313-macosx_15_0_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp313-cp313-macosx_15_0_x86_64.whl
- Upload date:
- Size: 830.2 kB
- Tags: CPython 3.13, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0f859a57b96caaf2b174a98aed29f3957dad099f2b9b41e28d167199054f27c
|
|
| MD5 |
9cba429cd441ebf2fe8a24b3204942be
|
|
| BLAKE2b-256 |
222bcdf5f6dc93c20b27011beeecee49b8dde6ccf1207e3a30dbe3709807fae5
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp313-cp313-macosx_15_0_x86_64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp313-cp313-macosx_15_0_x86_64.whl -
Subject digest:
f0f859a57b96caaf2b174a98aed29f3957dad099f2b9b41e28d167199054f27c - Sigstore transparency entry: 1671773958
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp313-cp313-macosx_15_0_arm64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp313-cp313-macosx_15_0_arm64.whl
- Upload date:
- Size: 790.2 kB
- Tags: CPython 3.13, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04aa140f2ce1acd7e078dc6e0af913975001a4f6a3f82f541d824b87f2c09b18
|
|
| MD5 |
17c8578d6a0e4d02e858dc230b9297da
|
|
| BLAKE2b-256 |
4ebb8d95b9a5729b69ab897c137b59d63322bcee6ec564e0e5937cb1ef986312
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp313-cp313-macosx_15_0_arm64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp313-cp313-macosx_15_0_arm64.whl -
Subject digest:
04aa140f2ce1acd7e078dc6e0af913975001a4f6a3f82f541d824b87f2c09b18 - Sigstore transparency entry: 1671783446
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 305.2 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa8558f9ec35c5ad9a5640ef32d757fc2c3bd6aaa75c1d215113cdb211b7239d
|
|
| MD5 |
32052705a368e45adae0629ed5030988
|
|
| BLAKE2b-256 |
e06369bdc43000850a25a72e296e056f9aff5d9d2d79a5fecaa0d4d8b3c87171
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp312-cp312-win_amd64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp312-cp312-win_amd64.whl -
Subject digest:
aa8558f9ec35c5ad9a5640ef32d757fc2c3bd6aaa75c1d215113cdb211b7239d - Sigstore transparency entry: 1671776248
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 836.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12f0e9ae1c3b6e8c19960eb6596ac1a976031713ba758927bd0c07635ad28468
|
|
| MD5 |
8f510a48bee959a5a09c6c5a6ec63c75
|
|
| BLAKE2b-256 |
8e2763fd69b613f87ea65058684e3327b33b544fcbfb1a18b0022c9d4b455aa6
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp312-cp312-manylinux_2_28_x86_64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp312-cp312-manylinux_2_28_x86_64.whl -
Subject digest:
12f0e9ae1c3b6e8c19960eb6596ac1a976031713ba758927bd0c07635ad28468 - Sigstore transparency entry: 1671778638
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp312-cp312-macosx_15_0_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp312-cp312-macosx_15_0_x86_64.whl
- Upload date:
- Size: 830.2 kB
- Tags: CPython 3.12, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e775c6699059d5fb9016ee0e17d8f28bf88cd827c982c8898f000101df140e6b
|
|
| MD5 |
7f36cbe08d3d499e20000becbc188c57
|
|
| BLAKE2b-256 |
0d0cef3e7f4453cdbccc840d701ab61f0b2fb5a9c2b47ae813954178dad4fb9d
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp312-cp312-macosx_15_0_x86_64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp312-cp312-macosx_15_0_x86_64.whl -
Subject digest:
e775c6699059d5fb9016ee0e17d8f28bf88cd827c982c8898f000101df140e6b - Sigstore transparency entry: 1671782498
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp312-cp312-macosx_15_0_arm64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp312-cp312-macosx_15_0_arm64.whl
- Upload date:
- Size: 790.2 kB
- Tags: CPython 3.12, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e29c061b0ceaaa57030d94eb1d41171e3c367a6c24d4874a8a1f69ae139c4233
|
|
| MD5 |
efc2740584822d277b8fbf43670faf57
|
|
| BLAKE2b-256 |
580fba065a97d7269c2825ead481a119c53d68598a805be21b732565b86057e2
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp312-cp312-macosx_15_0_arm64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp312-cp312-macosx_15_0_arm64.whl -
Subject digest:
e29c061b0ceaaa57030d94eb1d41171e3c367a6c24d4874a8a1f69ae139c4233 - Sigstore transparency entry: 1671782125
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 303.4 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e04741fcbc92bddef337992db7952639de88e3b7fe100b9165e49fb6ab7b45d
|
|
| MD5 |
e5d2d49a86462ec00a353085e5579f7c
|
|
| BLAKE2b-256 |
798f99b0ebe7e20e11c942d3d11c99c14be69fbd3c47cb2a16acc4aa0ab331fa
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp311-cp311-win_amd64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp311-cp311-win_amd64.whl -
Subject digest:
6e04741fcbc92bddef337992db7952639de88e3b7fe100b9165e49fb6ab7b45d - Sigstore transparency entry: 1671773831
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 832.7 kB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c0a83fe8edb8f5557e743a15bc04d326280bbf3d4c5df63094722abcad04490
|
|
| MD5 |
475c5e739675432d15c2e64b6d413cea
|
|
| BLAKE2b-256 |
7d8b914a85fcf51a659898e51eab342ef9f220e80afc7d2bbfdb4d78d9d355e6
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp311-cp311-manylinux_2_28_x86_64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp311-cp311-manylinux_2_28_x86_64.whl -
Subject digest:
6c0a83fe8edb8f5557e743a15bc04d326280bbf3d4c5df63094722abcad04490 - Sigstore transparency entry: 1671776493
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp311-cp311-macosx_15_0_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp311-cp311-macosx_15_0_x86_64.whl
- Upload date:
- Size: 827.8 kB
- Tags: CPython 3.11, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
775e710dd10268c80bcc28026c4886b707eb88806b6692043e1a6a063716d073
|
|
| MD5 |
e353dc74fb024306add68b82f3504ba0
|
|
| BLAKE2b-256 |
3865ffc856af47f399b7e32e3ee701ab570760fd0ff23dbcff1a7bb64fbb15f2
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp311-cp311-macosx_15_0_x86_64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp311-cp311-macosx_15_0_x86_64.whl -
Subject digest:
775e710dd10268c80bcc28026c4886b707eb88806b6692043e1a6a063716d073 - Sigstore transparency entry: 1671774650
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp311-cp311-macosx_15_0_arm64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp311-cp311-macosx_15_0_arm64.whl
- Upload date:
- Size: 786.6 kB
- Tags: CPython 3.11, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef421e3a54760cdfcddf9eb58b1a841adeefea72ed343f115bac027a97a7a4b3
|
|
| MD5 |
9f59c743f85464b3d5e77990ff90bcc2
|
|
| BLAKE2b-256 |
ed778f5d0384a2648436f102e212e114dfcefb167d6c2f0046d5c00b9048ee5b
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp311-cp311-macosx_15_0_arm64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp311-cp311-macosx_15_0_arm64.whl -
Subject digest:
ef421e3a54760cdfcddf9eb58b1a841adeefea72ed343f115bac027a97a7a4b3 - Sigstore transparency entry: 1671776039
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 302.6 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acac01d1e78d56737b2036b03259c56de4166f3c3ff8b6fc840bb7a577832556
|
|
| MD5 |
5f2a2b10f6ed970fce946d5f366b70b0
|
|
| BLAKE2b-256 |
8280e8c77fe3a0ff7586c6311cd83a9638bd606d5476e49cf2ee484db5f06a9a
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp310-cp310-win_amd64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp310-cp310-win_amd64.whl -
Subject digest:
acac01d1e78d56737b2036b03259c56de4166f3c3ff8b6fc840bb7a577832556 - Sigstore transparency entry: 1671783007
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp310-cp310-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 830.2 kB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc101ad57819f095f1f6b1cb877e6acc7a12383d60f6d6b9806773cfd3392037
|
|
| MD5 |
af639e1cf4696c5212b67fd305f7a9da
|
|
| BLAKE2b-256 |
359ff0fd47dca698582c6a8db90d9606111a6428306a809ffa3fdfa0169ad044
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp310-cp310-manylinux_2_28_x86_64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp310-cp310-manylinux_2_28_x86_64.whl -
Subject digest:
cc101ad57819f095f1f6b1cb877e6acc7a12383d60f6d6b9806773cfd3392037 - Sigstore transparency entry: 1671779527
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp310-cp310-macosx_15_0_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp310-cp310-macosx_15_0_x86_64.whl
- Upload date:
- Size: 827.2 kB
- Tags: CPython 3.10, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8cd2019aa0916738a63edf5bb0c2d9b501185c61177531ec032767f551cbe6b
|
|
| MD5 |
275488f4245cbadc2317425b28d4abe9
|
|
| BLAKE2b-256 |
9ef1fec637fe22f8e851d7ac74489fa0c981989a9a8ae45a0679c914a6cbe5a7
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp310-cp310-macosx_15_0_x86_64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp310-cp310-macosx_15_0_x86_64.whl -
Subject digest:
c8cd2019aa0916738a63edf5bb0c2d9b501185c61177531ec032767f551cbe6b - Sigstore transparency entry: 1671775877
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp310-cp310-macosx_15_0_arm64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp310-cp310-macosx_15_0_arm64.whl
- Upload date:
- Size: 785.5 kB
- Tags: CPython 3.10, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5a5af6825cb1529cc036af80ec2e91e43d5305c37d8ee52f3bac11ba52bea61
|
|
| MD5 |
0385a45765b5be004055c459a519d178
|
|
| BLAKE2b-256 |
2565390234bb4c5280dfe11554a36c1f6dfb745a0211c11e7e64946e4e40f233
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp310-cp310-macosx_15_0_arm64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp310-cp310-macosx_15_0_arm64.whl -
Subject digest:
d5a5af6825cb1529cc036af80ec2e91e43d5305c37d8ee52f3bac11ba52bea61 - Sigstore transparency entry: 1671780630
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 305.8 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abb6fa60aa7163058a5707814d966c4a8f148b611c314650609414efd29ca13f
|
|
| MD5 |
291d2ae27298279bcb11c98dc8ba9bdc
|
|
| BLAKE2b-256 |
ad3e36d4488fe579fabf67f0f165554a1dfcfc2e9849bb185202f8f831478ee3
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp39-cp39-win_amd64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp39-cp39-win_amd64.whl -
Subject digest:
abb6fa60aa7163058a5707814d966c4a8f148b611c314650609414efd29ca13f - Sigstore transparency entry: 1671774163
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp39-cp39-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp39-cp39-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 829.3 kB
- Tags: CPython 3.9, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
789dcdef771ef476aa7d3bd27c2c7cd720437268531c15bd50cac4072687da9a
|
|
| MD5 |
a5d383e417884c72722d37612c636e77
|
|
| BLAKE2b-256 |
e0d71feecd323d178692a639ee8bec0667c8bf9c5aa81d20f753703c30e4de65
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp39-cp39-manylinux_2_28_x86_64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp39-cp39-manylinux_2_28_x86_64.whl -
Subject digest:
789dcdef771ef476aa7d3bd27c2c7cd720437268531c15bd50cac4072687da9a - Sigstore transparency entry: 1671777219
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp39-cp39-macosx_15_0_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp39-cp39-macosx_15_0_x86_64.whl
- Upload date:
- Size: 827.6 kB
- Tags: CPython 3.9, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a624dd23580105d8a413be706afd545126492ec487381ca80315409781e065f8
|
|
| MD5 |
5e22e51447c134bf365df7861c923262
|
|
| BLAKE2b-256 |
6e42453e1ec6df3bef534b67b910d6b09b3c49232783c6ddb1e7de3aa3dcba1d
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp39-cp39-macosx_15_0_x86_64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp39-cp39-macosx_15_0_x86_64.whl -
Subject digest:
a624dd23580105d8a413be706afd545126492ec487381ca80315409781e065f8 - Sigstore transparency entry: 1671782832
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.3-cp39-cp39-macosx_15_0_arm64.whl.
File metadata
- Download URL: hugiml_core-1.1.3-cp39-cp39-macosx_15_0_arm64.whl
- Upload date:
- Size: 785.9 kB
- Tags: CPython 3.9, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77f8a7b64dfc66a2aaba80391ebc679cf32adf74616a23cc9e2e8757358f6f7d
|
|
| MD5 |
f73a9fbb67e79aecc88b015aee5a6a9f
|
|
| BLAKE2b-256 |
4540186a3b59a05807d4d13eb3df168eaabc06d448a07028e7d7c2790227e5fb
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.3-cp39-cp39-macosx_15_0_arm64.whl:
Publisher:
release.yml on srikumar2050/hugiml-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugiml_core-1.1.3-cp39-cp39-macosx_15_0_arm64.whl -
Subject digest:
77f8a7b64dfc66a2aaba80391ebc679cf32adf74616a23cc9e2e8757358f6f7d - Sigstore transparency entry: 1671775341
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@9e33953604395adc8249977a663ff6cb8c05549e -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9e33953604395adc8249977a663ff6cb8c05549e -
Trigger Event:
push
-
Statement type: