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 |