KMDS Modeling
kmds-modeling is a lightweight supporting package for KMDS modeling workflows. It provides the runtime plumbing, evaluation orchestration, artifact export utilities, and modeling contract documentation needed to bridge KMDS feature outputs and production-ready model assets.
Overview
- Supports KMDS workspace modeling without embedding domain-specific business logic.
- Provides a generic
ExperimentRunnerengine for cross-validation, transformer orchestration, and candidate model evaluation. - Includes a CLI for standard evaluation and production export flows.
- Keeps workspace-specific examples and artifacts outside the installable package.
Key Features
- Config-driven modeling pipeline via YAML configuration files (e.g.
model_config.yaml) - Safe cross-validation with fold-specific transformer fitting
- Uniform candidate wrapper support for any model implementation
- Export of serialized model weights, feature pipeline, and metadata
- Path coordination for KMDS workspace layout handling
- Task contract documentation under
documents/modeling_contracts/
Installation
pip install kmds-modeling
Package discovery
Clients can discover runtime metadata using the package API or import installed package metadata.
from kmds_modeling import get_package_info
info = get_package_info()
print(info)
The discovery payload includes standard fields used across KMDS packages:
package_nameversionentry_pointscli_commandsprovided_packagesdocumentation_note
This package publishes the kmds-modeling console script entry point as:
kmds-modeling = "kmds_modeling.cli:cli"
Clients can inspect the loaded entry points at runtime using the package metadata:
from kmds_modeling import get_package_info
info = get_package_info()
print(info["entry_points"])
print(info["cli_commands"])
The package also exposes a spec discovery API for building a validated modeling configuration from minimal instructions.
from kmds_modeling import get_spec_questions, build_model_spec
requirements = {
"project": {"task_type": "TABULAR_CLASSIFICATION"},
"data": {"working_dir": "."},
}
questions = get_spec_questions(requirements)
print(questions)
# After supplying answers to the spec questions,
# build the final model config and write it to YAML.
spec = build_model_spec(requirements)
spec.to_yaml("model_config.yaml")
When the client provides modeling instructions that answer the required spec questions, this package can build the model spec and run the evaluation/export workflow to produce model artifacts.
When installed, the package can also be resolved via importlib.metadata:
from importlib.metadata import version
print(version("kmds-modeling"))
CLI
The package exposes a command-line interface for model evaluation and export.
kmds-modeling evaluate --config /path/to/modeling_config.yaml
kmds-modeling export --config /path/to/modeling_config.yaml
Configuration
The package expects a YAML configuration file that defines:
projectsettings such as name, version, task type, and target variabledatasettings including working directory, index column, and featurization pathsexperiment_settingsfor cross-validation and metricscandidateslisting candidate models and their hyperparametersproduction_targetfor champion export paths
The PathCoordinator resolves workspace-relative paths, including documents/modeling_contracts/, and ensures the package operates on KMDS-generated modeling artifacts.
Spec discovery and build
Clients can use the package's spec discovery API to ask what configuration items are still required and then build a complete model_config.yaml.
from kmds_modeling import get_spec_questions, build_model_spec
requirements = {
"project": {
"task_type": "TABULAR_CLASSIFICATION",
"target_variable": "label",
"user_intent": "Predict the probability of the positive class for business interventions.",
},
"data": {
"working_dir": ".",
},
}
questions = get_spec_questions(requirements)
for question in questions:
print(question["field"], question["question"])
# Supply the remaining answers and build the final model spec.
requirements.update({
"project": {
**requirements["project"],
"name": "customer_churn_classifier",
"strategy": "MAX_ACCURACY",
},
"candidates": [
{
"name": "random_forest",
"class_path": "my_models.RandomForestCandidate",
"hyperparameters": {"n_estimators": 100},
}
],
"production_target": {"champion_candidate_name": "random_forest"},
})
spec = build_model_spec(requirements)
spec.to_yaml("model_config.yaml")
When modeling instructions cover the returned spec questions, this package can build the model spec and then run the evaluation/export workflow to produce model artifacts.
Recommended Workflow
- Generate feature-engineered data with KMDS upstream tools such as
kmds-featurization. - Author a
modeling_config.yamlwith the correct workspace layout and candidate definitions. - Run
kmds-modeling evaluateto compare candidate models and generate a leaderboard. - Select the champion candidate and run
kmds-modeling exportto produce model artifacts.
Project Structure
src/kmds_modeling/— installable package sourcesrc/kmds_modeling/cli.py— CLI entrypointsrc/kmds_modeling/core/runner.py— evaluation and export orchestrationsrc/kmds_modeling/core/path_coordinator.py— workspace path resolutionsrc/kmds_modeling/core/notebook_utils.py— notebook-friendly utilitiesdocuments/modeling_contracts/— task contract documentation for KMDS modeling
Contribution Notes
- Keep core modeling logic generic and focused on KMDS pipeline support.
- Add workspace-specific examples or experimental workflows outside the installable source tree.
- Avoid coupling the package to any single KMDS project domain.
Metadata
Release files for kmds-modeling 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| kmds_modeling-0.6.1.tar.gz | 21.8 kB | Without provenance | Details for kmds_modeling-0.6.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| kmds_modeling-0.6.1-py3-none-any.whl | Python 3 | none | any | Details for kmds_modeling-0.6.1-py3-none-any.whl |
Total release size: 45.9 kB
Release files / kmds_modeling-0.6.1.tar.gz
| Download URL | kmds_modeling-0.6.1.tar.gz |
|---|---|
| Size | 21.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8a905767355901024caaf1fcc7d6c06442611518547d45fd47fd7f99601278c4
|
|
BLAKE2b-256 checksum How to use checksums |
17cea78a1900a7eab9c50e3aa2805cf4913b5a4abf795a984afa82749091b7d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / kmds_modeling-0.6.1-py3-none-any.whl
| Download URL | kmds_modeling-0.6.1-py3-none-any.whl |
|---|---|
| Size | 24.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7bfbc682773312414766d1776e3af5b9f04ef0d9ae7afe9ee6454f187e00dbfd
|
|
BLAKE2b-256 checksum How to use checksums |
aba1a9237a979f862d7f6a43c129f4cda2fd44dad9c058265f9c95c7f63cb916
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for kmds-modeling 0.6.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.