Metadata-Version: 2.4
Name: rkoren-kitchen
Version: 1.0.0
Summary: Reusable MLOps framework: data ingestion, experiment tracking, serving, and monitoring
Project-URL: Homepage, https://github.com/rkoren/kitchen-platform
Project-URL: Repository, https://github.com/rkoren/kitchen-platform
Project-URL: Issues, https://github.com/rkoren/kitchen-platform/issues
License: Unlicense
License-File: LICENSE
Keywords: dvc,kaggle,machine-learning,mlflow,mlops,prefect
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: The Unlicense (Unlicense)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Requires-Dist: boto3>=1.34
Requires-Dist: jinja2>=3.1
Requires-Dist: kaggle>=1.6
Requires-Dist: lightgbm>=4.0
Requires-Dist: mlflow>=3.0
Requires-Dist: numpy>=1.26
Requires-Dist: pandas>=2.0
Requires-Dist: prefect>=3.0
Requires-Dist: pyarrow>=14.0
Requires-Dist: pydantic>=2.0
Requires-Dist: python-dotenv>=1.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Requires-Dist: scikit-learn>=1.4
Requires-Dist: scipy>=1.10
Requires-Dist: typer>=0.12
Requires-Dist: xgboost>=2.0
Provides-Extra: dev
Requires-Dist: fastapi>=0.110; extra == 'dev'
Requires-Dist: httpx; extra == 'dev'
Requires-Dist: jsonschema>=4.0; extra == 'dev'
Requires-Dist: optuna>=3.0; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: dvc
Requires-Dist: dvc[s3]>=3.0; extra == 'dvc'
Provides-Extra: postgres
Requires-Dist: psycopg2-binary>=2.9; extra == 'postgres'
Provides-Extra: search
Requires-Dist: optuna>=3.0; extra == 'search'
Provides-Extra: serve
Requires-Dist: fastapi>=0.110; extra == 'serve'
Requires-Dist: mangum>=0.17; extra == 'serve'
Requires-Dist: uvicorn>=0.29; extra == 'serve'
Description-Content-Type: text/markdown

# rkoren-kitchen

A reusable MLOps framework for competition and prediction-modeling projects: data ingestion,
experiment tracking, model serving, monitoring, and cloud provisioning — driven by one
`menu.yaml` manifest and one `kitchen` CLI.

It is intentionally generic: the same workflow helpers and CLI cover a large surface of Kaggle
competitions and prediction-modeling projects with minimal per-project configuration.

## Install

```bash
pip install rkoren-kitchen
```

Everything ships in the base install — the CLI, the training/serving/monitoring stack, and the
`recipes` provisioning sub-package (YAML → Terraform → AWS).

## What's in the box

- **Modeling helpers** — `train_val_split`, `classification_metrics`/`regression_metrics`,
  `time_series_cv`/`loto_cv`, calibration and ensembling utilities.
- **Experiment tracking** — an MLflow wrapper (`experiment()`, `Tracker`) with a champion
  registry and one-command auto-promotion.
- **Pipeline** — `FeatureBuilder` / `Trainer` / `Evaluator` stages plus a `DataStore`, run from
  the `kitchen` CLI (`kitchen run …`) or a `menu.yaml` (`kitchen menu run`).
- **Serving & monitoring** — a FastAPI serving scaffold (Lambda/ECR) and in-house drift reports.
- **Provisioning** — `kitchen recipes …` (a.k.a. the `recipes` CLI) turns a YAML spec into
  Terraform for S3/ECR/IAM/Lambda/RDS.

## Quickstart

```bash
kitchen init my-project        # scaffold a project
kitchen run train              # train, track, and (optionally) auto-promote a champion
kitchen menu run               # or run the whole pipeline from menu.yaml
```

## Stability

The public Python API is the top-level `kitchen.__all__`; the `kitchen` CLI and the `menu.yaml`
schema (`kitchen menu schema`) are the other supported surfaces. The package follows SemVer.

See the [project repository](https://github.com/rkoren/kitchen-platform) for full docs.

## License

Public domain — released under [The Unlicense](LICENSE). Feel free to use, modify, and
contribute to this platform, however you like.
