Package Bio :: Module ParserSupport :: Class EventGenerator
[show private | hide private]
[frames | no frames]

Class EventGenerator

ContentHandler --+
                 |
                EventGenerator


Handler to generate events associated with a Martel parsed file.

This acts like a normal SAX handler, and accepts XML generated by Martel during parsing. These events are then converted into 'Biopython events', which can then be caught by a standard biopython consumer
Method Summary
  __init__(self, consumer, interest_tags, callback_finalizer, exempt_tags)
Initialize to begin catching and firing off events.
  characters(self, content)
Extract the information if we are interested in it.
  endDocument(self)
Make sure all of our information has been passed.
  endElement(self, name)
Send the information to the consumer.
  startElement(self, name, attrs)
Determine if we should collect characters from this tag.

Method Details

__init__(self, consumer, interest_tags, callback_finalizer=None, exempt_tags=[])
(Constructor)

Initialize to begin catching and firing off events.

Arguments: o consumer - The consumer that we'll send Biopython events to.

o interest_tags - A listing of all the tags we are interested in.

o callback_finalizer - A function to deal with the collected information before passing it on to the consumer. By default the collected information is a list of all of the lines read for a particular tag -- if there are multiple tags in a row like:

<some_info>Spam<some_info> <some_info>More Spam<some_info>

In this case the list of information would be:

['Spam', 'More Spam']

This list of lines will be passed to the callback finalizer if it is present. Otherwise the consumer will be called with the list of content information.

o exempt_tags - A listing of particular tags that are exempt from being processed by the callback_finalizer. This allows you to use a finalizer to deal with most tags, but leave those you don't want touched.
Overrides:
_xmlplus.sax.handler.ContentHandler.__init__

characters(self, content)

Extract the information if we are interested in it.
Overrides:
_xmlplus.sax.handler.ContentHandler.characters

endDocument(self)

Make sure all of our information has been passed.

This just flushes out any stored tags that need to be passed.
Overrides:
_xmlplus.sax.handler.ContentHandler.endDocument

endElement(self, name)

Send the information to the consumer.

Once we've got the end element we've collected up all of the character information we need, and we need to send this on to the consumer to do something with it.

We have a delay of one tag on doing this, so that we can collect all of the info from multiple calls to the same element at once.
Overrides:
_xmlplus.sax.handler.ContentHandler.endElement

startElement(self, name, attrs)

Determine if we should collect characters from this tag.
Overrides:
_xmlplus.sax.handler.ContentHandler.startElement

Generated by Epydoc 2.1 on Thu Aug 10 20:01:04 2006 http://epydoc.sf.net