aboutsummaryrefslogtreecommitdiff
path: root/requests/hooks.py
diff options
context:
space:
mode:
Diffstat (limited to 'requests/hooks.py')
-rw-r--r--requests/hooks.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/requests/hooks.py b/requests/hooks.py
index f9cf480..3560b89 100644
--- a/requests/hooks.py
+++ b/requests/hooks.py
@@ -22,7 +22,10 @@ Available hooks:
"""
-import warnings
+import traceback
+
+
+HOOKS = ('args', 'pre_request', 'post_request', 'response')
def dispatch_hook(key, hooks, hook_data):
@@ -31,10 +34,15 @@ def dispatch_hook(key, hooks, hook_data):
hooks = hooks or dict()
if key in hooks:
- try:
- return hooks.get(key).__call__(hook_data) or hook_data
+ hooks = hooks.get(key)
+
+ if hasattr(hooks, '__call__'):
+ hooks = [hooks]
- except Exception, why:
- warnings.warn(str(why))
+ for hook in hooks:
+ try:
+ hook_data = hook(hook_data) or hook_data
+ except Exception:
+ traceback.print_exc()
return hook_data