From ff27940b8e2848628ba30df093f1a5a2b156fc41 Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Thu, 4 Feb 2021 17:21:06 +0530 Subject: [PATCH] refactor(utils): Update create_batch docstring, annotations --- frappe/utils/__init__.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/frappe/utils/__init__.py b/frappe/utils/__init__.py index 8577d7cd7c..c8a589c694 100644 --- a/frappe/utils/__init__.py +++ b/frappe/utils/__init__.py @@ -700,13 +700,19 @@ def get_safe_filters(filters): return filters -def create_batch(iterable, batch_size): - """ - Convert an iterable to multiple batches of constant size of batch_size +def create_batch(iterable: Iterable, size: int) -> Generator[Iterable, None, None]: + """Convert an iterable to multiple batches of constant size of batch_size + + Args: + iterable (Iterable): Iterable object which is subscriptable + size (int): Maximum size of batches to be generated + + Yields: + Generator[List]: Batched iterable of maximum length `size` """ total_count = len(iterable) - for i in range(0, total_count, batch_size): - yield iterable[i:min(i + batch_size, total_count)] + for i in range(0, total_count, size): + yield iterable[i : min(i + size, total_count)] def set_request(**kwargs): from werkzeug.test import EnvironBuilder