| 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
|
|
|