basic handling configuration in place w/ autoauth
authorKenneth Reitz <me@kennethreitz.com>
Sun, 13 Feb 2011 21:41:58 +0000 (16:41 -0500)
committerKenneth Reitz <me@kennethreitz.com>
Sun, 13 Feb 2011 21:41:58 +0000 (16:41 -0500)
requests/core.py

index f25932eeda725bb9fea0b67208a75c17d53e6e37..465b0fb9b3181f1ce49f9a5d51e67c11becc6ea7 100644 (file)
@@ -14,9 +14,9 @@ import httplib
 import urllib
 import urllib2
 
+import requests.handler
 
-
-__title__ = 'convore'
+__title__ = 'requests'
 __version__ = '0.0.1'
 __build__ = 0x000001
 __author__ = 'Kenneth Reitz'
@@ -31,12 +31,13 @@ class Request(object):
        """The :class:`Request` object. It's awesome.
        """
        
-       _METHODS = ('get', 'put', 'post', 'delete')
+       _METHODS = ('get', 'head', 'put', 'post', 'delete')
        
        def __init__(self):
                self.headers = dict()
                self.method = None
                self.response = None
+               self.auth = None
        
        def __setattr__(self, key, val):
                if key == 'method':
@@ -47,9 +48,8 @@ class Request(object):
                """Sends the request. """
                #set self.response
                # return True / False
-               pass
                
-       
+
 class Response(object):
        """The :class:`Request` object. It's awesome.
        """
@@ -72,34 +72,68 @@ class AuthObject(object):
                self.password = password
 
 
+
 def get(url, params={}, headers={}, auth=None):
-       pass
+       """Sends a GET request. Returns :class:`Response` object.
+       """
+       r = Request()
+       
+       r.url = url
+       r.headers = headers
+       r.auth = _detect_auth(url, auth)
+       r.method = 'GET'
+       r.send()
+       
+       return r.response
+       
        # return response object
 
+
 def head(url, params={}, headers={}, auth=None):
+       """Sends a HEAD request. Returns :class:`Response` object.
+       """
        pass
        # return response object
 
+
 def post(url, params={}, headers={}, auth=None):
+       """Sends a POST request. Returns :class:`Response` object.
+       """
        pass
        # return response object
        
+       
 def put(url, data='', headers={}, auth=None):
+       """Sends a PUT request. Returns :class:`Response` object.
+       """
        pass
        # return response object
+
        
 def delete(url, params={}, headers={}, auth=None):
+       """Sends a DELETE request. Returns :class:`Response` object.
+       """
        pass
        # return response object
 
 
 def add_autoauth(url, authobject):
-       global AUTHOAUTHS
-       
-       AUTHOAUTHS.append((url, authobject))
+       global AUTOAUTHS
        
+       AUTOAUTHS.append((url, authobject))
+
 
+def _detect_auth(url, auth):
 
+       return _get_autoauth(url) if not auth else auth
+
+       
+def _get_autoauth(url):
+       for (authauth_url, auth) in AUTOAUTHS:
+               if autoauth_url in url: 
+                       return auth
+                       
+       return None
 
 class RequestException(Exception):
        """There was an ambiguous exception that occured while handling your request."""