Skip to content
Snippets Groups Projects
Commit b6b7ad22 authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

TMSS-849: process lists of different lenghts

parent a3819a67
No related branches found
No related tags found
3 merge requests!634WIP: COBALT commissioning delta,!513TMSS-849,!481Draft: SW-971 SW-973 SW-975: Various fixes to build LOFAR correctly.
......@@ -247,15 +247,27 @@ def dict_with_overrides(org_dict: dict, overrides: dict) -> dict:
elif isinstance(override_value, list):
sub_list = new_dict.get(override_key, [])
assert isinstance(sub_list, list)
assert len(sub_list) == len(override_value)
for i in range(len(override_value)):
org_list_item = sub_list[i]
override_list_item = override_value[i]
if isinstance(org_list_item, dict) and isinstance(override_list_item, dict):
new_dict[override_key][i] = dict_with_overrides(org_list_item, override_list_item)
else:
new_dict[override_key][i] = override_list_item
if override_key not in new_dict:
new_dict[override_key] = []
if any([isinstance(item, dict) or isinstance(item, list) for item in override_value]):
# override_value is a list of with some/all recursible items which need recursion.
for i in range(len(override_value)):
override_list_item = override_value[i]
if i < len(sub_list):
org_list_item = sub_list[i]
if isinstance(org_list_item, dict) and isinstance(override_list_item, dict):
# recurse
override_list_item = dict_with_overrides(org_list_item, override_list_item)
new_dict[override_key][i] = override_list_item
else:
new_dict[override_key].append(override_list_item)
else:
# override_value is a list of 'plain' values which need no recursion. Just copy it.
new_dict[override_key] = override_value
else:
new_dict[override_key] = override_value
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment