Index: third_party/google-endpoints/requests/hooks.py |
diff --git a/third_party/google-endpoints/requests/hooks.py b/third_party/google-endpoints/requests/hooks.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..32b32de75047dbc94bc7757801fe3ec4733bad43 |
--- /dev/null |
+++ b/third_party/google-endpoints/requests/hooks.py |
@@ -0,0 +1,34 @@ |
+# -*- 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(): |
+ return dict((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 dict() |
+ 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 |