/gdata/codesearch/__init__.py
http://radioappz.googlecode.com/ · Python · 136 lines · 73 code · 28 blank · 35 comment · 8 complexity · 87055f8a58d4dbfe5c8c71a034505dc4 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.
- """Contains extensions to Atom objects used by Google Codesearch"""
- __author__ = 'Benoit Chesneau'
- import atom
- import gdata
- CODESEARCH_NAMESPACE='http://schemas.google.com/codesearch/2006'
- CODESEARCH_TEMPLATE='{http://shema.google.com/codesearch/2006}%s'
- class Match(atom.AtomBase):
- """ The Google Codesearch match element """
- _tag = 'match'
- _namespace = CODESEARCH_NAMESPACE
- _children = atom.AtomBase._children.copy()
- _attributes = atom.AtomBase._attributes.copy()
- _attributes['lineNumber'] = 'line_number'
- _attributes['type'] = 'type'
- def __init__(self, line_number=None, type=None, extension_elements=None,
- extension_attributes=None, text=None):
- self.text = text
- self.type = type
- self.line_number = line_number
- self.extension_elements = extension_elements or []
- self.extension_attributes = extension_attributes or {}
- class File(atom.AtomBase):
- """ The Google Codesearch file element"""
- _tag = 'file'
- _namespace = CODESEARCH_NAMESPACE
- _children = atom.AtomBase._children.copy()
- _attributes = atom.AtomBase._attributes.copy()
- _attributes['name'] = 'name'
- def __init__(self, name=None, extension_elements=None,
- extension_attributes=None, text=None):
- self.text = text
- self.name = name
- self.extension_elements = extension_elements or []
- self.extension_attributes = extension_attributes or {}
- class Package(atom.AtomBase):
- """ The Google Codesearch package element"""
- _tag = 'package'
- _namespace = CODESEARCH_NAMESPACE
- _children = atom.AtomBase._children.copy()
- _attributes = atom.AtomBase._attributes.copy()
- _attributes['name'] = 'name'
- _attributes['uri'] = 'uri'
- def __init__(self, name=None, uri=None, extension_elements=None,
- extension_attributes=None, text=None):
- self.text = text
- self.name = name
- self.uri = uri
- self.extension_elements = extension_elements or []
- self.extension_attributes = extension_attributes or {}
- class CodesearchEntry(gdata.GDataEntry):
- """ Google codesearch atom entry"""
- _tag = gdata.GDataEntry._tag
- _namespace = gdata.GDataEntry._namespace
- _children = gdata.GDataEntry._children.copy()
- _attributes = gdata.GDataEntry._attributes.copy()
-
- _children['{%s}file' % CODESEARCH_NAMESPACE] = ('file', File)
- _children['{%s}package' % CODESEARCH_NAMESPACE] = ('package', Package)
- _children['{%s}match' % CODESEARCH_NAMESPACE] = ('match', [Match])
-
- def __init__(self, author=None, category=None, content=None,
- atom_id=None, link=None, published=None,
- title=None, updated=None,
- match=None,
- extension_elements=None, extension_attributes=None, text=None):
-
- gdata.GDataEntry.__init__(self, author=author, category=category,
- content=content, atom_id=atom_id, link=link,
- published=published, title=title,
- updated=updated, text=None)
- self.match = match or []
- def CodesearchEntryFromString(xml_string):
- """Converts an XML string into a CodesearchEntry object.
- Args:
- xml_string: string The XML describing a Codesearch feed entry.
- Returns:
- A CodesearchEntry object corresponding to the given XML.
- """
- return atom.CreateClassFromXMLString(CodesearchEntry, xml_string)
- class CodesearchFeed(gdata.GDataFeed):
- """feed containing list of Google codesearch Items"""
- _tag = gdata.GDataFeed._tag
- _namespace = gdata.GDataFeed._namespace
- _children = gdata.GDataFeed._children.copy()
- _attributes = gdata.GDataFeed._attributes.copy()
- _children['{%s}entry' % atom.ATOM_NAMESPACE] = ('entry', [CodesearchEntry])
-
- def CodesearchFeedFromString(xml_string):
- """Converts an XML string into a CodesearchFeed object.
- Args:
- xml_string: string The XML describing a Codesearch feed.
- Returns:
- A CodeseartchFeed object corresponding to the given XML.
- """
- return atom.CreateClassFromXMLString(CodesearchFeed, xml_string)