diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-01-17 13:13:00 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-01-17 13:13:00 -0800 |
commit | 53dac055613c8627f5c79d9cc6ebb0596c2c7b2c (patch) | |
tree | 48f5996bb7df245417f409e6f81ef52563e5027c | |
parent | fcb2aafbbd9d4f62c07942560005b6053eff8a9f (diff) | |
download | portage-53dac055613c8627f5c79d9cc6ebb0596c2c7b2c.tar.gz portage-53dac055613c8627f5c79d9cc6ebb0596c2c7b2c.tar.bz2 portage-53dac055613c8627f5c79d9cc6ebb0596c2c7b2c.zip |
xml/metadata.py: handle ExpatError
-rw-r--r-- | pym/portage/xml/metadata.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/pym/portage/xml/metadata.py b/pym/portage/xml/metadata.py index 04112cddc..5d02a358b 100644 --- a/pym/portage/xml/metadata.py +++ b/pym/portage/xml/metadata.py @@ -45,10 +45,15 @@ else: except ImportError: import xml.etree.ElementTree as etree +try: + from xml.parsers.expat import ExpatError +except ImportError: + ExpatError = SyntaxError + import re import xml.etree.ElementTree import portage -from portage import os +from portage import os, _unicode_decode from portage.util import unique_everseen class _MetadataTreeBuilder(xml.etree.ElementTree.TreeBuilder): @@ -179,7 +184,7 @@ class MetaDataXML(object): """Access metadata.xml""" def __init__(self, metadata_xml_path, herds): - """Parse a valid metadata.xml file. + """Parse a valid mnicoetadata.xml file. @type metadata_xml_path: str @param metadata_xml_path: path to a valid metadata.xml file @@ -196,6 +201,8 @@ class MetaDataXML(object): parser=etree.XMLParser(target=_MetadataTreeBuilder())) except ImportError: pass + except ExpatError as e: + raise SyntaxError(_unicode_decode("%s") % (e,)) if isinstance(herds, etree.ElementTree): herds_etree = herds |