diff options
| author | k clair <kclair@riseup.net> | 2012-10-09 13:14:36 -0700 | 
|---|---|---|
| committer | k clair <kclair@riseup.net> | 2012-10-09 13:14:36 -0700 | 
| commit | 568720334aa630ea504b2ce3b8c324f0a557d6e6 (patch) | |
| tree | 81b7a7f273da3fc0d431ddb354264e8287f5ccc0 /requests-0.14.0/requests/hooks.py | |
add source files from upstream
Diffstat (limited to 'requests-0.14.0/requests/hooks.py')
| -rw-r--r-- | requests-0.14.0/requests/hooks.py | 49 | 
1 files changed, 49 insertions, 0 deletions
| diff --git a/requests-0.14.0/requests/hooks.py b/requests-0.14.0/requests/hooks.py new file mode 100644 index 0000000..9e0ce34 --- /dev/null +++ b/requests-0.14.0/requests/hooks.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- + +""" +requests.hooks +~~~~~~~~~~~~~~ + +This module provides the capabilities for the Requests hooks system. + +Available hooks: + +``args``: +    A dictionary of the arguments being sent to Request(). + +``pre_request``: +    The Request object, directly after being created. + +``pre_send``: +    The Request object, directly before being sent. + +``post_request``: +    The Request object, directly after being sent. + +``response``: +    The response generated from a Request. + +""" + + +HOOKS = ('args', 'pre_request', 'pre_send', 'post_request', 'response') + + +def dispatch_hook(key, hooks, hook_data): +    """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) +            if _hook_data is not None: +                hook_data = _hook_data + + +    return hook_data | 
