/gdata/codesearch/service.py
http://radioappz.googlecode.com/ · Python · 109 lines · 73 code · 10 blank · 26 comment · 0 complexity · e373a1ea4246bc527a71e8cad66efca3 MD5 · raw file
- # -*- coding: utf-8 -*-
- #
- # Copyright (c) 2007 Benoit Chesneau <benoitc@metavers.net>
- #
- # Permission to use, copy, modify, and distribute this software for any
- # purpose with or without fee is hereby granted, provided that the above
- # copyright notice and this permission notice appear in all copies.
- #
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- """CodesearchService extends GDataService to streamline Google Codesearch
- operations"""
- __author__ = 'Benoit Chesneau'
- import atom
- import gdata.service
- import gdata.codesearch
- class CodesearchService(gdata.service.GDataService):
- """Client extension for Google codesearch service"""
- def __init__(self, email=None, password=None, source=None,
- server='www.google.com', additional_headers=None, **kwargs):
- """Creates a client for the Google codesearch service.
- Args:
- email: string (optional) The user's email address, used for
- authentication.
- password: string (optional) The user's password.
- source: string (optional) The name of the user's application.
- server: string (optional) The name of the server to which a connection
- will be opened. Default value: 'www.google.com'.
- **kwargs: The other parameters to pass to gdata.service.GDataService
- constructor.
- """
- gdata.service.GDataService.__init__(
- self, email=email, password=password, service='codesearch',
- source=source, server=server, additional_headers=additional_headers,
- **kwargs)
- def Query(self, uri, converter=gdata.codesearch.CodesearchFeedFromString):
- """Queries the Codesearch feed and returns the resulting feed of
- entries.
- Args:
- uri: string The full URI to be queried. This can contain query
- parameters, a hostname, or simply the relative path to a Document
- List feed. The DocumentQuery object is useful when constructing
- query parameters.
- converter: func (optional) A function which will be executed on the
- retrieved item, generally to render it into a Python object.
- By default the CodesearchFeedFromString function is used to
- return a CodesearchFeed object. This is because most feed
- queries will result in a feed and not a single entry.
- Returns :
- A CodesearchFeed objects representing the feed returned by the server
- """
- return self.Get(uri, converter=converter)
- def GetSnippetsFeed(self, text_query=None):
- """Retrieve Codesearch feed for a keyword
- Args:
- text_query : string (optional) The contents of the q query parameter. This
- string is URL escaped upon conversion to a URI.
- Returns:
- A CodesearchFeed objects representing the feed returned by the server
- """
- query=gdata.codesearch.service.CodesearchQuery(text_query=text_query)
- feed = self.Query(query.ToUri())
- return feed
- class CodesearchQuery(gdata.service.Query):
- """Object used to construct the query to the Google Codesearch feed. here only as a shorcut"""
- def __init__(self, feed='/codesearch/feeds/search', text_query=None,
- params=None, categories=None):
- """Constructor for Codesearch Query.
- Args:
- feed: string (optional) The path for the feed. (e.g. '/codesearch/feeds/search')
- text_query: string (optional) The contents of the q query parameter. This
- string is URL escaped upon conversion to a URI.
- params: dict (optional) Parameter value string pairs which become URL
- params when translated to a URI. These parameters are added to
- the query's items.
- categories: list (optional) List of category strings which should be
- included as query categories. See gdata.service.Query for
- additional documentation.
- Yelds:
- A CodesearchQuery object to construct a URI based on Codesearch feed
- """
- gdata.service.Query.__init__(self, feed, text_query, params, categories)