atom.service | index /usr/local/svn/gdata-python-client/src/atom/service.py

`AtomService provides CRUD ops. in line with the Atom Publishing Protocol.
AtomService: Encapsulates the ability to perform insert, update and delete
operations with the Atom Publishing Protocol on which GData is
based. An instance can perform query, insertion, deletion, and
update.
HttpRequest: Function that performs a GET, POST, PUT, or DELETE HTTP request
to the specified end point. An AtomService object or a subclass can be
used to specify information about the request.`

Modules

``

xml.etree.cElementTree atom base64 | httplib os re | socket urllib warnings |

Classes

``

__builtin__.object
  AtomService
atom.http_interface.GenericToken(__builtin__.object)
  BasicAuthToken

class AtomService(__builtin__.object)
`` | `Performs Atom Publishing Protocol CRUD operations. The AtomService contains methods to perform HTTP CRUD operations.`

Methods defined here:

Delete(self, uri, extra_headers=None, url_params=None, escape_params=True)
  `Deletes the entry at the given URI.
  Args:
  uri: string The URI of the entry to be deleted. Example:
  '/base/feeds/items/ITEM-ID'
  extra_headers: dict (optional) HTTP headers which are to be included.
  The client automatically sets the Content-Type and
  Authorization headers.
  url_params: dict (optional) Additional URL parameters to be included
  in the URI. These are translated into query arguments
  in the form '&dict_key=value&...'.
  Example: {'max-results': '250'} becomes &max-results=250
  escape_params: boolean (optional) If false, the calling code has already
  ensured that the query will form a valid URL (all
  reserved characters have been escaped). If true, this
  method will escape the query and any URL parameters
  provided.
  Returns:
  httplib.HTTPResponse Server's response to the DELETE request.`

Get(self, uri, extra_headers=None, url_params=None, escape_params=True)
  `Query the APP server with the given URI
  The uri is the portion of the URI after the server value
  (server example: 'www.google.com').
  Example use:
  To perform a query against Google Base, set the server to
  'base.google.com' and set the uri to '/base/feeds/...', where ... is
  your query. For example, to find snippets for all digital cameras uri
  should be set to: '/base/feeds/snippets?bq=digital+camera'
  Args:
  uri: string The query in the form of a URI. Example:
  '/base/feeds/snippets?bq=digital+camera'.
  extra_headers: dicty (optional) Extra HTTP headers to be included
  in the GET request. These headers are in addition to
  those stored in the client's additional_headers property.
  The client automatically sets the Content-Type and
  Authorization headers.
  url_params: dict (optional) Additional URL parameters to be included
  in the query. These are translated into query arguments
  in the form '&dict_key=value&...'.
  Example: {'max-results': '250'} becomes &max-results=250
  escape_params: boolean (optional) If false, the calling code has already
  ensured that the query will form a valid URL (all
  reserved characters have been escaped). If true, this
  method will escape the query and any URL parameters
  provided.
  Returns:
  httplib.HTTPResponse The server's response to the GET request.`

Post(self, data, uri, extra_headers=None, url_params=None, escape_params=True, content_type='application/atom+xml')
  `Insert data into an APP server at the given URI.
  Args:
  data: string, ElementTree._Element, or something with a __str__ method
  The XML to be sent to the uri.
  uri: string The location (feed) to which the data should be inserted.
  Example: '/base/feeds/items'.
  extra_headers: dict (optional) HTTP headers which are to be included.
  The client automatically sets the Content-Type,
  Authorization, and Content-Length headers.
  url_params: dict (optional) Additional URL parameters to be included
  in the URI. These are translated into query arguments
  in the form '&dict_key=value&...'.
  Example: {'max-results': '250'} becomes &max-results=250
  escape_params: boolean (optional) If false, the calling code has already
  ensured that the query will form a valid URL (all
  reserved characters have been escaped). If true, this
  method will escape the query and any URL parameters
  provided.
  Returns:
  httplib.HTTPResponse Server's response to the POST request.`

Put(self, data, uri, extra_headers=None, url_params=None, escape_params=True, content_type='application/atom+xml')
  `Updates an entry at the given URI.
  Args:
  data: string, ElementTree._Element, or xml_wrapper.ElementWrapper The
  XML containing the updated data.
  uri: string A URI indicating entry to which the update will be applied.
  Example: '/base/feeds/items/ITEM-ID'
  extra_headers: dict (optional) HTTP headers which are to be included.
  The client automatically sets the Content-Type,
  Authorization, and Content-Length headers.
  url_params: dict (optional) Additional URL parameters to be included
  in the URI. These are translated into query arguments
  in the form '&dict_key=value&...'.
  Example: {'max-results': '250'} becomes &max-results=250
  escape_params: boolean (optional) If false, the calling code has already
  ensured that the query will form a valid URL (all
  reserved characters have been escaped). If true, this
  method will escape the query and any URL parameters
  provided.
  Returns:
  httplib.HTTPResponse Server's response to the PUT request.`

UseBasicAuth(self, username, password, for_proxy=False)
  `Sets an Authenticaiton: Basic HTTP header containing plaintext.
  Deprecated, use use_basic_auth instead.
  The username and password are base64 encoded and added to an HTTP header
  which will be included in each request. Note that your username and
  password are sent in plaintext.
  Args:
  username: str
  password: str`

__init__(*args, **kwargs)
  `# The deprecated_function wraps the actual call to f.`

request(*args, **kwargs)
  `# The deprecated_function wraps the actual call to f.`

use_basic_auth(self, username, password, scopes=None)

Data descriptors defined here:

__dict__
  `dictionary for instance variables (if defined)`

__weakref__
  `list of weak references to the object (if defined)`

debug
  `If True, HTTP debug information is printed.`

override_token

Data and other attributes defined here:

auto_set_current_token = True

auto_store_tokens = True

current_token = None

port = 80

ssl = False

class BasicAuthToken(atom.http_interface.GenericToken)

``

Method resolution order:
  BasicAuthToken
  atom.http_interface.GenericToken
  __builtin__.object

Methods defined here:

__init__(self, auth_header, scopes=None)
  `Creates a token used to add Basic Auth headers to HTTP requests.
  Args:
  auth_header: str The value for the Authorization header.
  scopes: list of str or atom.url.Url specifying the beginnings of URLs
  for which this token can be used. For example, if scopes contains
  'http://example.com/foo', then this token can be used for a request to
  'http://example.com/foo/bar' but it cannot be used for a request to
  'http://example.com/baz'`

__str__(self)

perform_request(self, http_client, operation, url, data=None, headers=None)
  `Sets the Authorization header to the basic auth string.`

valid_for_scope(self, url)
  `Tells the caller if the token authorizes access to the desired URL.`

Data descriptors inherited from atom.http_interface.GenericToken:

__dict__
  `dictionary for instance variables (if defined)`

__weakref__
  `list of weak references to the object (if defined)`

Functions

``

BuildUri(uri, url_params=None, escape_params=True)
  `Converts a uri string and a collection of parameters into a URI.
  This function is deprcated, use atom.url.Url instead.
  Args:
  uri: string
  url_params: dict (optional)
  escape_params: boolean (optional)
  uri: string The start of the desired URI. This string can alrady contain
  URL parameters. Examples: '/base/feeds/snippets',
  '/base/feeds/snippets?bq=digital+camera'
  url_parameters: dict (optional) Additional URL parameters to be included
  in the query. These are translated into query arguments
  in the form '&dict_key=value&...'.
  Example: {'max-results': '250'} becomes &max-results=250
  escape_params: boolean (optional) If false, the calling code has already
  ensured that the query will form a valid URL (all
  reserved characters have been escaped). If true, this
  method will escape the query and any URL parameters
  provided.
  Returns:
  string The URI consisting of the escaped URL parameters appended to the
  initial uri string.`

CalculateDataLength(data)
  `Attempts to determine the length of the data to send.
  This method will respond with a length only if the data is a string or
  and ElementTree element.
  Args:
  data: object If this is not a string or ElementTree element this funtion
  will return None.`

DictionaryToParamList(url_parameters, escape_params=True)
  `Convert a dictionary of URL arguments into a URL parameter string.
  This function is deprcated, use atom.url.Url instead.
  Args:
  url_parameters: The dictionaty of key-value pairs which will be converted
  into URL parameters. For example,
  {'dry-run': 'true', 'foo': 'bar'}
  will become ['dry-run=true', 'foo=bar'].
  Returns:
  A list which contains a string for each key-value pair. The strings are
  ready to be incorporated into a URL by using '&'.join([] + parameter_list)`

HttpRequest(service, operation, data, uri, extra_headers=None, url_params=None, escape_params=True, content_type='application/atom+xml')
  `Performs an HTTP call to the server, supports GET, POST, PUT, and DELETE.
  This method is deprecated, use atom.http.HttpClient.request instead.
  Usage example, perform and HTTP GET on http://www.google.com/:
  import atom.service
  client = atom.service.AtomService()
  http_response = client.Get('http://www.google.com/')
  or you could set the client.server to 'www.google.com' and use the
  following:
  client.server = 'www.google.com'
  http_response = client.Get('/')
  Args:
  service: atom.AtomService object which contains some of the parameters
  needed to make the request. The following members are used to
  construct the HTTP call: server (str), additional_headers (dict),
  port (int), and ssl (bool).
  operation: str The HTTP operation to be performed. This is usually one of
  'GET', 'POST', 'PUT', or 'DELETE'
  data: ElementTree, filestream, list of parts, or other object which can be
  converted to a string.
  Should be set to None when performing a GET or PUT.
  If data is a file-like object which can be read, this method will read
  a chunk of 100K bytes at a time and send them.
  If the data is a list of parts to be sent, each part will be evaluated
  and sent.
  uri: The beginning of the URL to which the request should be sent.
  Examples: '/', '/base/feeds/snippets',
  '/m8/feeds/contacts/default/base'
  extra_headers: dict of strings. HTTP headers which should be sent
  in the request. These headers are in addition to those stored in
  service.additional_headers.
  url_params: dict of strings. Key value pairs to be added to the URL as
  URL parameters. For example {'foo':'bar', 'test':'param'} will
  become ?foo=bar&test=param.
  escape_params: bool default True. If true, the keys and values in
  url_params will be URL escaped when the form is constructed
  (Special characters converted to %XX form.)
  content_type: str The MIME type for the data being sent. Defaults to
  'application/atom+xml', this is only used if data is set.`

PrepareConnection(service, full_uri)
  `Opens a connection to the server based on the full URI.
  This method is deprecated, instead use atom.http.HttpClient.request.
  Examines the target URI and the proxy settings, which are set as
  environment variables, to open a connection with the server. This
  connection is used to make an HTTP request.
  Args:
  service: atom.AtomService or a subclass. It must have a server string which
  represents the server host to which the request should be made. It may also
  have a dictionary of additional_headers to send in the HTTP request.
  full_uri: str Which is the target relative (lacks protocol and host) or
  absolute URL to be opened. Example:
  'https://www.google.com/accounts/ClientLogin' or
  'base/feeds/snippets' where the server is set to www.google.com.
  Returns:
  A tuple containing the httplib.HTTPConnection and the full_uri for the
  request.`

ProcessUrl(service, url, for_proxy=False)
  `Processes a passed URL. If the URL does not begin with https?, then
  the default value for server is used
  This method is deprecated, use atom.url.parse_url instead.`

UseBasicAuth(service, username, password, for_proxy=False)
  `Sets an Authenticaiton: Basic HTTP header containing plaintext.
  Deprecated, use AtomService.use_basic_auth insread.
  The username and password are base64 encoded and added to an HTTP header
  which will be included in each request. Note that your username and
  password are sent in plaintext. The auth header is added to the
  additional_headers dictionary in the service object.
  Args:
  service: atom.AtomService or a subclass which has an
  additional_headers dict as a member.
  username: str
  password: str`

deprecation(message)

Data
`` |  | __author__ = 'api.jscudder (Jeff Scudder)'

Author
`` |  | api.jscudder (Jeff Scudder)