in aidial_sdk/utils/merge_chunks.py [0:0]
def merge_indexed_lists(target: list, source: list, path: Path) -> list:
for elem in source:
assert isinstance(elem, dict), LIST_OF_DICTS_ERROR_MESSAGE
index = elem.get("index")
assert isinstance(index, int), INDEX_ERROR_MESSAGE
path.append(index)
if index < len(target):
target[index] = merge_recursive(target[index], elem, path)
else:
target.extend([{"index": idx} for idx in range(len(target), index)])
target.append(copy.deepcopy(elem))
path.pop()
return target