Spaces:
Running
Running
Fix issue with stop if queued
Browse files
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 |
-
)
|
|
|
|
| 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 |
-
)
|
|
|
|
| 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(
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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,
|