diff --git a/docs/reference.rst b/docs/reference.rst index abd918a..66b9d38 100644 --- a/docs/reference.rst +++ b/docs/reference.rst @@ -94,3 +94,10 @@ sqlite_utils.utils.TypeTracker .. autoclass:: sqlite_utils.utils.TypeTracker :members: wrap, types + +.. _reference_utils_chunks: + +sqlite_utils.utils.chunks +------------------------- + +.. autofunction:: sqlite_utils.utils.chunks diff --git a/sqlite_utils/utils.py b/sqlite_utils/utils.py index 377f82a..64bba50 100644 --- a/sqlite_utils/utils.py +++ b/sqlite_utils/utils.py @@ -468,7 +468,13 @@ def _compile_code(code, imports, variable="value"): return locals["fn"] -def chunks(sequence, size): +def chunks(sequence: Iterable, size: int) -> Iterable[Iterable]: + """ + Iterate over chunks of the sequence of the given size. + + :param sequence: Any Python iterator + :param size: The size of each chunk + """ iterator = iter(sequence) for item in iterator: yield itertools.chain([item], itertools.islice(iterator, size - 1))