Mercurial > repos > fubar > tool_factory_2
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] |