"""TrainHub API — FastAPI application entrypoint.""" from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from . import models as orm # noqa: F401 (register ORM classes on Base) from .database import Base, engine from .routers import auth, datasets, files, hub, jobs, meta, spaces from .routers import models as models_router Base.metadata.create_all(bind=engine) app = FastAPI( title="TrainHub API", version="1.0.0", description=( "Self-hosted AI training platform backend: model/dataset/space repositories, " "file storage, authentication and background training jobs." ), ) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) for r in ( meta.router, auth.router, models_router.router, datasets.router, spaces.router, files.router, jobs.router, hub.router, ): app.include_router(r)