summaryrefslogtreecommitdiffstats
path: root/requests/hooks.py
diff options
context:
space:
mode:
Diffstat (limited to 'requests/hooks.py')
-rw-r--r--requests/hooks.py29
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