comparison toolfactory/galaxyxml/__init__.py @ 38:a30536c100bf draft

Updated history outputs
author fubar
date Wed, 12 Aug 2020 01:43:46 -0400
parents ce2b1f8ea68d
children
comparison
equal deleted inserted replaced
37:099047ee7094 38:a30536c100bf
1 from builtins import object
1 from builtins import str 2 from builtins import str
2 from builtins import object 3
3 from lxml import etree 4 from lxml import etree
4 5
5 6
6 class GalaxyXML(object): 7 class GalaxyXML(object):
7 def __init__(self): 8 def __init__(self):
15 @classmethod 16 @classmethod
16 def coerce(cls, data, kill_lists=False): 17 def coerce(cls, data, kill_lists=False):
17 """Recursive data sanitisation 18 """Recursive data sanitisation
18 """ 19 """
19 if isinstance(data, dict): 20 if isinstance(data, dict):
20 return { 21 return {k: cls.coerce(v, kill_lists=kill_lists) for k, v in list(data.items()) if v is not None}
21 k: cls.coerce(v, kill_lists=kill_lists)
22 for k, v in list(data.items())
23 if v is not None
24 }
25 elif isinstance(data, list): 22 elif isinstance(data, list):
26 if kill_lists: 23 if kill_lists:
27 return cls.coerce(data[0]) 24 return cls.coerce(data[0])
28 else: 25 else:
29 return [cls.coerce(v, kill_lists=kill_lists) for v in data] 26 return [cls.coerce(v, kill_lists=kill_lists) for v in data]