rework concurrency logic
Browse files
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
|
| 61 |
data_version = gr.State(0) # Track data changes
|
| 62 |
-
def
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 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()
|