def merge_lists()

in aidial_sdk/utils/merge_chunks.py [0:0]


def merge_lists(target: list, source: list, path: Path) -> list:
    is_target_indexed = is_indexed_list(target)
    is_source_indexed = is_indexed_list(source)

    if len(source) == 0:
        return target

    if len(target) == 0:
        if is_source_indexed:
            return merge_indexed_lists(target, source, path)
        else:
            return copy.deepcopy(source)

    if not is_target_indexed and not is_source_indexed:
        raise AssertionError(CANNOT_MERGE_NON_INDEXED_LISTS_ERROR_MESSAGE)

    assert (
        is_target_indexed and is_source_indexed
    ), CANNOT_MERGE_NON_INDEXED_AND_INDEXED_LISTS_ERROR_MESSAGE

    return merge_indexed_lists(target, source, path)