| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | import loggingfrom fastapi import FastAPIfrom app.providers import (    logging_provider,    app_provider,    handle_exception,    pagination_provider,    route_provider,    auth_provider,)from config.config import settingsimport uvicorndef create_app() -> FastAPI:    _app = FastAPI()    register(_app, logging_provider)    register(_app, app_provider)    register(_app, handle_exception)    register(_app, pagination_provider)    register(_app, auth_provider)    boot(_app, route_provider)    return _appdef register(_app, provider):    provider.register(_app)    logging.info(provider.__name__ + " registered")def boot(_app, provider):    provider.boot(_app)    logging.info(provider.__name__ + " booted")app = create_app()@app.get("/")async def root():    return "Welcome to Open Assistant Api"if __name__ == "__main__":    # app.run(host="0.0.0.0", port=settings.SERVER_PORT)    uvicorn.run(        app=app,  # "main:app",        host=settings.SERVER_HOST,        port=settings.SERVER_PORT,        workers=settings.SERVER_WORKERS,        reload=settings.ENV == "local",    )
 |