@@ -23,6 +23,7 @@ def __init__(
23
23
response_docarray_cls ,
24
24
output_array_type : Optional [str ] = None ,
25
25
params : Optional [Dict ] = None ,
26
+ flush_all : bool = False ,
26
27
preferred_batch_size : int = 4 ,
27
28
timeout : int = 10_000 ,
28
29
) -> None :
@@ -35,6 +36,7 @@ def __init__(
35
36
self .params = params
36
37
self ._request_docarray_cls = request_docarray_cls
37
38
self ._response_docarray_cls = response_docarray_cls
39
+ self ._flush_all = flush_all
38
40
self ._preferred_batch_size : int = preferred_batch_size
39
41
self ._timeout : int = timeout
40
42
self ._reset ()
@@ -205,7 +207,10 @@ async def _assign_results(
205
207
206
208
return num_assigned_docs
207
209
208
- def batch (iterable_1 , iterable_2 , n = 1 ):
210
+ def batch (iterable_1 , iterable_2 , n :Optional [int ] = 1 ):
211
+ if n is None :
212
+ yield iterable_1 , iterable_2
213
+ return
209
214
items = len (iterable_1 )
210
215
for ndx in range (0 , items , n ):
211
216
yield iterable_1 [ndx : min (ndx + n , items )], iterable_2 [
@@ -229,7 +234,7 @@ def batch(iterable_1, iterable_2, n=1):
229
234
non_assigned_to_response_request_idxs = []
230
235
sum_from_previous_first_req_idx = 0
231
236
for docs_inner_batch , req_idxs in batch (
232
- self ._big_doc , self ._request_idxs , self ._preferred_batch_size
237
+ self ._big_doc , self ._request_idxs , self ._preferred_batch_size if not self . _flush_all else None
233
238
):
234
239
involved_requests_min_indx = req_idxs [0 ]
235
240
involved_requests_max_indx = req_idxs [- 1 ]
0 commit comments