loanguard / scripts /train.py
adwitiyashukla's picture
update repo
44cd54e
Raw
History Blame Contribute Delete
1.13 kB
"""CLI entry point for training."""
from __future__ import annotations
import sys
from pathlib import Path
import click
# Ensure src is on path even if package not installed
sys.path.insert(0, str(Path(__file__).parent.parent))
from src.training.trainer import train_from_config # noqa: E402
from src.utils.logging import setup_logging # noqa: E402
@click.command()
@click.option(
"--config",
"config_path",
default="config/config.yaml",
show_default=True,
help="Path to YAML config file.",
)
@click.option("--log-level", default="INFO", show_default=True)
def main(config_path: str, log_level: str) -> None:
"""Train LoanGuard end-to-end and persist artifacts."""
setup_logging(level=log_level)
results = train_from_config(config_path)
click.echo("=" * 60)
click.echo("Training complete. Top-line ensemble metrics:")
click.echo("=" * 60)
if results.get("ensemble"):
for k, v in results["ensemble"].items():
click.echo(f" {k:30s} {v}")
else:
click.echo(" (ensemble not trained - only base models)")
if __name__ == "__main__":
main()