from pathlib import Path from app.database import Base, engine, SessionLocal from app.repository import list_objects, latest_runs from app.scripts.seed_synthetic import main as seed_main from app.scripts.train_baseline import run_training from app.services import scoring_cycle, demo_objects def bootstrap_if_needed(): Base.metadata.create_all(bind=engine) model_path = Path(__file__).resolve().parents[2] / "models" / "baseline_model.joblib" db = SessionLocal() try: has_objects = bool(list_objects(db, 5)) finally: db.close() if not has_objects: seed_main() if not model_path.exists(): run_training() db = SessionLocal() try: if not latest_runs(db, 1): scoring_cycle(db, demo_objects(db), source="bootstrap-demo") finally: db.close() if __name__ == "__main__": bootstrap_if_needed()