MCPcopy Index your code
hub / github.com/plotly/dash / setup_backend

Method setup_backend

dash/backends/_fastapi.py:619–646  ·  view source on GitHub ↗
(self, dash_app: Dash)

Source from the content-addressed store, hash-verified

617 self.server.add_middleware(GZipMiddleware, minimum_size=500)
618
619 def setup_backend(self, dash_app: Dash):
620 # Add consolidated middleware for all Dash functionality
621 self.server.add_middleware(
622 DashMiddleware,
623 dash_app=dash_app,
624 dash_server=self,
625 before_request_funcs=self._before_request_funcs,
626 after_request_func=self._after_request_func,
627 enable_timing=self._enable_timing,
628 )
629
630 # Add timing middleware separately if enabled (needs to modify response headers)
631 if self._enable_timing:
632
633 @self.server.middleware("http")
634 async def timing_headers_middleware(request: Request, call_next):
635 response = await call_next(request)
636 timing_information = getattr(request.state, "timing_information", None)
637 if timing_information is not None:
638 headers = MutableHeaders(response.headers)
639 for name, info in timing_information.items():
640 value = name
641 if info.get("desc") is not None:
642 value += f';desc="{info["desc"]}"'
643 if info.get("dur") is not None:
644 value += f";dur={info['dur']}"
645 headers.append("Server-Timing", value)
646 return response
647
648 async def _run_ws_hooks(
649 self, hooks, websocket: "WebSocket", *args, default_reason: str = "Rejected"

Callers 1

init_appMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected