Simplify xml_serialize, warn when unknown type used
This commit is contained in:
parent
ed82264806
commit
154b4ef844
@ -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):
|
||||
|
Loading…
Reference in New Issue
Block a user