idolezal commited on
Commit
ed52286
1 Parent(s): ca14598

Added the button for restart the space

Browse files
Files changed (2) hide show
  1. app.py +47 -7
  2. server.py +3 -2
app.py CHANGED
@@ -16,8 +16,10 @@ from content import (
16
  MORE_DETAILS_MARKDOWN,
17
  ABOUT_MARKDOWN,
18
  )
19
- from server import LeaderboardServer, xmlAndMarkdownEscape, xmlQuoteAttr
20
 
 
 
21
  # For testing purpose
22
  HF_DISABLE_SUBMIT = bool(int(os.environ.get("HF_DISABLE_SUBMIT", "0")))
23
  from server import HF_FAKE_TOURNAMENT
@@ -294,14 +296,30 @@ def results_dataset_integrity_check():
294
  def update_results_dataset_integrity_solving_progress():
295
  progress = leaderboard_server.tournament_results_integrity_solving_progress * 100
296
 
297
- if progress < 100:
298
- return gr.update(
 
299
  value=f"Tournament results is preparing, please wait… {progress:.0f}% done"
300
  )
 
 
 
 
 
301
  else:
302
- return gr.update(
303
- value="Tournament results is prepared, please refresh this page in your browser (e.g. by pressing F5)."
304
  )
 
 
 
 
 
 
 
 
 
 
305
 
306
  def on_tournament_results_corrupted():
307
  if leaderboard_server.tournament_results_corrupted and not leaderboard_server.tournament_results_integrity_solving:
@@ -326,6 +344,9 @@ def on_tournament_results_corrupted():
326
  results_dataset_integrity_solving_progress,
327
  )
328
 
 
 
 
329
  def on_application_load():
330
  with leaderboard_server.var_lock.ro:
331
  leaderboard = gr.update(
@@ -393,13 +414,22 @@ def gradio_app():
393
  visible=False,
394
  )
395
 
 
 
 
 
 
 
396
  results_dataset_integrity_solving_progress_timer = gr.Timer(
397
  value=60, # seconds
398
  )
399
 
400
  results_dataset_integrity_solving_progress_timer.tick(
401
  fn=update_results_dataset_integrity_solving_progress,
402
- outputs=results_dataset_integrity_solving_progress
 
 
 
403
  )
404
 
405
  results_dataset_integrity_check_btn.click(
@@ -415,6 +445,13 @@ def gradio_app():
415
  fn=results_dataset_integrity_check
416
  )
417
 
 
 
 
 
 
 
 
418
  main.load(
419
  fn=on_tournament_results_corrupted,
420
  outputs=[
@@ -423,7 +460,10 @@ def gradio_app():
423
  ]
424
  ).then(
425
  fn=update_results_dataset_integrity_solving_progress,
426
- outputs=results_dataset_integrity_solving_progress
 
 
 
427
  )
428
 
429
  return main
 
16
  MORE_DETAILS_MARKDOWN,
17
  ABOUT_MARKDOWN,
18
  )
19
+ from server import LeaderboardServer, xmlAndMarkdownEscape, xmlQuoteAttr, api
20
 
21
+ HF_SPACE_TOKEN = os.environ["HF_SPACE_TOKEN"]
22
+ HF_SPACE_ID = os.environ["HF_SPACE_ID"]
23
  # For testing purpose
24
  HF_DISABLE_SUBMIT = bool(int(os.environ.get("HF_DISABLE_SUBMIT", "0")))
25
  from server import HF_FAKE_TOURNAMENT
 
296
  def update_results_dataset_integrity_solving_progress():
297
  progress = leaderboard_server.tournament_results_integrity_solving_progress * 100
298
 
299
+
300
+ if leaderboard_server.tournament_results_corrupted:
301
+ results_dataset_integrity_solving_progress = gr.update(
302
  value=f"Tournament results is preparing, please wait… {progress:.0f}% done"
303
  )
304
+
305
+ results_dataset_integrity_restart_btn = gr.update(
306
+ interactive=False,
307
+ visible=False,
308
+ )
309
  else:
310
+ results_dataset_integrity_solving_progress = gr.update(
311
+ value="Tournament results is prepared, please restart this space with the button showed below."
312
  )
313
+
314
+ results_dataset_integrity_restart_btn = gr.update(
315
+ interactive=True,
316
+ visible=True,
317
+ )
318
+
319
+ return (
320
+ results_dataset_integrity_solving_progress,
321
+ results_dataset_integrity_restart_btn,
322
+ )
323
 
324
  def on_tournament_results_corrupted():
325
  if leaderboard_server.tournament_results_corrupted and not leaderboard_server.tournament_results_integrity_solving:
 
344
  results_dataset_integrity_solving_progress,
345
  )
346
 
347
+ def restart_space():
348
+ api.restart_space(repo_id=HF_SPACE_ID, token=HF_SPACE_TOKEN)
349
+
350
  def on_application_load():
351
  with leaderboard_server.var_lock.ro:
352
  leaderboard = gr.update(
 
414
  visible=False,
415
  )
416
 
417
+ results_dataset_integrity_restart_btn = gr.Button(
418
+ value='Restart this space',
419
+ interactive=False,
420
+ visible=False,
421
+ )
422
+
423
  results_dataset_integrity_solving_progress_timer = gr.Timer(
424
  value=60, # seconds
425
  )
426
 
427
  results_dataset_integrity_solving_progress_timer.tick(
428
  fn=update_results_dataset_integrity_solving_progress,
429
+ outputs=[
430
+ results_dataset_integrity_solving_progress,
431
+ results_dataset_integrity_restart_btn,
432
+ ]
433
  )
434
 
435
  results_dataset_integrity_check_btn.click(
 
445
  fn=results_dataset_integrity_check
446
  )
447
 
448
+ results_dataset_integrity_restart_btn.click(
449
+ fn=lambda: gr.update(interactive=False),
450
+ outputs=results_dataset_integrity_restart_btn
451
+ ).then(
452
+ fn=restart_space
453
+ )
454
+
455
  main.load(
456
  fn=on_tournament_results_corrupted,
457
  outputs=[
 
460
  ]
461
  ).then(
462
  fn=update_results_dataset_integrity_solving_progress,
463
+ outputs=[
464
+ results_dataset_integrity_solving_progress,
465
+ results_dataset_integrity_restart_btn,
466
+ ]
467
  )
468
 
469
  return main
server.py CHANGED
@@ -30,9 +30,10 @@ VISIBLE_METRICS = SUPPORTED_METRICS + ["macro_f1"]
30
 
31
  api = HfApi()
32
 
 
 
 
33
  HF_FAKE_TOURNAMENT = bool(int(os.environ.get("HF_FAKE_TOURNAMENT", "0")))
34
- HF_RESULTS_DATASET = os.environ.get("HF_RESULTS_DATASET") # <HF_RESULTS_DATASET> ::= <owner> "/" <dataset name>; e.g. CZLC/LLM_benchmark_data
35
- HF_TOKEN = os.environ.get("HF_TOKEN")
36
 
37
  TASKS_METADATA_PATH = "./tasks_metadata.json"
38
 
 
30
 
31
  api = HfApi()
32
 
33
+ HF_TOKEN = os.environ["HF_TOKEN"]
34
+ HF_RESULTS_DATASET = os.environ["HF_RESULTS_DATASET"] # <HF_RESULTS_DATASET> ::= <owner> "/" <dataset name>; e.g. CZLC/LLM_benchmark_data
35
+ # For testing purpose
36
  HF_FAKE_TOURNAMENT = bool(int(os.environ.get("HF_FAKE_TOURNAMENT", "0")))
 
 
37
 
38
  TASKS_METADATA_PATH = "./tasks_metadata.json"
39