Source code for sap.aibus.dar.client.util.lists

"""
Utilities for lists.
"""
from typing import List, TypeVar, Iterator

Item = TypeVar("Item")


[docs]def split_list(input_list: List[Item], slice_size: int) -> Iterator[List[Item]]: """ Yields sub-lists of the *input_list* of size *slice_size* or less. :param input_list: input_list to be divided :param slice_size: maximum number of sub list :return: a generator """ if slice_size < 1: raise ValueError("slize_size must be > 0, not {}".format(slice_size)) if not input_list: yield [] for idx in range(0, len(input_list), slice_size): yield input_list[idx : idx + slice_size]