python_arango_ogm.utils.iter_util
1from itertools import islice 2from typing import List, Iterable, Generator 3 4def chunken(iterable: Iterable, chunk_size: int = 100) -> Generator: 5 it = iter(iterable) 6 yield from iter(lambda: list(islice(it, chunk_size)), []) 7 8def replace_tuple_item(tpl: tuple, index: int, new_item): 9 l = list(tpl) 10 l[index] = new_item 11 return tuple(l) 12 13# Recursively flatten n-dimensional list into a single list 14# Allows for jagged and mixed lists 15# TODO: Make recursion a generator? 16def flatten(lst: List, flat=[]): 17 if (lst): 18 for item in lst: 19 if isinstance(item, List): 20 flatten(item, flat) 21 else: 22 flat.append(item) 23 return flat 24 25 # @staticmethod 26 # def chunk_sequence(seq, size): 27 # return (seq[pos:pos + size] for pos in range(0, len(seq), size))
def
chunken(iterable: Iterable, chunk_size: int = 100) -> Generator:
def
replace_tuple_item(tpl: tuple, index: int, new_item):
def
flatten(lst: List, flat=[]):