From: Kenneth Reitz Date: Sat, 21 Jan 2012 12:13:58 +0000 (-0500) Subject: Provide new register_hook system. X-Git-Tag: v0.10.0~18 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a3b26c7e5bde922a874a413a0d752ed2555c3d66;p=services%2Fpython-requests.git Provide new register_hook system. #372 --- diff --git a/requests/models.py b/requests/models.py index f407751..9e35160 100644 --- a/requests/models.py +++ b/requests/models.py @@ -13,7 +13,7 @@ import urllib from urlparse import urlparse, urlunparse, urljoin, urlsplit from datetime import datetime -from .hooks import dispatch_hook +from .hooks import dispatch_hook, HOOKS from .structures import CaseInsensitiveDict from .status_codes import codes from .packages import oreos @@ -114,7 +114,15 @@ class Request(object): self.sent = False #: Event-handling hooks. - self.hooks = hooks + self.hooks = {} + + for event in HOOKS: + self.hooks[event] = [] + + hooks = hooks or {} + + for (k, v) in hooks.items(): + self.register_hook(event=k, hook=v) #: Session. self.session = session @@ -343,6 +351,11 @@ class Request(object): return ''.join(url) + def register_hook(self, event, hook): + """Properly register a hook.""" + + return self.hooks[event].append(hook) + def send(self, anyway=False, prefetch=False): """Sends the request. Returns True of successful, false if not. @@ -528,7 +541,7 @@ class Request(object): if prefetch: # Save the response. self.response.content - + if self.config.get('danger_mode'): self.response.raise_for_status() @@ -616,7 +629,7 @@ class Response(object): break yield chunk self._content_consumed = True - + def generate_chunked(): resp = self.raw._original_response fp = resp.fp