Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
hooks.py49 linesDownload Raw Back to requests
1"""2requests.hooks3~~~~~~~~~~~~~~4 5This module provides the capabilities for the Requests hooks system.6 7Available hooks:8 9``response``:10    The response generated from a Request.11"""12 13from __future__ import annotations14 15from collections.abc import Callable, Iterable16from typing import TYPE_CHECKING, Any17 18if TYPE_CHECKING:19    from . import _types as _t20    from .models import Response21 22HOOKS: list[str] = ["response"]23 24 25def default_hooks() -> dict[str, list[_t.HookType]]:26    return {event: [] for event in HOOKS}27 28 29# TODO: response is the only one30 31 32def 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_data48    return hook_data49 
codekingpro/portable-devtools · Team Ai