Simplify xml_serialize, warn when unknown type used

This commit is contained in:
Don Kuntz 2019-08-19 17:54:35 -05:00
parent ed82264806
commit 154b4ef844
No known key found for this signature in database
GPG Key ID: EBA7AEF98657FB2E

View File

@ -20,7 +20,6 @@ def xml_root(name):
def xml_serialize(tree, key, value):
if key:
name = key[0].lower() + key[1:]
if isinstance(value, list):
if name[-1] == 's':
@ -29,19 +28,19 @@ def xml_serialize(tree, key, value):
name = name + 'Set'
node = ElementTree.SubElement(tree, name)
else:
node = tree
if isinstance(value, (str, int, float, six.text_type)):
node.text = str(value)
elif isinstance(value, bool):
node.text = str(value).lower()
elif isinstance(value, dict):
for dictkey, dictvalue in six.iteritems(value):
xml_serialize(node, dictkey, dictvalue)
elif isinstance(value, list):
for item in value:
xml_serialize(node, 'item', item)
elif value == None:
pass
else:
raise NotImplementedError("Don't know how to serialize \"{}\" to xml".format(value.__class__))
def pretty_xml(tree):