MCPcopy
hub / github.com/encode/starlette / build_middleware_stack

Method build_middleware_stack

starlette/applications.py:57–77  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

55 self.middleware_stack: ASGIApp | None = None
56
57 def build_middleware_stack(self) -> ASGIApp:
58 debug = self.debug
59 error_handler = None
60 exception_handlers: dict[Any, ExceptionHandler] = {}
61
62 for key, value in self.exception_handlers.items():
63 if key in (500, Exception):
64 error_handler = value
65 else:
66 exception_handlers[key] = value
67
68 middleware = (
69 [Middleware(ServerErrorMiddleware, handler=error_handler, debug=debug)]
70 + self.user_middleware
71 + [Middleware(ExceptionMiddleware, handlers=exception_handlers, debug=debug)]
72 )
73
74 app = self.router
75 for cls, args, kwargs in reversed(middleware):
76 app = cls(app, *args, **kwargs)
77 return app
78
79 @property
80 def routes(self) -> list[BaseRoute]:

Callers 1

__call__Method · 0.95

Calls 2

MiddlewareClass · 0.90
itemsMethod · 0.45

Tested by

no test coverage detected