Source code for tool_shed.webapp.fast_app

from a2wsgi import WSGIMiddleware
from fastapi import FastAPI

from galaxy.webapps.base.api import (
    add_exception_handler,
    add_request_id_middleware,
    include_all_package_routers,
)


[docs]def initialize_fast_app(gx_webapp, tool_shed_app): app = FastAPI( title="Galaxy Tool Shed API", description=("This API allows you to manage the Tool Shed repositories."), docs_url="/api/docs", ) add_exception_handler(app) add_request_id_middleware(app) include_all_package_routers(app, "tool_shed.webapp.api") wsgi_handler = WSGIMiddleware(gx_webapp) tool_shed_app.haltables.append(("WSGI Middleware threadpool", wsgi_handler.executor.shutdown)) app.mount("/", wsgi_handler) return app
__all__ = ( "add_request_id_middleware", "initialize_fast_app", )