Index: third_party/requests/hooks.py |
diff --git a/third_party/requests/hooks.py b/third_party/requests/hooks.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5dfaf6b68018885d099b2f6e8c7bb876a9cf29d3 |
--- /dev/null |
+++ b/third_party/requests/hooks.py |
@@ -0,0 +1,45 @@ |
+# -*- coding: utf-8 -*- |
+ |
+""" |
+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(): |
+ hooks = {} |
+ for event in HOOKS: |
+ hooks[event] = [] |
+ return 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 dict() |
+ |
+ if key in hooks: |
+ hooks = hooks.get(key) |
+ |
+ 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 |