]>
Commit | Line | Data |
---|---|---|
e0df8241 JR |
1 | """ |
2 | requests.hooks | |
3 | ~~~~~~~~~~~~~~ | |
4 | ||
5 | This module provides the capabilities for the Requests hooks system. | |
6 | ||
7 | Available hooks: | |
8 | ||
9 | ``response``: | |
10 | The response generated from a Request. | |
11 | """ | |
12 | HOOKS = ["response"] | |
13 | ||
14 | ||
15 | def default_hooks(): | |
16 | return {event: [] for event in HOOKS} | |
17 | ||
18 | ||
19 | # TODO: response is the only one | |
20 | ||
21 | ||
22 | def dispatch_hook(key, hooks, hook_data, **kwargs): | |
23 | """Dispatches a hook dictionary on a given piece of data.""" | |
24 | hooks = hooks or {} | |
25 | hooks = hooks.get(key) | |
26 | if hooks: | |
27 | if hasattr(hooks, "__call__"): | |
28 | hooks = [hooks] | |
29 | for hook in hooks: | |
30 | _hook_data = hook(hook_data, **kwargs) | |
31 | if _hook_data is not None: | |
32 | hook_data = _hook_data | |
33 | return hook_data |