loodvanniekerkginkgo commited on
Commit
c4f1261
·
1 Parent(s): 6fd7518

Adding more debugging to figure out the state issues

Browse files
Files changed (2) hide show
  1. app.py +8 -8
  2. utils.py +9 -0
app.py CHANGED
@@ -1,6 +1,4 @@
1
- from datetime import datetime
2
  import pandas as pd
3
-
4
  import gradio as gr
5
  from gradio.themes.utils import sizes
6
  from gradio_leaderboard import Leaderboard
@@ -18,7 +16,7 @@ from constants import (
18
  SUBMIT_TAB_NAME,
19
  )
20
  from submit import make_submission
21
- from utils import fetch_hf_results, show_output_box
22
 
23
 
24
  def format_leaderboard_table(df_results: pd.DataFrame, assay: str | None = None):
@@ -67,6 +65,10 @@ def get_leaderboard_object(assay: str | None = None):
67
  # Initialize global dataframe
68
  current_dataframe = fetch_hf_results()
69
 
 
 
 
 
70
  # Make font size bigger using gradio theme
71
  with gr.Blocks(theme=gr.themes.Default(text_size=sizes.text_lg)) as demo:
72
  timer = gr.Timer(3) # Run every 3 seconds when page is focused
@@ -78,8 +80,7 @@ with gr.Blocks(theme=gr.themes.Default(text_size=sizes.text_lg)) as demo:
78
 
79
  # Check if data has actually changed
80
  if not current_dataframe.equals(new_dataframe):
81
- time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
82
- print(f"TMP Dataframe has changed at {time}")
83
  current_dataframe = new_dataframe
84
  return data_version.value + 1 # Increment version to trigger updates
85
  return data_version.value
@@ -153,8 +154,7 @@ with gr.Blocks(theme=gr.themes.Default(text_size=sizes.text_lg)) as demo:
153
  lb = get_leaderboard_object()
154
 
155
  def refresh_overall_leaderboard():
156
- time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
157
- print(f"TMP Refreshing overall leaderboard at {time}")
158
  return format_leaderboard_table(df_results=current_dataframe)
159
 
160
  # Refresh when data version changes
@@ -288,4 +288,4 @@ with gr.Blocks(theme=gr.themes.Default(text_size=sizes.text_lg)) as demo:
288
  )
289
 
290
  if __name__ == "__main__":
291
- demo.launch(ssr_mode=False)
 
 
1
  import pandas as pd
 
2
  import gradio as gr
3
  from gradio.themes.utils import sizes
4
  from gradio_leaderboard import Leaderboard
 
16
  SUBMIT_TAB_NAME,
17
  )
18
  from submit import make_submission
19
+ from utils import fetch_hf_results, show_output_box, get_time
20
 
21
 
22
  def format_leaderboard_table(df_results: pd.DataFrame, assay: str | None = None):
 
65
  # Initialize global dataframe
66
  current_dataframe = fetch_hf_results()
67
 
68
+ # Lood: Two problems currently:
69
+ # 1. The data_version state value isn't being incremented, it seems (even though it's triggering the dataframe change correctly)
70
+ # 2. The global current_dataframe is being shared across all sessions
71
+
72
  # Make font size bigger using gradio theme
73
  with gr.Blocks(theme=gr.themes.Default(text_size=sizes.text_lg)) as demo:
74
  timer = gr.Timer(3) # Run every 3 seconds when page is focused
 
80
 
81
  # Check if data has actually changed
82
  if not current_dataframe.equals(new_dataframe):
83
+ print(f"TMP Dataframe has changed at {get_time()}. New value will be {data_version.value + 1}")
 
84
  current_dataframe = new_dataframe
85
  return data_version.value + 1 # Increment version to trigger updates
86
  return data_version.value
 
154
  lb = get_leaderboard_object()
155
 
156
  def refresh_overall_leaderboard():
157
+ print(f"TMP Refreshing overall leaderboard at {get_time()}. Data version: {data_version.value}")
 
158
  return format_leaderboard_table(df_results=current_dataframe)
159
 
160
  # Refresh when data version changes
 
288
  )
289
 
290
  if __name__ == "__main__":
291
+ demo.launch(ssr_mode=False, share=True)
utils.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import pandas as pd
2
  from datasets import load_dataset
3
  import gradio as gr
@@ -8,6 +9,14 @@ from constants import RESULTS_REPO, ASSAY_RENAME, LEADERBOARD_RESULTS_COLUMNS, B
8
  pd.set_option("display.max_columns", None)
9
 
10
 
 
 
 
 
 
 
 
 
11
  def show_output_box(message):
12
  return gr.update(value=message, visible=True)
13
 
 
1
+ from datetime import datetime, timezone, timedelta
2
  import pandas as pd
3
  from datasets import load_dataset
4
  import gradio as gr
 
9
  pd.set_option("display.max_columns", None)
10
 
11
 
12
+ def get_time(tz_name="EST") -> str:
13
+ offsets = {"EST": -5, "UTC": 0}
14
+ if tz_name not in offsets:
15
+ print("Invalid timezone, using EST")
16
+ tz_name = "EST"
17
+ offset = offsets[tz_name]
18
+ return datetime.now(timezone(timedelta(hours=offset))).strftime("%Y-%m-%d %H:%M:%S") + f" ({tz_name})"
19
+
20
  def show_output_box(message):
21
  return gr.update(value=message, visible=True)
22