from contextlib import asynccontextmanager from typing import AsyncGenerator import uvicorn from fastapi import FastAPI @asynccontextmanager async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]: yield def app_factory() -> FastAPI: app = FastAPI(lifespan=lifespan) return app def main() -> None: uvicorn.run(app_factory, factory=True, host="0.0.0.0", port=8000) if __name__ == "__main__": main()