| """ | |
| 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 | |