123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # -*- 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
|