Dispatches a hook dictionary on a given piece of data.
(
key: str,
hooks: _t.HooksInputType | None,
hook_data: Response,
**kwargs: Any,
)
| 30 | |
| 31 | |
| 32 | def dispatch_hook( |
| 33 | key: str, |
| 34 | hooks: _t.HooksInputType | None, |
| 35 | hook_data: Response, |
| 36 | **kwargs: Any, |
| 37 | ) -> Response: |
| 38 | """Dispatches a hook dictionary on a given piece of data.""" |
| 39 | hooks_dict = hooks or {} |
| 40 | hook_list: Iterable[_t.HookType] | _t.HookType | None = hooks_dict.get(key) |
| 41 | if hook_list: |
| 42 | if isinstance(hook_list, Callable): |
| 43 | hook_list = [hook_list] |
| 44 | for hook in hook_list: |
| 45 | _hook_data = hook(hook_data, **kwargs) |
| 46 | if _hook_data is not None: |
| 47 | hook_data = _hook_data |
| 48 | return hook_data |