in augmentation/utils.py [0:0]
def deepflatten_sequence(lst: List, sequence_type = List):
"""
Flattens any nested sequence, for example:
[[1, 2, 3], [[4], [5, [6], 7]]] -> [1, 2, 3, 4, 5, 6, 7]
"""
def step(acc, elem):
(lst, curr_idx) = acc
if not isinstance(elem, sequence_type):
lst[curr_idx] = elem
return (lst, curr_idx + 1)
return reduce(step, elem, acc)
num_elements = count_elements_in_nested_sequence(lst, sequence_type)
# to avoid reallocation
result = [None] * num_elements
result, _ = reduce(step, lst, (result, 0))
return result