mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-04-15 23:30:47 +01:00
utils/serializer: make is_pod() recursive
If the object being passed into is_pod() is iterable (and not a string), recursively check that its elements are also PODs.
This commit is contained in:
parent
86ba51be72
commit
4cc5aec39a
@ -305,6 +305,7 @@ def _read_pod(fh, fmt=None):
|
|||||||
else:
|
else:
|
||||||
raise ValueError('Unknown format "{}": {}'.format(fmt, getattr(fh, 'name', '<none>')))
|
raise ValueError('Unknown format "{}": {}'.format(fmt, getattr(fh, 'name', '<none>')))
|
||||||
|
|
||||||
|
|
||||||
def _write_pod(pod, wfh, fmt=None):
|
def _write_pod(pod, wfh, fmt=None):
|
||||||
if fmt is None:
|
if fmt is None:
|
||||||
fmt = os.path.splitext(wfh.name)[1].lower().strip('.')
|
fmt = os.path.splitext(wfh.name)[1].lower().strip('.')
|
||||||
@ -317,6 +318,19 @@ def _write_pod(pod, wfh, fmt=None):
|
|||||||
else:
|
else:
|
||||||
raise ValueError('Unknown format "{}": {}'.format(fmt, getattr(wfh, 'name', '<none>')))
|
raise ValueError('Unknown format "{}": {}'.format(fmt, getattr(wfh, 'name', '<none>')))
|
||||||
|
|
||||||
def is_pod(obj):
|
|
||||||
return type(obj) in POD_TYPES
|
def is_pod(obj):
|
||||||
|
if type(obj) not in POD_TYPES:
|
||||||
|
return False
|
||||||
|
if hasattr(obj, 'iteritems'):
|
||||||
|
for k, v in obj.iteritems():
|
||||||
|
if not (is_pod(k) and is_pod(v)):
|
||||||
|
return False
|
||||||
|
elif isiterable(obj):
|
||||||
|
for v in obj:
|
||||||
|
if not is_pod(v):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user