pass hooks around, disable auto send request.
authorKenneth Reitz <me@kennethreitz.com>
Fri, 30 Sep 2011 11:08:04 +0000 (07:08 -0400)
committerKenneth Reitz <me@kennethreitz.com>
Fri, 30 Sep 2011 11:08:04 +0000 (07:08 -0400)
requests/api.py

index 5e5bc299b8e5d4a26df6540bff97e90077d31e64..9c753ffdaeb3ee3b52599732be161846fa799849 100644 (file)
@@ -24,7 +24,7 @@ __all__ = ('request', 'get', 'head', 'post', 'patch', 'put', 'delete')
 def request(method, url,
     params=None, data=None, headers=None, cookies=None, files=None, auth=None,
     timeout=None, allow_redirects=False, proxies=None, hooks=None,
-    config=None, _pools=None):
+    config=None, _pools=None, _return_request=False):
 
     """Constructs and sends a :class:`Request <Request>`.
     Returns :class:`Response <Response>` object.
@@ -66,6 +66,7 @@ def request(method, url,
         files=files,
         auth=auth,
         timeout=timeout or config.get('timeout'),
+        hooks=hooks,
         allow_redirects=allow_redirects,
         proxies=proxies or config.get('proxies'),
         _pools=_pools
@@ -80,9 +81,14 @@ def request(method, url,
     # Pre-request hook.
     r = dispatch_hook('pre_request', hooks, r)
 
+    # Only construct the request (for async)
+    if _return_request:
+        return r
+
     # Send the HTTP Request.
     r.send()
 
+    # TODO: Add these hooks inline.
     # Post-request hook.
     r = dispatch_hook('post_request', hooks, r)