[libvirt] [PATCHv2 2/8] python: Remove FastParser from generator.
Daniel P. Berrange
berrange at redhat.com
Mon Oct 5 12:39:38 UTC 2009
On Fri, Oct 02, 2009 at 01:46:47PM -0400, Cole Robinson wrote:
> FastParser uses sgmlop, a non-standard python module meant as a replacement
> for xmllib (which is deprecated since python 2.0). Fedora doesn't even carry
> this module, and the generator doesn't have high performance requirements, so
> just rip the code out.
>
> Signed-off-by: Cole Robinson <crobinso at redhat.com>
> ---
> python/generator.py | 53 ++------------------------------------------------
> 1 files changed, 3 insertions(+), 50 deletions(-)
>
> diff --git a/python/generator.py b/python/generator.py
> index 48ad14b..3d142e9 100755
> --- a/python/generator.py
> +++ b/python/generator.py
> @@ -26,52 +26,9 @@ else:
> #######################################################################
> import os
> import xmllib
> -try:
> - import sgmlop
> -except ImportError:
> - sgmlop = None # accelerator not available
>
> debug = 0
>
> -if sgmlop:
> - class FastParser:
> - """sgmlop based XML parser. this is typically 15x faster
> - than SlowParser..."""
> -
> - def __init__(self, target):
> -
> - # setup callbacks
> - self.finish_starttag = target.start
> - self.finish_endtag = target.end
> - self.handle_data = target.data
> - self.handle_cdata = target.cdata
> -
> - # activate parser
> - self.parser = sgmlop.XMLParser()
> - self.parser.register(self)
> - self.feed = self.parser.feed
> - self.entity = {
> - "amp": "&", "gt": ">", "lt": "<",
> - "apos": "'", "quot": '"'
> - }
> -
> - def close(self):
> - try:
> - self.parser.close()
> - finally:
> - self.parser = self.feed = None # nuke circular reference
> -
> - def handle_entityref(self, entity):
> - # <string> entity
> - try:
> - self.handle_data(self.entity[entity])
> - except KeyError:
> - self.handle_data("&%s;" % entity)
> -
> -else:
> - FastParser = None
> -
> -
> class SlowParser(xmllib.XMLParser):
> """slow but safe standard parser, based on the XML parser in
> Python's standard library."""
> @@ -83,13 +40,9 @@ class SlowParser(xmllib.XMLParser):
> self.unknown_endtag = target.end
> xmllib.XMLParser.__init__(self)
>
> -def getparser(target = None):
> - # get the fastest available parser, and attach it to an
> - # unmarshalling object. return both objects.
> - if target is None:
> - target = docParser()
> - if FastParser:
> - return FastParser(target), target
> +def getparser():
> + # Attach parser to an unmarshalling object. return both objects.
> + target = docParser()
> return SlowParser(target), target
>
> class docParser:
ACK
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list