diff options
Diffstat (limited to 'requests/hooks.py')
| -rw-r--r-- | requests/hooks.py | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/requests/hooks.py b/requests/hooks.py index 3560b89..5dfaf6b 100644 --- a/requests/hooks.py +++ b/requests/hooks.py @@ -8,27 +8,25 @@ This module provides the capabilities for the Requests hooks system. Available hooks: -``args``: - A dictionary of the arguments being sent to Request(). - -``pre_request``: - The Request object, directly before being sent. - -``post_request``: - The Request object, directly after being sent. - ``response``: The response generated from a Request. """ -import traceback +HOOKS = ['response'] + + +def default_hooks(): + hooks = {} + for event in HOOKS: + hooks[event] = [] + return hooks -HOOKS = ('args', 'pre_request', 'post_request', 'response') +# TODO: response is the only one -def dispatch_hook(key, hooks, hook_data): +def dispatch_hook(key, hooks, hook_data, **kwargs): """Dispatches a hook dictionary on a given piece of data.""" hooks = hooks or dict() @@ -40,9 +38,8 @@ def dispatch_hook(key, hooks, hook_data): hooks = [hooks] for hook in hooks: - try: - hook_data = hook(hook_data) or hook_data - except Exception: - traceback.print_exc() + _hook_data = hook(hook_data, **kwargs) + if _hook_data is not None: + hook_data = _hook_data return hook_data |
