home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / var / lib / python-support / python2.6 / atom / client.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  3.2 KB  |  91 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. '''AtomPubClient provides CRUD ops. in line with the Atom Publishing Protocol.
  5.  
  6. '''
  7. __author__ = 'j.s@google.com (Jeff Scudder)'
  8. import atom.http_core as atom
  9.  
  10. class AtomPubClient(object):
  11.     host = None
  12.     auth_token = None
  13.     
  14.     def __init__(self, http_client = None, host = None, auth_token = None, **kwargs):
  15.         if not http_client:
  16.             pass
  17.         self.http_client = atom.http_core.HttpClient()
  18.         if host is not None:
  19.             self.host = host
  20.         
  21.         if auth_token is not None:
  22.             self.auth_token = auth_token
  23.         
  24.  
  25.     
  26.     def request(self, method = None, uri = None, auth_token = None, http_request = None, **kwargs):
  27.         """Performs an HTTP request to the server indicated.
  28.  
  29.     Uses the http_client instance to make the request.
  30.  
  31.     Args:
  32.       method: The HTTP method as a string, usually one of 'GET', 'POST',
  33.               'PUT', or 'DELETE'
  34.       uri: The URI desired as a string or atom.http_core.Uri. 
  35.       http_request: 
  36.       auth_token: An authorization token object whose modify_request method
  37.                   sets the HTTP Authorization header.
  38.     """
  39.         if http_request is None:
  40.             http_request = atom.http_core.HttpRequest()
  41.         
  42.         if self.host is not None and http_request.host is None:
  43.             http_request.host = self.host
  44.         
  45.         if isinstance(uri, (str, unicode)):
  46.             uri = atom.http_core.parse_uri(uri)
  47.         
  48.         if uri is not None:
  49.             uri.modify_request(http_request)
  50.         
  51.         if isinstance(method, (str, unicode)):
  52.             http_request.method = method
  53.         
  54.         for name, value in kwargs.iteritems():
  55.             if value is not None:
  56.                 value.modify_request(http_request)
  57.                 continue
  58.         
  59.         if http_request.scheme is None:
  60.             http_request.scheme = 'http'
  61.         
  62.         if auth_token:
  63.             auth_token.modify_request(http_request)
  64.         elif self.auth_token:
  65.             self.auth_token.modify_request(http_request)
  66.         
  67.         return self.http_client.request(http_request)
  68.  
  69.     Request = request
  70.     
  71.     def get(self, uri = None, auth_token = None, http_request = None, **kwargs):
  72.         return self.request(method = 'GET', uri = uri, auth_token = auth_token, http_request = http_request, **kwargs)
  73.  
  74.     Get = get
  75.     
  76.     def post(self, uri = None, data = None, auth_token = None, http_request = None, **kwargs):
  77.         return self.request(method = 'POST', uri = uri, auth_token = auth_token, http_request = http_request, data = data, **kwargs)
  78.  
  79.     Post = post
  80.     
  81.     def put(self, uri = None, data = None, auth_token = None, http_request = None, **kwargs):
  82.         return self.request(method = 'PUT', uri = uri, auth_token = auth_token, http_request = http_request, data = data, **kwargs)
  83.  
  84.     Put = put
  85.     
  86.     def delete(self, uri = None, auth_token = None, http_request = None, **kwargs):
  87.         return self.request(method = 'DELETE', uri = uri, auth_token = auth_token, http_request = http_request, **kwargs)
  88.  
  89.     Delete = delete
  90.  
  91.