File tree Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -135,7 +135,9 @@ def process_source(self, source):
135
135
source_batch .append (next (self .source_generator ))
136
136
except StopIteration :
137
137
self .source_exhausted = True
138
- return
138
+ if len (source_batch ) == 0 :
139
+ return
140
+ break
139
141
self .n_sourced += 1
140
142
if self .n_sourced == self .max_batches :
141
143
self .source_exhausted = True
Original file line number Diff line number Diff line change @@ -40,3 +40,20 @@ def generator():
40
40
expected_rows = max_batches if max_batches else 12
41
41
assert len (res ) == expected_rows
42
42
assert pd .concat (res ).customgen .to_list () == list (range (expected_rows ))
43
+
44
+
45
+ @pytest .mark .parametrize ('gen_n' , [0 , 4 ])
46
+ def test_stream_executor_exhausts_input_when_source_batchsize_larger_than_input (gen_n ):
47
+ st = PipelineTask ('task_name' , lambda x : x , batch_size = 10 )
48
+ def generator ():
49
+ n = gen_n
50
+ for i in range (n ):
51
+ yield pd .DataFrame ({'customgen' : [i ]})
52
+ pl = LocalSerialExecutor ([st ], generator = generator )
53
+ res = [i .data for i in pl .run ()]
54
+ if gen_n > 0 :
55
+ assert len (res ) == 1
56
+ assert len (res [0 ]) == gen_n
57
+ else :
58
+ # do not submit empty source batches
59
+ assert len (res ) == 0
You can’t perform that action at this time.
0 commit comments