@@ -166,10 +166,6 @@ def callback(
166166 "Progress and progress default needs to be of same length"
167167 )
168168
169- if running :
170- long_spec ["running" ] = coerce_to_list (running )
171- validate_long_inputs (x [0 ] for x in long_spec ["running" ])
172-
173169 if cancel :
174170 cancel_inputs = coerce_to_list (cancel )
175171 validate_long_inputs (cancel_inputs )
@@ -188,6 +184,7 @@ def callback(
188184 ** _kwargs ,
189185 long = long_spec ,
190186 manager = manager ,
187+ running = running ,
191188 )
192189
193190
@@ -227,6 +224,7 @@ def insert_callback(
227224 prevent_initial_call ,
228225 long = None ,
229226 manager = None ,
227+ running = None ,
230228 dynamic_creator = False ,
231229):
232230 if prevent_initial_call is None :
@@ -251,6 +249,8 @@ def insert_callback(
251249 },
252250 "dynamic_creator" : dynamic_creator ,
253251 }
252+ if running :
253+ callback_spec ["running" ] = running
254254
255255 callback_map [callback_id ] = {
256256 "inputs" : callback_spec ["inputs" ],
@@ -289,6 +289,14 @@ def register_callback( # pylint: disable=R0914
289289
290290 long = _kwargs .get ("long" )
291291 manager = _kwargs .get ("manager" )
292+ running = _kwargs .get ("running" )
293+ if running is not None :
294+ if not isinstance (running [0 ], (list , tuple )):
295+ running = [running ]
296+ running = {
297+ "running" : {str (r [0 ]): r [1 ] for r in running },
298+ "runningOff" : {str (r [0 ]): r [2 ] for r in running },
299+ }
292300 allow_dynamic_callbacks = _kwargs .get ("_allow_dynamic_callbacks" )
293301
294302 output_indices = make_grouping_by_index (output , list (range (grouping_len (output ))))
@@ -305,6 +313,7 @@ def register_callback( # pylint: disable=R0914
305313 long = long ,
306314 manager = manager ,
307315 dynamic_creator = allow_dynamic_callbacks ,
316+ running = running ,
308317 )
309318
310319 # pylint: disable=too-many-locals
@@ -389,11 +398,6 @@ def add_context(*args, **kwargs):
389398 "job" : job ,
390399 }
391400
392- running = long .get ("running" )
393-
394- if running :
395- data ["running" ] = {str (r [0 ]): r [1 ] for r in running }
396- data ["runningOff" ] = {str (r [0 ]): r [2 ] for r in running }
397401 cancel = long .get ("cancel" )
398402 if cancel :
399403 data ["cancel" ] = cancel
0 commit comments