From: Kenneth Reitz Date: Sun, 13 Feb 2011 21:41:58 +0000 (-0500) Subject: basic handling configuration in place w/ autoauth X-Git-Tag: v0.2.0~51 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ef9bae8d9f2dc605d4fbcdf24256b6cc82612a2d;p=services%2Fpython-requests.git basic handling configuration in place w/ autoauth --- diff --git a/requests/core.py b/requests/core.py index f25932e..465b0fb 100644 --- a/requests/core.py +++ b/requests/core.py @@ -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."""