""" | |
requests.hooks | |
~~~~~~~~~~~~~~ | |
This module provides the capabilities for the Requests hooks system. | |
Available hooks: | |
``response``: | |
The response generated from a Request. | |
""" | |
HOOKS = ["response"] | |
def default_hooks(): | |
return {event: [] for event in HOOKS} | |
# TODO: response is the only one | |
def dispatch_hook(key, hooks, hook_data, **kwargs): | |
"""Dispatches a hook dictionary on a given piece of data.""" | |
hooks = hooks or {} | |
hooks = hooks.get(key) | |
if hooks: | |
if hasattr(hooks, "__call__"): | |
hooks = [hooks] | |
for hook in hooks: | |
_hook_data = hook(hook_data, **kwargs) | |
if _hook_data is not None: | |
hook_data = _hook_data | |
return hook_data | |