Merge "Use lxml in xmlgenerator"

This commit is contained in:
Jenkins 2017-03-24 10:46:10 +00:00 committed by Gerrit Code Review
commit b3b52fca92
2 changed files with 12 additions and 5 deletions

View File

@ -13,8 +13,8 @@
# under the License.
from xml.dom import minidom
# noinspection PyPep8Naming
from xml.etree import ElementTree as ET
from lxml import etree # nosec # We are authors of this XML
import six
@ -22,7 +22,9 @@ import six
class XMLGeneratorElement(object):
def __init__(self, name, parent, builder):
self.elem = ET.SubElement(parent, name)
# pylint: disable=no-member
self.elem = etree.SubElement(parent, name)
# pylint: enable=no-member
self.parent = parent
self.builder = builder
self.prev_elem = None
@ -57,7 +59,9 @@ class XMLGeneratorElement(object):
class XMLGenerator(object):
def __init__(self, root_name, **kwargs):
self.root = ET.Element(root_name)
# pylint: disable=no-member
self.root = etree.Element(root_name)
# pylint: enable=no-member
kwargs = {k: str(v) for k, v in kwargs.items()}
self.root.attrib.update(kwargs)
self.curr_el = self.root
@ -69,7 +73,9 @@ class XMLGenerator(object):
builder=self)
def __str__(self):
rough_string = ET.tostring(self.root, encoding='utf-8')
# pylint: disable=no-member
rough_string = etree.tostring(self.root, encoding='utf-8')
# pylint: enable=no-member
reparsed = minidom.parseString(rough_string)
s = reparsed.toprettyxml(indent=' ', encoding='utf-8')
if six.PY2:

View File

@ -50,6 +50,7 @@ setuptools.setup(
'tabulate',
'six>=1.9.0',
'python-dateutil>=2.4.2',
'lxml',
'enum34' if sys.version_info.major == 2 else ''
],
tests_require=[