OLD | NEW |
(Empty) | |
| 1 # -*- coding: utf-8 -*- |
| 2 |
| 3 """ |
| 4 requests.hooks |
| 5 ~~~~~~~~~~~~~~ |
| 6 |
| 7 This module provides the capabilities for the Requests hooks system. |
| 8 |
| 9 Available hooks: |
| 10 |
| 11 ``response``: |
| 12 The response generated from a Request. |
| 13 |
| 14 """ |
| 15 |
| 16 |
| 17 HOOKS = ['response'] |
| 18 |
| 19 |
| 20 def default_hooks(): |
| 21 hooks = {} |
| 22 for event in HOOKS: |
| 23 hooks[event] = [] |
| 24 return hooks |
| 25 |
| 26 # TODO: response is the only one |
| 27 |
| 28 |
| 29 def dispatch_hook(key, hooks, hook_data, **kwargs): |
| 30 """Dispatches a hook dictionary on a given piece of data.""" |
| 31 |
| 32 hooks = hooks or dict() |
| 33 |
| 34 if key in hooks: |
| 35 hooks = hooks.get(key) |
| 36 |
| 37 if hasattr(hooks, '__call__'): |
| 38 hooks = [hooks] |
| 39 |
| 40 for hook in hooks: |
| 41 _hook_data = hook(hook_data, **kwargs) |
| 42 if _hook_data is not None: |
| 43 hook_data = _hook_data |
| 44 |
| 45 return hook_data |
OLD | NEW |