@@ -92,8 +92,11 @@ def __call__(
9292 is_first = True
9393 for res in result :
9494 yield pd .DataFrame ([res ])
95- self .store ([res ], meta_update if is_first else {})
95+ self .store (
96+ [res ], meta_update if is_first else {}, flush = False
97+ )
9698 is_first = False
99+ self .kv_storage .index_done_callback ()
97100 else :
98101 yield pd .DataFrame (result )
99102 self .store (result , meta_update )
@@ -141,7 +144,7 @@ def split(self, batch: "pd.DataFrame") -> tuple["pd.DataFrame", "pd.DataFrame"]:
141144 recovered_chunks = [c for c in recovered_chunks if c is not None ]
142145 return to_process , pd .DataFrame (recovered_chunks )
143146
144- def store (self , results : list , meta_update : dict ):
147+ def store (self , results : list , meta_update : dict , flush : bool = True ):
145148 results = convert_to_serializable (results )
146149 meta_update = convert_to_serializable (meta_update )
147150
@@ -159,7 +162,8 @@ def store(self, results: list, meta_update: dict):
159162 for v in v_list :
160163 inverse_meta [v ] = k
161164 self .kv_storage .update ({"_meta_inverse" : inverse_meta })
162- self .kv_storage .index_done_callback ()
165+ if flush :
166+ self .kv_storage .index_done_callback ()
163167
164168 @abstractmethod
165169 def process (self , batch : list ) -> Tuple [Union [list , Iterable [dict ]], dict ]:
0 commit comments