python (3.11.7)
       1  """
       2  requests.hooks
       3  ~~~~~~~~~~~~~~
       4  
       5  This module provides the capabilities for the Requests hooks system.
       6  
       7  Available hooks:
       8  
       9  ``response``:
      10      The response generated from a Request.
      11  """
      12  HOOKS = ["response"]
      13  
      14  
      15  def default_hooks():
      16      return {event: [] for event in HOOKS}
      17  
      18  
      19  # TODO: response is the only one
      20  
      21  
      22  def dispatch_hook(key, hooks, hook_data, **kwargs):
      23      """Dispatches a hook dictionary on a given piece of data."""
      24      hooks = hooks or {}
      25      hooks = hooks.get(key)
      26      if hooks:
      27          if hasattr(hooks, "__call__"):
      28              hooks = [hooks]
      29          for hook in hooks:
      30              _hook_data = hook(hook_data, **kwargs)
      31              if _hook_data is not None:
      32                  hook_data = _hook_data
      33      return hook_data