Move hooks into internal event loop
authorKenneth Reitz <me@kennethreitz.com>
Sun, 23 Oct 2011 18:46:35 +0000 (14:46 -0400)
committerKenneth Reitz <me@kennethreitz.com>
Sun, 23 Oct 2011 18:46:35 +0000 (14:46 -0400)
requests/models.py

index 523245b..bafe255 100644 (file)
@@ -16,6 +16,7 @@ from urllib2 import HTTPError
 from urlparse import urlparse, urlunparse, urljoin
 from datetime import datetime
 
+from .hooks import dispatch_hook
 from .structures import CaseInsensitiveDict
 from .packages.poster.encode import multipart_encode
 from .packages.poster.streaminghttp import register_openers, get_handlers
@@ -121,6 +122,10 @@ class Request(object):
 
         self.headers = headers
 
+        # Pre-request hook.
+        r = dispatch_hook('pre_request', hooks, self)
+        self.__dict__.update(r.__dict__)
+
 
     def __repr__(self):
         return '<Request [%s]>' % (self.method)
@@ -386,6 +391,13 @@ class Request(object):
 
         self.sent = self.response.ok
 
+        # Response manipulation hook.
+        self.response = dispatch_hook('response', self.hooks, self.response)
+
+        # Post-request hook.
+        r = dispatch_hook('post_request', self.hooks, self)
+        self.__dict__.update(r.__dict__)
+
         return self.sent