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
Table of Contents
- What Is HUG-IML?
- Installation
- Quick Start
- Feature Modes
- Execution Modes
- Hyperparameter Search
- Governance Studio Dashboard
- LLM Assistant
- Augmented Pair Features
- Adaptive Binning
- Missing Value Handling
- Model Explanation and Visualisations
- Native Mining Pruning Controls
- Pattern Pruning
- Interpretability Metrics
- Multiclass, Imbalanced Data, High-Cardinality
- Drift Detection & Monitoring
- Calibration
- Serialisation
- Governance & Model Cards
- Benchmark Suite
- Validation Highlights
- Inference Server
- CI / CD
- Repository Structure
- License
- 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 Streamlit UIs: Governance Studio dashboard and HUGIML LLM Assistant
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
HUGIMLClassifier is the primary public class name. HUGIMLClassifierNative remains available as a backward-compatible alias for existing code.
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 HUGIMLClassifier
clf = HUGIMLClassifier(adaptive_binning=True, L=1, G=5e-3, topK=100)
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 HUGIMLClassifier
clf = HUGIMLClassifier(
allCols=[int_col_names, float_col_names, cat_col_names],
origColumns=X.columns.tolist(),
B=-1,
adaptive_binning=True,
b_candidates=[2, 3, 5, 7, 10, 15],
L=1,
G=1e-5,
topK=150,
)
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 pattern-only behavior, so existing code keeps the same high-interpretability 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 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. |
The recommended tuning grid and configuration choices are described in Hyperparameter Search. Start there for first-pass model selection, then select a representation based on interpretability and runtime needs.
from hugiml import HUGIMLClassifier
# Backward-compatible default: pattern matrix only
clf = HUGIMLClassifier(B=-1, L=2, G=1e-2, topK=150,
adaptive_binning=True, feature_mode="patterns_only")
# Hybrid: original features + all binary HUGIML patterns
clf_hybrid = HUGIMLClassifier(B=-1, 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 = HUGIMLClassifier(B=-1, 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.
Execution Modes
HUGIML supports two execution modes:
execution_mode |
Purpose | Behavior |
|---|---|---|
"audit" |
Default mode for development, validation, governance, and regulated review | Keeps the complete training and traceability artifacts needed by audit, governance, and dashboard APIs. |
"production" |
Lean mode for deployment after validation | Keeps prediction, probability scoring, save, and load behavior, while dropping training/audit-heavy artifacts to reduce retained memory. |
from hugiml import HUGIMLClassifier
# Full traceability; this is the default.
audit_model = HUGIMLClassifier(execution_mode="audit")
audit_model.fit(X_train, y_train)
# Lean retained state for deployment.
prod_model = HUGIMLClassifier(execution_mode="production")
prod_model.fit(X_train, y_train)
prod_model.save_model("model.hugiml")
loaded = HUGIMLClassifier.load_model("model.hugiml")
In production mode, audit-oriented methods return a clear guidance result or raise a clear message asking you to refit with execution_mode="audit" when complete traceability is required.
Hyperparameter Search
HUGIML provides a fast cached tuning path for adaptive-binning grids. When adaptive_binning=True, the binning and transaction construction work is reused across eligible candidates, so compact grids can be evaluated without rebuilding the same mining inputs repeatedly.
Recommended named parameter grids
HUGIML tuning reads the recommended grids from hugiml.hyperparameter_configs. Use the default "performance" grid for a compact first pass, then switch to "interpretability" when the final representation should remain pattern-only.
from hugiml import HUGIMLClassifier
performance_grid = HUGIMLClassifier.default_param_grid()
interpretability_grid = HUGIMLClassifier.default_param_grid("interpretability")
# Equivalent default performance grid:
performance_grid = {
"B": [-1],
"adaptive_binning": [True],
"L": [1, 2],
"topK": [50, 100],
"feature_mode": ["original_plus_patterns"],
"G": [0.01, 0.001],
}
# Equivalent interpretability grid:
interpretability_grid = {
"B": [-1],
"adaptive_binning": [True],
"L": [1, 2],
"topK": [50, 100],
"feature_mode": ["patterns_only"],
"G": [0.01, 0.001],
"interaction_relaxed_mining": [True],
"augmented_pair_transforms": [False],
}
| Grid | Recommended use | Main values |
|---|---|---|
performance |
First-pass predictive tuning | feature_mode=["original_plus_patterns"], L=[1,2], topK=[50,100], G=[0.01,0.001] |
interpretability |
Pattern-only representation review | feature_mode=["patterns_only"], interaction_relaxed_mining=True, augmented_pair_transforms=False |
Both grids keep B=[-1] and adaptive_binning=[True], so each numerical feature chooses a supervised bin count. Do not enable interaction_relaxed_mining=True and augmented_pair_transforms=True in the same L >= 2 candidate.
Use focused follow-up grids when you want to explore interaction-relaxed mining or augmented-pair transforms.
tune() — cross-validated search with automatic fast path
result = HUGIMLClassifier.tune(
X, y,
param_grid="performance",
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. For the cached adaptive-binning path, keep the varying dimensions compact and centered on mining or representation choices such as G, L, topK, and feature_mode. Fixed values such as B=-1 and adaptive_binning=True may be included for clarity.
custom_grid = {
"B": [-1],
"adaptive_binning": [True],
"G": [1e-2, 5e-3],
"L": [1, 2],
"topK": [50, 100],
"feature_mode": ["patterns_only", "original_plus_patterns"],
}
result = HUGIMLClassifier.tune(
X, y,
param_grid=custom_grid,
cv=3,
scoring="roc_auc",
refit=True,
)
Choosing the model configuration
After the default grid identifies a useful budget range, choose one of these focused configurations based on the representation you want.
| Option | Feature mode | Interaction path | Extra downstream pair columns? | Interpretability | Runtime profile | Good default when... |
|---|---|---|---|---|---|---|
| Pure HUG patterns | patterns_only |
Standard L=1 or L=2 mining |
No | Very high | Lowest to moderate | You want the simplest pattern-only model. |
| Patterns + interaction-relaxed mining | patterns_only |
interaction_relaxed_mining=True |
No | Very high | Higher than augmented pairs | You want interaction evidence to affect HUG pattern discovery without adding a new feature family. |
| Patterns + augmented pairs | patterns_only |
augmented_pair_transforms=True |
Yes | High | Often faster than relaxed mining | You want selected pair evidence with better runtime control. |
| Originals + patterns | original_plus_patterns |
Standard L=1 or L=2 mining |
No | High | Moderate | Original variables have strong marginal signal and patterns add readable refinements. |
| Originals + patterns + relaxed mining | original_plus_patterns |
interaction_relaxed_mining=True |
No | High | Higher than augmented pairs | You want original features plus survivor-led HUG patterns, but no pair-operator columns. |
| Originals + patterns + augmented pairs | original_plus_patterns |
augmented_pair_transforms=True |
Yes | Moderate | Moderate to higher | You want the highest representation capacity among the recommended options. |
A survivor is a source feature that remains after interaction-information screening. It may not be one of the strongest features by itself, but it has useful pairwise or synergy evidence with another feature. In interaction-relaxed mining, these survivor source features are allowed to participate in native HUG pattern mining. A survivor is not automatically a final model feature; it is a candidate source that can help form mined patterns.
interaction_relaxed_mining=True relaxes the usual entry path for interaction-useful source features. Instead of adding product, difference, or sum columns to the downstream estimator, it lets a small survivor pool enter the native mining step, so the final representation remains HUG patterns plus any original features selected by feature_mode.
Use these focused follow-up grids:
# Pattern-only with interaction-relaxed mining.
patterns_relaxed_grid = {
"B": [-1],
"adaptive_binning": [True],
"L": [2],
"G": [1e-2, 5e-3],
"topK": [50, 100],
"feature_mode": ["patterns_only"],
"augmented_pair_transforms": [False],
"interaction_relaxed_mining": [True],
"interaction_relaxed_feature_size": [8, 12],
}
# Pattern-only with augmented pair features.
patterns_augmented_grid = {
"B": [-1],
"adaptive_binning": [True],
"L": [2],
"G": [1e-2, 5e-3],
"topK": [50, 100],
"feature_mode": ["patterns_only"],
"augmented_pair_transforms": [True],
"augmented_pair_mode": ["interaction_information"],
"aug_feature_size": [8, 12],
}
# Originals plus patterns with interaction-relaxed mining.
originals_relaxed_grid = {
"B": [-1],
"adaptive_binning": [True],
"L": [2],
"G": [1e-2, 5e-3],
"topK": [50, 100],
"feature_mode": ["original_plus_patterns"],
"augmented_pair_transforms": [False],
"interaction_relaxed_mining": [True],
"interaction_relaxed_feature_size": [8, 12],
}
# Originals plus patterns with augmented pair features.
originals_augmented_grid = {
"B": [-1],
"adaptive_binning": [True],
"L": [2],
"G": [1e-2, 5e-3],
"topK": [50, 100],
"feature_mode": ["original_plus_patterns"],
"augmented_pair_transforms": [True],
"augmented_pair_mode": ["interaction_information"],
"aug_feature_size": [8, 12],
}
fast_grid_tune() — single-split cached path for custom CV loops
tune_result = HUGIMLClassifier.fast_grid_tune(
X_train, y_train,
X_val, y_val,
param_grid="performance",
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 an interactive Streamlit dashboard for preparing model runs, comparing candidate models, reviewing model evidence, and producing governance-ready summaries. It keeps the existing Workbench/Governance layout and exposes evidence views for adaptive binning, interaction-relaxed mining, augmented pairs, feature families, pattern coverage, monitoring, and validation review.
Installation
pip install "hugiml-core[dashboard]"
The dashboard extra includes the UI and plotting dependencies used by the Governance Studio experience.
Launch
# Installed console script
hugiml-dashboard
# Pass Streamlit or dashboard arguments after the separator
hugiml-dashboard -- --cv 5 --random-state 42
# Source-tree development
python -m streamlit run src/hugiml/dashboard/app.py
When installed, hugiml-dashboard starts the packaged Streamlit app automatically, so you do not need to know the source file location.
What is included
| Area | What it supports |
|---|---|
| Workbench | Demo data or uploaded tabular data, target and column-role setup, candidate run configuration, model comparison, and drill-down review |
| Governance | Evidence summaries, validation results, representation review, adaptive-binning and augmented-pair evidence, feature-family review, pattern coverage, case-level explanations, data quality checks, policy review, monitoring signals, and model-card-oriented outputs |
Evidence views
| View | What it shows |
|---|---|
| Overview | Dataset summary, active configuration, validation score, feature mode, and top evidence |
| Validation | Cross-validation metrics, fold-level results, and calibration-oriented review |
| Representation Audit | Original features, HUG patterns, augmented pairs, binary indicators, feature-family provenance, and complexity budget |
| Pattern Inventory | Pattern table with coefficients, support, utility, information gain, review filters, and population coverage |
| Case Review | Row-level predictions, probabilities, active pattern evidence, and explanation details |
| Data Quality & Policy | Missingness review, sensitive/proxy column checks, and policy-oriented notes |
| Configuration Comparison | Side-by-side comparison across HUGIML settings and optional baseline models |
| Representation Pruning | Interactive removal of original features or representation columns with re-evaluation |
| Monitoring | PSI and KL-divergence drift signals across fitted training baselines and review data |
Data sources
- Demo datasets — built-in examples for dashboard exploration without uploading data.
- Upload — CSV, TSV, Excel (
.xlsx/.xls), or Parquet files. The sidebar lets you choose the target, ID, protected/sensitive, date, numeric, categorical, and excluded columns before fitting.
Binary indicators
Numeric two-value columns are treated as categorical indicators during HUGIML preparation, so encoded flags remain visible as discrete evidence in the dashboard instead of being shown as numeric intervals.
Demo preview
LLM Assistant
The HUGIML LLM Assistant is a chat-first Streamlit interface for working with HUGIML models and documentation from one place. It is designed for model-review workflows where a user asks natural-language questions, sees a structured answer, and then continues with follow-up questions in the same review session.
Unlike a general chatbot, the assistant grounds its responses in two HUGIML-specific sources:
| Query type | Grounding source | Typical output |
|---|---|---|
| Model/run questions | The fitted classifier, run artifacts, pattern inventory, validation metrics, pruning state, and governance metadata | Decision-maker summaries, key model drivers, risk/audit checks, and next actions |
| API/documentation questions | The local Sphinx/API documentation index, with fallback to package README and public API docstrings | Condensed API guidance, usage examples, parameter notes, and caveats |
| Mixed questions | Both model artifacts and documentation | Practical guidance that explains what the current model shows and which API or governance action applies |
Launch
# Installed console script
hugiml-llm
# Source-tree development
python -m streamlit run src/hugiml/llm/ui_app.py
The UI uses a single Q&A-style view. The session appears as a chronological transcript, the follow-up input stays inline below the latest answer, and quick model/run details are available in expandable panes below the chat.
Local model policy
The assistant can run in deterministic mode, or use a supported local Ollama model as a writer/synthesis layer over retrieved HUGIML evidence. The default policy favours small models that work on modest local machines, while still exposing larger configured models when they are installed and memory is available.
| Role | Model | Purpose |
|---|---|---|
| Default | qwen3:1.7b |
Primary local writer for grounded API and model-review answers |
| Light mode | gemma3:1b |
Lower-memory local response generation |
| Fallback | llama3.2:1b |
Retry model before falling back to deterministic routing |
| Deterministic router | built in | Always available when no supported local model is selected or available |
Additional configured Ollama models remain visible in the selector when available:
| Model | Profile |
|---|---|
llama3.2:3b |
Minimum larger LLM |
qwen3:4b |
Balanced local LLM |
gemma3:4b |
Balanced alternative |
qwen3:8b |
Stronger local LLM |
gemma3:12b |
Large-context local LLM |
The selector uses available system memory as a safety check. These thresholds are available-RAM requirements, not model file sizes:
| Model | Role / profile | Minimum available RAM |
|---|---|---|
qwen3:1.7b |
Default local LLM | 5.0 GB |
gemma3:1b |
Light mode | 3.5 GB |
llama3.2:1b |
Fallback before deterministic routing | 3.5 GB |
llama3.2:3b |
Minimum larger LLM | 6.0 GB |
qwen3:4b |
Balanced local LLM | 10.0 GB |
gemma3:4b |
Balanced alternative | 10.0 GB |
qwen3:8b |
Stronger local LLM | 16.0 GB |
gemma3:12b |
Large-context local LLM | 32.0 GB |
Supported tiny models are shown explicitly. Other extra small Ollama models that are not part of the configured policy are omitted from the selector, while deterministic routing remains available without Ollama.
Install the preferred Ollama models before launching the assistant:
ollama pull qwen3:1.7b
ollama pull gemma3:1b
ollama pull llama3.2:1b
Optional larger models can also be installed and selected when the local machine has enough available memory:
ollama pull llama3.2:3b
ollama pull qwen3:4b
ollama pull gemma3:4b
ollama pull qwen3:8b
ollama pull gemma3:12b
Only configured supported models are listed in the UI. Extra experimental or unsupported small Ollama models that may be installed locally are omitted from the selector.
Documentation-aware answers
For API questions such as “what hyperparameters should I tune?”, “how does pruning work?”, or “what governance artifacts are created?”, the deterministic runner builds a lightweight local index over the Sphinx documentation and package docs. It retrieves the relevant sections internally, then presents a concise, structured response with the API details needed to act.
Model-review answers
For run-specific questions such as “summarize findings”, “what changed after pruning?”, or “is this model ready for governance review?”, the assistant analyzes the active classifier outputs and produces a structured decision summary covering performance, main evidence drivers, interpretability constraints, audit concerns, and recommended next steps.
Static examples
These GitHub Pages examples show the intended Q&A-style review flow:
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.
The default augmented_pair_mode="interaction_information" scores candidate source columns using pair context before building product, absolute-difference, sum, and signed-difference features. Set augmented_pair_mode="marginal_ig" to use the v1.1.11 marginal-information-gain source selection behavior. aug_feature_size controls how many source columns are retained in interaction-information mode; ii_partner_size optionally bounds partner search; max_pair_features controls the source budget for marginal-IG mode.
clf = HUGIMLClassifier(
B=-1,
adaptive_binning=True,
L=2,
topK=50,
G=1e-2,
feature_mode="original_plus_patterns",
augmented_pair_transforms=True,
augmented_pair_mode="interaction_information",
aug_feature_size=10,
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. For larger datasets, adaptive_binning_sample_frac can choose bin counts from a deterministic stratified row sample, then apply the selected bin edges to the full training data.
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 HUGIMLClassifier:
from hugiml import HUGIMLClassifier
clf = HUGIMLClassifier(
adaptive_binning=True,
b_candidates=[3, 5, 7, 10],
min_marginal_gain_ratio=0.02,
adaptive_binning_sample_frac=0.20, # optional for large adaptive-binning runs
)
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. Set adaptive_binning_sample_frac=False for full-data bin selection, or a float in (0, 1] to use a stratified sample for the selection step.
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 HUGIMLClassifier
X_train.iloc[5, 2] = np.nan
clf = HUGIMLClassifier(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 = HUGIMLClassifier(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
Credit risk scoring
The static benchmark dashboard is reproducible from the repository source with
experiments/benchmark/benchmark_dashboard.py; see
Benchmark Suite for the exact rerun and assemble commands.
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
Native Mining Pruning Controls
This section covers native HUIM search pruning, which is different from the user-facing Pattern Pruning workflow below. Native pruning controls how the C++ miner avoids unnecessary candidate work during fit() while preserving the same public model outputs.
| Pruning path | When it is active | What it does | User-facing controls |
|---|---|---|---|
| LIU | Active for compound-pattern mining (L > 1, including the L=2 hot path). Bounded classifier mining uses exact candidate evidence before raising the utility floor. |
Raises the utility threshold from locally strong candidate sequences so low-utility branches can be skipped earlier. | Tune L, G, and topK; there is no separate public LIU switch. |
| LA | Active during generic utility-list child construction when the current branch uses the ordinary utility-ranked path. | Stops building a child utility list once the remaining upper bound can no longer pass the current utility floor. | Tune topK and G; relaxed-root interaction branches bypass this utility-floor shortcut where needed. |
| EUCS | Considered for L > 1 after the admitted item set is known. It is skipped for small, dense, or very wide pair spaces where the cache would not pay off. |
Builds a pair co-occurrence utility cache and skips pair intersections whose pair-level utility cannot enter the retained set. | Environment variables below. |
EUCS is enabled by default for eligible L > 1 native mining paths, but it has safety gates so small or dense workloads continue without the extra cache. The relevant environment variables are:
| Variable | Default | Meaning |
|---|---|---|
HUGIML_EUCS_ENABLE or HUGIML_EUCS_ENABLED |
enabled | Set to 0, false, no, off, disable, or disabled to disable EUCS. Set to 1, true, yes, on, enable, or enabled to enable it. Invalid values keep the default. |
HUGIML_EUCS_MIN_ITEMS |
32 |
EUCS is skipped when the admitted item universe is this size or smaller. |
HUGIML_EUCS_MAX_CELLS |
6000000 |
Maximum pair-cache cells allowed before EUCS is skipped. |
HUGIML_EUCS_MAX_DENSITY |
0.20 |
Maximum observed active-item density allowed before EUCS is skipped. |
Typical users should leave these settings at their defaults and tune model-level parameters first: L for maximum pattern length, G for the information-gain gate, and topK for the retained pattern budget. EUCS controls are mainly useful when benchmarking native mining behavior or diagnosing a workload whose pair space is unusually sparse or dense.
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 = HUGIMLClassifier(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
HUGIML includes two reproducible benchmark workflows:
- Package benchmark runner for quick CV-style comparisons from the installed package.
- Experiment dashboard runners in
experiments/for regenerating the published static benchmark and scalability dashboards.
The package-level runner is useful for ad hoc benchmark checks:
# 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/
Reproduce the benchmark analysis dashboard
The public benchmark analysis dashboard is generated from
experiments/benchmark/benchmark_dashboard.py.
This script defines the 50-dataset panel, model grids, preprocessing policy, checkpointing, result aggregation,
and static HTML assembly used for the dashboard.
From the repository root:
# Full fresh run; writes checkpoint, CSV summaries, and revised HTML
python experiments/benchmark/benchmark_dashboard.py --fresh
# Resume a partially completed run from checkpoint
python experiments/benchmark/benchmark_dashboard.py --resume
# Rebuild only the HTML/CSV summaries from an existing checkpoint
python experiments/benchmark/benchmark_dashboard.py --assemble
Default outputs are written under:
experiments/benchmark/results/
The dashboard runner is deterministic for a fixed code version and dependency environment: dataset generation,
train/validation/test splits, row subsampling, and model seeds are all controlled by the script. The generated
artifacts include details.csv, summary_by_scope.csv, scope_tests.csv, overall.csv, and
hugiml_benchmark_analysis_dashboard_revised.html.
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.
The scalability dashboard is reproducible from
experiments/scalability/scalability_dashboard.py:
# Full scalability run with checkpointing
python experiments/scalability/scalability_dashboard.py --fresh
# Resume a partially completed scalability run
python experiments/scalability/scalability_dashboard.py --resume
# Rebuild only the static dashboard from an existing checkpoint
python experiments/scalability/scalability_dashboard.py --assemble
Default outputs are written under the scalability results directory configured by the script and include the
JSON checkpoint, flat CSV export, and hugiml_scalability_dashboard.html.
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
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
Native missing-value handling
| 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 is a safe default when you do not want to tune B; fixed B=5 is a useful fast baseline. For larger adaptive workflows, the sampling option reduces bin-selection memory while preserving full-data training after edges are selected; in Governance Studio this option is exposed from the Workbench Advanced configuration path.
Pattern explanations
Model-card-ready artifacts
Observed benchmark results
| 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
topK is the feature-selection budget K. It caps each selected feature family before the final estimator is built, unless topk_budget_strict=True is used to apply one global cap. The effective downstream width D can be lower than these limits when fewer valid features are mined or selected.
| Configuration | Downstream feature budget when topK = K |
|---|---|
patterns_only, L = 1 |
Up to K HUG pattern features. |
patterns_only, L > 1, interaction_relaxed_mining=True |
Up to K HUG pattern features. The mining search may admit up to interaction_relaxed_feature_size interaction-information survivor source columns, but no extra downstream feature family is added. |
patterns_only, L > 1, augmented pairs enabled |
Up to K HUG pattern features + up to K augmented-pair features, so D ≤ 2K. |
original_plus_patterns, L = 1 |
Up to K selected original features + up to K HUG pattern features, so D ≤ 2K. |
original_plus_patterns, L > 1, interaction_relaxed_mining=True |
Up to K selected original features + up to K HUG pattern features, so D ≤ 2K. Survivor-led mining affects which patterns are available, not the number of downstream feature families. |
original_plus_patterns, L > 1, augmented pairs enabled |
Up to K selected original features + up to K HUG pattern features + up to K augmented-pair features, so D ≤ 3K. |
original_plus_interactions |
Original features are capped at K; retained interaction/pattern features are also bounded by the HUG pattern budget. With augmented pairs enabled, the same additional K augmented-pair cap applies. |
topk_budget_strict=True |
HUGIML first avoids oversized family blocks, then applies one global TopK selection across the constructed original, pattern, and augmented-pair candidates, so final D ≤ K. |
Feature-family budgets
topK defines the per-family selection budget used by HUGIML when constructing downstream representations. A configuration may include one, two, or three selected feature families:
- HUG pattern features
- selected original input features
- augmented-pair features, when enabled for higher-order configurations
Interaction-relaxed mining changes the native search path but does not add a separate downstream feature family; its budget is interaction_relaxed_feature_size, which controls survivor-source admission before pattern mining.
Each active family can contribute up to topK downstream columns before strict global selection. Therefore, the maximum downstream width is the number of active selected families multiplied by topK:
- one active family: up to
topKcolumns - two active families: up to
2 × topKcolumns - three active families: up to
3 × topKcolumns
For example, with topK=150, original_plus_patterns at L=1 can retain up to 150 selected original columns and up to 150 HUG pattern columns, for a maximum downstream width of 300. With L>1 and interaction_relaxed_mining=True, the same downstream width bound remains 300; the relaxed path affects pattern discovery rather than adding feature columns. With L>1 and augmented-pair transforms enabled, the same configuration can retain up to 150 selected original columns, 150 HUG pattern columns, and 150 augmented-pair columns, for a maximum downstream width of 450. When topk_budget_strict=True, HUGIML applies one final global TopK selection across the constructed downstream candidates, so the final downstream width is capped at topK.
With strict budgeting enabled, HUGIML applies the TopK budget during feature construction rather than after building a full expanded matrix. This keeps the practical downstream width bounded and avoids large intermediate matrices. In hybrid modes, original features are scored and preselected before prediction-time preparation, so prediction prepares only the retained original columns.
Missing value robustness
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 with optional stratified sampling — 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 and dashboard regeneration via experiments/benchmark/benchmark_dashboard.py |
| Scalability dashboard | Static runtime, latency, memory, n-scaling, p-scaling, and parameter-sweep evidence reproducible via experiments/scalability/scalability_dashboard.py |
| 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/
├── native/ C++ extension sources
├── src/
│ └── hugiml/
│ ├── classifier.py HUGIMLClassifier / 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
│ │ └── ...
│ ├── llm/ LLM Assistant package and runtime
│ │ ├── cli.py hugiml-llm console entry point
│ │ ├── ui_app.py Streamlit chat interface
│ │ ├── orchestrator.py Evidence routing and answer assembly
│ │ ├── docs_index.py Local documentation index
│ │ ├── assets/ Packaged configs and demo datasets
│ │ └── ...
│ └── benchmarks/ CV comparison suite
├── LLM/ Static assistant assets and GitHub Pages examples
│ ├── config/ Assistant model policy config
│ ├── datasets/ Built-in and user dataset folders
│ ├── examples/ Static demo pages and source data
│ ├── prompts/ Assistant prompt templates
│ └── ui/ Standalone chat UI helpers
├── notebooks/ Worked examples (12 domain folders)
├── tests/ Pytest suite
│ ├── dashboard/ Dashboard component tests
│ └── llm/ Optional LLM Assistant tests
├── benchmarks/ Micro-benchmarks and regression gate
├── experiments/ Reproducible dashboard-generation workflows
│ ├── benchmark/ Benchmark analysis runner, checkpointing, CSV summaries, HTML assembly
│ └── scalability/ Scalability runner, checkpointing, flat exports, HTML assembly
├── docker/ Dockerfile + FastAPI inference server
├── kubernetes/ Deployment manifests
├── scripts/ Build and utility scripts
├── docs/ Sphinx documentation, LLM assistant docs, 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.16.tar.gz.
File metadata
- Download URL: hugiml_core-1.1.16.tar.gz
- Upload date:
- Size: 654.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46944116ee5f9d0bf5cc872550aaf9328e1a6ad87fbff23fadf9f226007a564e
|
|
| MD5 |
6af8deb7bb88638d2a9ced71bd3ac451
|
|
| BLAKE2b-256 |
0c874d3850e38a090d3be4f4a4059e21e9af0c01d30c2d64fffa46ad7e6f2074
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16.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.16.tar.gz -
Subject digest:
46944116ee5f9d0bf5cc872550aaf9328e1a6ad87fbff23fadf9f226007a564e - Sigstore transparency entry: 2020291973
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 802.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 |
3b5cead0bcbfd78a4192e7689b82c858efb2531962e25261b1fb08546db67a00
|
|
| MD5 |
5a17415993e1fa7fcc01be32f8bde768
|
|
| BLAKE2b-256 |
e1d850cbfd846d6229b998945d9172808e857c6f1cd5a1e5530fc6ec9b88d685
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp313-cp313-win_amd64.whl -
Subject digest:
3b5cead0bcbfd78a4192e7689b82c858efb2531962e25261b1fb08546db67a00 - Sigstore transparency entry: 2020294164
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.5 MB
- 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 |
d47fe2df393955a7f3cdbe3c0feb18e95655495d00e26e909f25de406c2301a5
|
|
| MD5 |
0a6babcc5d0be1f6f2bc0c6e90718e85
|
|
| BLAKE2b-256 |
04a40cf0c4de71f645534509193e687c4e1e2ec89400fb5f65d44a6bc1de0410
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp313-cp313-manylinux_2_28_x86_64.whl -
Subject digest:
d47fe2df393955a7f3cdbe3c0feb18e95655495d00e26e909f25de406c2301a5 - Sigstore transparency entry: 2020293388
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp313-cp313-macosx_15_0_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp313-cp313-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.5 MB
- 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 |
80c58d53665a5c1361e2e5e85b1104d72e45ec1f43fa4db755484b9845975fac
|
|
| MD5 |
8b079b4ce404169b2df9d41321eef679
|
|
| BLAKE2b-256 |
b2edd231e8c402f299783e6ddb27cc6a8ce54e799e48db95d92e8521e82aa73b
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp313-cp313-macosx_15_0_x86_64.whl -
Subject digest:
80c58d53665a5c1361e2e5e85b1104d72e45ec1f43fa4db755484b9845975fac - Sigstore transparency entry: 2020293921
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp313-cp313-macosx_15_0_arm64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp313-cp313-macosx_15_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- 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 |
8a00f2ca97617209b653d4410b5110570330d331fc9b2b9125795c328ba7b043
|
|
| MD5 |
b1b81e70abe113b2fd8d8aa3f7b36f67
|
|
| BLAKE2b-256 |
c9c5519c3eda75345f2f04bcc4bbb290ec15b15cadac08a6dcf1010c2174b897
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp313-cp313-macosx_15_0_arm64.whl -
Subject digest:
8a00f2ca97617209b653d4410b5110570330d331fc9b2b9125795c328ba7b043 - Sigstore transparency entry: 2020292102
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 802.3 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 |
91f65839aca8be74dab071ccbe76e7412fc06b91b64f2e080d6cdb51e7c61f03
|
|
| MD5 |
69a4e1a9a71d84ac934ab3aed4f8fdd1
|
|
| BLAKE2b-256 |
dee80a99b8bd6a9b57dd778300a18f3e4c433e10d7b82f192e996838d059c23c
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp312-cp312-win_amd64.whl -
Subject digest:
91f65839aca8be74dab071ccbe76e7412fc06b91b64f2e080d6cdb51e7c61f03 - Sigstore transparency entry: 2020292499
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.5 MB
- 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 |
d38fca9e66e1fad293988a3329159f944f5d1527569630a91f2a07f5e64e6cc3
|
|
| MD5 |
48db617b74f47e6f1941ca6da411ed47
|
|
| BLAKE2b-256 |
4c73b8324c2f2585f16b9756bc24ed5fab0d4e684c013f44605b352dccd4c9e1
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp312-cp312-manylinux_2_28_x86_64.whl -
Subject digest:
d38fca9e66e1fad293988a3329159f944f5d1527569630a91f2a07f5e64e6cc3 - Sigstore transparency entry: 2020292374
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp312-cp312-macosx_15_0_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp312-cp312-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.5 MB
- 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 |
9e5a55d6b93a599e63807b9a7ab38eb01ee93761627a0d5ab83ed3ef940a5dc7
|
|
| MD5 |
4a4d55b1c3b04bb2f464d9d9fbc16bc9
|
|
| BLAKE2b-256 |
a4b690790df649bf4eb85121c32d3c71fb89ab07bd00899c9acf2ddf60f31be5
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp312-cp312-macosx_15_0_x86_64.whl -
Subject digest:
9e5a55d6b93a599e63807b9a7ab38eb01ee93761627a0d5ab83ed3ef940a5dc7 - Sigstore transparency entry: 2020292607
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp312-cp312-macosx_15_0_arm64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp312-cp312-macosx_15_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- 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 |
e73c6d25626f8c9b357973d4032531d2dd4dceff251470f09c71944a83139e63
|
|
| MD5 |
708df6e70a6d0d1e5d31e95ed076608b
|
|
| BLAKE2b-256 |
fc83184a31d835101129d5154c38b6df587ca31ed2a08bc8f55481c4def9fb2f
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp312-cp312-macosx_15_0_arm64.whl -
Subject digest:
e73c6d25626f8c9b357973d4032531d2dd4dceff251470f09c71944a83139e63 - Sigstore transparency entry: 2020293079
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 799.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c088c96b71b1598d48cc4e80de6ce895f1ddac6457cab541a7ccba82c01ede77
|
|
| MD5 |
7b1ff517304c8ea210bed67691f6881d
|
|
| BLAKE2b-256 |
d0fdd70182e49fedcc44b90dd6bbddc13afc19ed41ced36dfffd809585e759c4
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp311-cp311-win_amd64.whl -
Subject digest:
c088c96b71b1598d48cc4e80de6ce895f1ddac6457cab541a7ccba82c01ede77 - Sigstore transparency entry: 2020294084
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.5 MB
- 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 |
97bda72f9992f6135a4495fc973f1345c7c3ee6c3badf9747e7e2b4781ca97c3
|
|
| MD5 |
119a95e4de94a36c37f8c610c4ab5b32
|
|
| BLAKE2b-256 |
a2548f01de837f9b698a7ae0281ad1e6f08391e1c55e02dc32bc59ce46692e72
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp311-cp311-manylinux_2_28_x86_64.whl -
Subject digest:
97bda72f9992f6135a4495fc973f1345c7c3ee6c3badf9747e7e2b4781ca97c3 - Sigstore transparency entry: 2020292848
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp311-cp311-macosx_15_0_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp311-cp311-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.5 MB
- 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 |
7cbf726eb66666532f318adfabd266a283cf2d512d5e584f8020faedc6ae60e0
|
|
| MD5 |
3a5046e6d9ae4dbfea5a904400bd92ab
|
|
| BLAKE2b-256 |
a236ff8e8d06c6fd1a5e24c472631e79e5999dabb98bb0d93c176e7a4c1d1479
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp311-cp311-macosx_15_0_x86_64.whl -
Subject digest:
7cbf726eb66666532f318adfabd266a283cf2d512d5e584f8020faedc6ae60e0 - Sigstore transparency entry: 2020293495
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp311-cp311-macosx_15_0_arm64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp311-cp311-macosx_15_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- 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 |
7c175d89092784ca90c89e1ca75b34e89f593136cf7687a9663474724f0ebc2d
|
|
| MD5 |
b5dd823e906d33958fd11c9d14f8612b
|
|
| BLAKE2b-256 |
f03510a373ba79abbd7f3f137024248066cc3db08817598494769b52587e0416
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp311-cp311-macosx_15_0_arm64.whl -
Subject digest:
7c175d89092784ca90c89e1ca75b34e89f593136cf7687a9663474724f0ebc2d - Sigstore transparency entry: 2020292955
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 798.0 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 |
3487580bc4c6bcb67de6985a1b39aaa41830429a012a79fd0857d1a6bd3fc66e
|
|
| MD5 |
a61471a076793708f98dac89487bb873
|
|
| BLAKE2b-256 |
47ecfcd96f8e23175401a8894b55122277eaf6c552b56fc45fe7b2329a062a82
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp310-cp310-win_amd64.whl -
Subject digest:
3487580bc4c6bcb67de6985a1b39aaa41830429a012a79fd0857d1a6bd3fc66e - Sigstore transparency entry: 2020293838
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp310-cp310-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.5 MB
- 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 |
a4246b56f96302caaf627b37fd28332090aeb14993f90ed959ca7c539c6e245d
|
|
| MD5 |
751832a75c0b5cc4f5bd2ec05dd2cfe3
|
|
| BLAKE2b-256 |
698e9241beef1e118fba1e0b74b00d10a2b8626c504ac626eebb7b3adccb2453
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp310-cp310-manylinux_2_28_x86_64.whl -
Subject digest:
a4246b56f96302caaf627b37fd28332090aeb14993f90ed959ca7c539c6e245d - Sigstore transparency entry: 2020292740
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp310-cp310-macosx_15_0_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp310-cp310-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.5 MB
- 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 |
9dee4b51d0eefd2231c563366092579a9c41571dd344f17b3ba1a112f8747d80
|
|
| MD5 |
e9bd08e13b7db84d3363f3c2e4669241
|
|
| BLAKE2b-256 |
45343cd8993256fe3e39f2c9567324b643d3acf68ddd87463729339507acb3ac
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp310-cp310-macosx_15_0_x86_64.whl -
Subject digest:
9dee4b51d0eefd2231c563366092579a9c41571dd344f17b3ba1a112f8747d80 - Sigstore transparency entry: 2020294021
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp310-cp310-macosx_15_0_arm64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp310-cp310-macosx_15_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- 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 |
c4d51b443b4506c3a7a37ac668ffee8482c088093b36204200db8faac27fca13
|
|
| MD5 |
6e3628ef7bd75742fcb55debb986a56b
|
|
| BLAKE2b-256 |
f67ddca375de133ce7c696e43ba57404f4ea4b4293c57409b9e4e34dab146051
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp310-cp310-macosx_15_0_arm64.whl -
Subject digest:
c4d51b443b4506c3a7a37ac668ffee8482c088093b36204200db8faac27fca13 - Sigstore transparency entry: 2020293598
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 798.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c67269289440074b66ab063950a6fd51fe85d4cbba054b15034f7d815622c983
|
|
| MD5 |
feecb8a790dd6697330c6679816ec735
|
|
| BLAKE2b-256 |
0883ad5110c7bd8220bbd6cfecfc4d066b3239810a0c42bd98c9c170d6f4ca35
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp39-cp39-win_amd64.whl -
Subject digest:
c67269289440074b66ab063950a6fd51fe85d4cbba054b15034f7d815622c983 - Sigstore transparency entry: 2020293290
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp39-cp39-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp39-cp39-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.5 MB
- 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 |
80d3b503dc0afc52bdc43f6bcd659f9a7e22327b12033712a5eff04157c0b160
|
|
| MD5 |
9b9190d7f116004bdd1e700dbd6b6dcc
|
|
| BLAKE2b-256 |
4d3fe7d9d5c1bb445b7d834e499917f8e3a0e7694a023ae1efe6652b2f34a6dd
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp39-cp39-manylinux_2_28_x86_64.whl -
Subject digest:
80d3b503dc0afc52bdc43f6bcd659f9a7e22327b12033712a5eff04157c0b160 - Sigstore transparency entry: 2020293192
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp39-cp39-macosx_15_0_x86_64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp39-cp39-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.5 MB
- 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 |
d7ff75292103d3e1dcece9bf6647d5212caf3624874ad9762b2438fade5298cb
|
|
| MD5 |
5756436362c1740f505c77717140743f
|
|
| BLAKE2b-256 |
67270f337411328c83e5c3f1a41434e0cb509a30f8b91a036ebdfdc69e6347aa
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp39-cp39-macosx_15_0_x86_64.whl -
Subject digest:
d7ff75292103d3e1dcece9bf6647d5212caf3624874ad9762b2438fade5298cb - Sigstore transparency entry: 2020292226
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hugiml_core-1.1.16-cp39-cp39-macosx_15_0_arm64.whl.
File metadata
- Download URL: hugiml_core-1.1.16-cp39-cp39-macosx_15_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- 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 |
5c6de78288c48b28faea0d50267972ca89eee5e0a6286fd25b30b1851418f0ae
|
|
| MD5 |
c370550e8d380052e1cc9754289018cc
|
|
| BLAKE2b-256 |
6548783ffe9adf80d1cff5f3de20f29b1e3da6055047e30e0463b0693b7bd72c
|
Provenance
The following attestation bundles were made for hugiml_core-1.1.16-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.16-cp39-cp39-macosx_15_0_arm64.whl -
Subject digest:
5c6de78288c48b28faea0d50267972ca89eee5e0a6286fd25b30b1851418f0ae - Sigstore transparency entry: 2020293728
- Sigstore integration time:
-
Permalink:
srikumar2050/hugiml-core@ad798bf4887962416dab4e96eee1a41494f94525 -
Branch / Tag:
refs/tags/v1.1.16 - Owner: https://github.com/srikumar2050
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ad798bf4887962416dab4e96eee1a41494f94525 -
Trigger Event:
push
-
Statement type: