Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
## Array
list_index = -1
if isint(next_path_item):
if current_type and current_type != "array":
raise ValueError(
"There is an array at '{}' when the schema says there should be a '{}'".format(
path_till_now, current_type
)
)
list_index = int(next_path_item)
current_type = "array"
if current_type == "array":
list_as_dict = current_path.get(path_item)
if list_as_dict is None:
list_as_dict = ListAsDict()
current_path[path_item] = list_as_dict
elif type(list_as_dict) is not ListAsDict:
warn(
"Column {} has been ignored, because it treats {} as an array, but another column does not.".format(
path, path_till_now
),
DataErrorWarning,
)
break
new_path = list_as_dict.get(list_index)
if new_path is None:
new_path = OrderedDict()
list_as_dict[list_index] = new_path
current_path = new_path
if not xml or num < len(path_list) - 2:
# In xml "arrays" can have text values, if they're the final element
def list_as_dicts_to_temporary_dicts(unflattened, id_name, xml):
for key, value in list(unflattened.items()):
if isinstance(value, Cell):
continue
if hasattr(value, "items"):
if not value:
unflattened.pop(key)
list_as_dicts_to_temporary_dicts(value, id_name, xml)
if isinstance(value, ListAsDict):
temporarydict = TemporaryDict(id_name, xml=xml)
for index in sorted(value.keys()):
temporarydict.append(value[index])
unflattened[key] = temporarydict
return unflattened