summaryrefslogtreecommitdiffstats
path: root/pym/portage/xml
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-01-17 13:13:00 -0800
committerZac Medico <zmedico@gentoo.org>2012-01-17 13:13:00 -0800
commit53dac055613c8627f5c79d9cc6ebb0596c2c7b2c (patch)
tree48f5996bb7df245417f409e6f81ef52563e5027c /pym/portage/xml
parentfcb2aafbbd9d4f62c07942560005b6053eff8a9f (diff)
downloadportage-53dac055613c8627f5c79d9cc6ebb0596c2c7b2c.tar.gz
portage-53dac055613c8627f5c79d9cc6ebb0596c2c7b2c.tar.bz2
portage-53dac055613c8627f5c79d9cc6ebb0596c2c7b2c.zip
xml/metadata.py: handle ExpatError
Diffstat (limited to 'pym/portage/xml')
-rw-r--r--pym/portage/xml/metadata.py11
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