|
8 | 8 |
|
9 | 9 | import logging
|
10 | 10 | from contextlib import contextmanager
|
11 |
| -from typing import Any, Iterator, List, Optional, Sequence, Union |
| 11 | +from typing import Any, Iterator, Sequence, Union |
12 | 12 |
|
13 | 13 | from arango.exceptions import DocumentParseError
|
14 | 14 | from arango.typings import Json
|
@@ -84,25 +84,14 @@ def is_none_or_str(obj: Any) -> bool:
|
84 | 84 | return obj is None or isinstance(obj, str)
|
85 | 85 |
|
86 | 86 |
|
87 |
| -def get_batches( |
88 |
| - l: Sequence[Json], batch_size: Optional[int] = None |
89 |
| -) -> Union[List[Sequence[Json]], Iterator[Sequence[Json]]]: |
| 87 | +def get_batches(elements: Sequence[Json], batch_size: int) -> Iterator[Sequence[Json]]: |
90 | 88 | """Generator to split a list in batches
|
91 | 89 | of (maximum) **batch_size** elements each.
|
92 |
| - If **batch_size** is invalid, return entire |
93 |
| - list as one batch. |
94 | 90 |
|
95 |
| - :param l: The list of elements. |
96 |
| - :type l: list |
| 91 | + :param elements: The list of elements. |
| 92 | + :type elements: Sequence[Json] |
97 | 93 | :param batch_size: Number of elements per batch.
|
98 |
| - :type batch_size: int | None |
| 94 | + :type batch_size: int |
99 | 95 | """
|
100 |
| - if batch_size is None or batch_size <= 0 or batch_size >= len(l): |
101 |
| - return [l] |
102 |
| - |
103 |
| - def generator() -> Iterator[Sequence[Json]]: |
104 |
| - n = int(batch_size) # type: ignore # (false positive) |
105 |
| - for i in range(0, len(l), n): |
106 |
| - yield l[i : i + n] |
107 |
| - |
108 |
| - return generator() |
| 96 | + for index in range(0, len(elements), batch_size): |
| 97 | + yield elements[index : index + batch_size] |
0 commit comments