bebechien commited on
Commit
4a1ace6
·
verified ·
1 Parent(s): 88fd2e2

Fix issue with stop if queued

Browse files
Files changed (1) hide show
  1. ui.py +11 -5
ui.py CHANGED
@@ -274,7 +274,7 @@ def build_interface() -> gr.Blocks:
274
  # 3. Training & Eval Tab
275
 
276
  # 3a. Training
277
- run_btn.click(
278
  fn=lambda: (
279
  gr.update(visible=False),
280
  gr.update(interactive=False), # Lock Reload
@@ -283,7 +283,8 @@ def build_interface() -> gr.Blocks:
283
  gr.update(visible=True) # Show Stop
284
  ),
285
  outputs=[run_btn, reload_btn, eval_btn, zip_btn, stop_btn]
286
- ).then(
 
287
  fn=UIController.run_training,
288
  inputs=[engine_state, *train_ui["params"]],
289
  outputs=train_ui["outputs"],
@@ -303,7 +304,7 @@ def build_interface() -> gr.Blocks:
303
  )
304
 
305
  # 3b. Evaluation
306
- eval_btn.click(
307
  fn=lambda: (
308
  gr.update(interactive=False), # Lock Run
309
  gr.update(interactive=False), # Lock Reload
@@ -311,7 +312,8 @@ def build_interface() -> gr.Blocks:
311
  gr.update(visible=True) # Show Stop
312
  ),
313
  outputs=[run_btn, reload_btn, eval_btn, stop_btn]
314
- ).then(
 
315
  fn=UIController.run_evaluation,
316
  inputs=[engine_state, *train_ui["eval_params"]],
317
  outputs=[train_ui["outputs"][0]] # Output only to log, not plot
@@ -325,7 +327,11 @@ def build_interface() -> gr.Blocks:
325
  outputs=[run_btn, reload_btn, eval_btn, stop_btn]
326
  )
327
 
328
- stop_btn.click(fn=UIController.stop_process, inputs=[engine_state])
 
 
 
 
329
 
330
  reload_btn.click(lock_ui, outputs=action_buttons + [push_btn, zip_btn]).then(
331
  fn=UIController.handle_reset,
 
274
  # 3. Training & Eval Tab
275
 
276
  # 3a. Training
277
+ train_run_event = run_btn.click(
278
  fn=lambda: (
279
  gr.update(visible=False),
280
  gr.update(interactive=False), # Lock Reload
 
283
  gr.update(visible=True) # Show Stop
284
  ),
285
  outputs=[run_btn, reload_btn, eval_btn, zip_btn, stop_btn]
286
+ )
287
+ train_run_event = train_run_event.then(
288
  fn=UIController.run_training,
289
  inputs=[engine_state, *train_ui["params"]],
290
  outputs=train_ui["outputs"],
 
304
  )
305
 
306
  # 3b. Evaluation
307
+ eval_run_event = eval_btn.click(
308
  fn=lambda: (
309
  gr.update(interactive=False), # Lock Run
310
  gr.update(interactive=False), # Lock Reload
 
312
  gr.update(visible=True) # Show Stop
313
  ),
314
  outputs=[run_btn, reload_btn, eval_btn, stop_btn]
315
+ )
316
+ eval_run_event = eval_run_event.then(
317
  fn=UIController.run_evaluation,
318
  inputs=[engine_state, *train_ui["eval_params"]],
319
  outputs=[train_ui["outputs"][0]] # Output only to log, not plot
 
327
  outputs=[run_btn, reload_btn, eval_btn, stop_btn]
328
  )
329
 
330
+ stop_btn.click(
331
+ fn=UIController.stop_process,
332
+ inputs=[engine_state],
333
+ cancels=[train_run_event, eval_run_event]
334
+ )
335
 
336
  reload_btn.click(lock_ui, outputs=action_buttons + [push_btn, zip_btn]).then(
337
  fn=UIController.handle_reset,