MCPcopy
hub / github.com/plotly/dash / register_timing_hooks

Method register_timing_hooks

dash/backends/_flask.py:292–316  ·  view source on GitHub ↗
(self, _first_run: bool)

Source from the content-addressed store, hash-verified

290 return _dispatch
291
292 def register_timing_hooks(self, _first_run: bool):
293 # Define timing hooks inside method scope and register them
294 def _before_request() -> None:
295 flask_g.timing_information = { # type: ignore[attr-defined]
296 "__dash_server": {"dur": time.time(), "desc": None}
297 }
298
299 def _after_request(response: Response): # type: ignore[name-defined]
300 timing_information = flask_g.get("timing_information", None) # type: ignore[attr-defined]
301 if timing_information is None:
302 return response
303 dash_total = timing_information.get("__dash_server", None)
304 if dash_total is not None:
305 dash_total["dur"] = round((time.time() - dash_total["dur"]) * 1000)
306 for name, info in timing_information.items():
307 value = name
308 if info.get("desc") is not None:
309 value += f';desc="{info["desc"]}"'
310 if info.get("dur") is not None:
311 value += f";dur={info['dur']}"
312 response.headers.add("Server-Timing", value)
313 return response
314
315 self.before_request(_before_request)
316 self.after_request(_after_request)
317
318 def register_callback_api_routes(
319 self, callback_api_paths: Dict[str, Callable[..., Any]]

Callers 1

enable_dev_toolsMethod · 0.45

Calls 2

before_requestMethod · 0.95
after_requestMethod · 0.95

Tested by

no test coverage detected