Source code for darwin.utils.flatten_list

from typing import Generator, List

from darwin.datatypes import UnknownType


[docs] def flatten_list(list_of_lists: List[UnknownType]) -> List[UnknownType]: """ Flattens a list of lists into a single list. Parameters ---------- list_of_lists : List[List[Any]] The list of lists to flatten. Returns ------- List[Any] The flattened list. """ if not isinstance(list_of_lists, list): raise TypeError("Expected a list") def flatten(lists: List[UnknownType]) -> Generator[list, UnknownType, UnknownType]: if isinstance(lists, list) and len(lists) == 0: return lists for item in lists: if isinstance(item, list): for i in flatten(item): yield i else: yield item return list(flatten(list_of_lists))