hmacdope commited on
Commit
340cf4d
·
1 Parent(s): 34fc9d0

rework concurrency logic

Browse files
Files changed (1) hide show
  1. app.py +24 -11
app.py CHANGED
@@ -14,6 +14,8 @@ from datasets import load_dataset
14
  import tempfile
15
  from loguru import logger
16
  from about import ENDPOINTS, LB_COLS, LB_AVG, LB_DTYPES
 
 
17
 
18
 
19
 
@@ -53,20 +55,33 @@ def build_leaderboard(df_results):
53
  # Initialize global dataframe
54
  current_df = fetch_dataset_df()
55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  def gradio_interface():
57
 
58
  with gr.Blocks(title="OpenADMET ADMET Challenge", fill_height=False,
59
  theme=gr.themes.Default(text_size=sizes.text_lg)) as demo:
60
- timer = gr.Timer(30) # Run every 30 seconds when page is focused
61
  data_version = gr.State(0) # Track data changes
62
- def update_current_dataframe(v):
63
- global current_df
64
- new_df = fetch_dataset_df()
65
- if not current_df.equals(new_df):
66
- current_df = new_df
67
- return v + 1
68
- return v
69
- timer.tick(fn=update_current_dataframe, inputs=[data_version], outputs=data_version)
70
 
71
  ### Header
72
  with gr.Row():
@@ -247,8 +262,6 @@ def gradio_interface():
247
  gr.Markdown("""
248
  View the leaderboard for each ADMET endpoint by selecting the appropiate tab.
249
 
250
- **THE RESULTS ON THE LEADERBOARD ARE CURRENTLY PLACEHOLDERS AND DO NOT REPRESENT ACTUAL SUBMISSIONS.**
251
- Actual results will be available once the challenge is open.
252
  """)
253
  # Make separate leaderboards in separate tabs
254
  #per_ep = build_leaderboard()
 
14
  import tempfile
15
  from loguru import logger
16
  from about import ENDPOINTS, LB_COLS, LB_AVG, LB_DTYPES
17
+ import time
18
+ import threading
19
 
20
 
21
 
 
55
  # Initialize global dataframe
56
  current_df = fetch_dataset_df()
57
 
58
+ # Initialize global counter
59
+ data_version_counter = 0
60
+
61
+
62
+
63
+ def update_current_dataframe():
64
+ global current_df # ugly but works
65
+ while True:
66
+ logger.info("Fetching latest dataset for leaderboard...")
67
+ current_df = fetch_dataset_df()
68
+ logger.debug(f"Dataset version updated")
69
+ time.sleep(30) # Check for updates every 30 seconds
70
+
71
+ threading.Thread(target=update_current_dataframe, daemon=True).start()
72
+
73
+
74
+
75
  def gradio_interface():
76
 
77
  with gr.Blocks(title="OpenADMET ADMET Challenge", fill_height=False,
78
  theme=gr.themes.Default(text_size=sizes.text_lg)) as demo:
79
+ timer = gr.Timer(30) # Run every 30 seconds
80
  data_version = gr.State(0) # Track data changes
81
+ def increment_data_version(current_version):
82
+ return current_version + 1
83
+
84
+ timer.tick(fn=increment_data_version, inputs=[data_version], outputs=data_version)
 
 
 
 
85
 
86
  ### Header
87
  with gr.Row():
 
262
  gr.Markdown("""
263
  View the leaderboard for each ADMET endpoint by selecting the appropiate tab.
264
 
 
 
265
  """)
266
  # Make separate leaderboards in separate tabs
267
  #per_ep = build_leaderboard()