Code cleanup in _serialize_nested_items in BaseItemExporter

This commit is contained in:
Michał Panek 2020-04-17 18:22:08 +02:00
parent 947d6c8df2
commit f5ead7dace
1 changed files with 11 additions and 9 deletions

View File

@ -53,18 +53,20 @@ class BaseItemExporter:
pass
def _serialize_nested_items(self, value, default_value, include_empty):
def serialize_iterable(it):
ret = []
for x in it:
ret.append(self._serialize_nested_items(x, default_value, include_empty))
return ret
if isinstance(value, BaseItem):
return dict(self._get_serialized_fields(value, default_value, include_empty))
elif isinstance(value, dict):
tmp = []
for x in value.items():
tmp.append(self._serialize_nested_items(x, default_value, include_empty))
return dict(tmp)
elif is_listlike(value):
tmp = []
for x in value:
tmp.append(self._serialize_nested_items(x, default_value, include_empty))
return type(value)(tmp)
if isinstance(value, dict):
serialized_list = serialize_iterable(value.items())
else:
serialized_list = serialize_iterable(value)
return type(value)(serialized_list)
else:
return value