Files
requests3/requests/hooks.py
T
Douglas Morrison 20c930e48e Fix errors introduced by merging an outdated pull request.
Don't do that anymore, OK?
2011-10-12 13:00:34 +00:00

42 lines
858 B
Python

# -*- 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 before being sent.
``post_request``:
The Request object, directly after being sent.
``response``:
The response generated from a Request.
"""
import warnings
import collections
def dispatch_hooks(key, hooks, hook_data):
"""Dipatches a hook dictionary on a given peice of data."""
hooks = (hooks or {}).get(key, [])
hooks = hooks if isinstance(hooks, collections.Iterable) else [hooks]
for hook in hooks:
try:
hook_data = hook(hook_data) or hook_data
except Exception, why:
warnings.warn(str(why))
return hook_data