A PowerShell-first, cross-platform MLOps mini-lakehouse for M5-style retail forecasting.
Highlights
- Reproducible end-to-end runner:
ensure-dirs → train → eval - Data quality gate + validation artifacts
- LaTeX-friendly outputs (CSV +
.tex, PDF + PNG) - CI on Windows + Ubuntu (Python 3.10)
$ErrorActionPreference = "Stop"
Set-StrictMode -Version Latest
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -U pip
pip install -e ".[dev]"python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
pip install -e ".[dev]"python -m pre_commit run --all-files
python -m pytest -qThis runs the end-to-end baseline and writes artifacts to outputs/.
.\scripts
un_m5.ps1 -ForceThe runner auto-detects the venv Python and works in both Windows PowerShell and
pwsh(PowerShell 7).
After a successful run you should see:
- Models:
outputs/models/(e.g.m5_ridge_baseline.joblib) - Tables:
outputs/tables/(CSV + LaTeX.tex) - Figures:
outputs/figures/(PDF + PNG) - Reports:
outputs/reports/(JSON summaries per step)
Example:
outputs/
models/
tables/
figures/
reports/
The PowerShell runner calls these commands (you can run them manually too):
python -m retail_ops_mlops.cli ensure-dirs
python -m retail_ops_mlops.cli train-m5 --force
python -m retail_ops_mlops.cli eval-m5 --forceconfigs/ # configuration (paths, logging, etc.)
data/ # raw/interim/processed (gitignored as appropriate)
outputs/ # generated artifacts (gitignored; .gitkeep kept)
scripts/run_m5.ps1 # PowerShell-first pipeline runner
src/retail_ops_mlops/ # library + pipelines + CLI
tests/ # smoke tests (CI)
On Ubuntu CI runners pwsh is available by default; locally you may need to install PowerShell 7.
Alternatively, run the pipeline via the CLI entrypoints instead of the PS runner.
If Activate.ps1 is blocked:
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedEdit configs/default.yaml. The runner and CLI read config from there.
MIT (update if you prefer another license).