Fhrozen commited on
Commit
1df4b74
·
1 Parent(s): 1a72d3c

updates for dataset

Browse files
app.py CHANGED
@@ -9,10 +9,8 @@ from espn_ldbd.display.tabs import (
9
  create_leaderboard_tab,
10
  create_submit_tab
11
  )
12
- from espn_ldbd.leaderboard.data import (
13
- LeaderboardData,
14
- LeaderboardDataset
15
- )
16
 
17
 
18
  def create_app():
 
9
  create_leaderboard_tab,
10
  create_submit_tab
11
  )
12
+ from espn_ldbd.leaderboard.data import LeaderboardData
13
+ from espn_ldbd.leaderboard.dataset import LeaderboardDataset
 
 
14
 
15
 
16
  def create_app():
espn_ldbd/display/tabs.py CHANGED
@@ -6,17 +6,11 @@ from espn_ldbd.leaderboard.data import LeaderboardData
6
  from espn_ldbd.leaderboard.dataset import LeaderboardDataset
7
 
8
 
9
- def create_leaderboard_tab(
10
- task_name: str,
11
- sub_tasks: dict,
12
- leaderboard_data: LeaderboardData,
13
- rows_per_page: int = 30
14
  ):
15
- """Create a leaderboard tab with pagination controls"""
16
-
17
  # State to track current page
18
  page_state = gr.State(value=1)
19
- selected_subtask = gr.State(value=0)
20
 
21
  with gr.Column():
22
  # Info section
@@ -46,7 +40,7 @@ def create_leaderboard_tab(
46
 
47
  # Dataframe display
48
  dataframe = gr.Dataframe(
49
- value=leaderboard_data.get_paginated_data(task_name, 1, rows_per_page)[0],
50
  interactive=False,
51
  wrap=True,
52
  column_widths=["5%", "25%", "15%", "15%", "15%", "15%", "10%"]
@@ -89,6 +83,10 @@ def create_leaderboard_tab(
89
  df, page_text, page = update_display(task_name, 1, rows)
90
  return df, page_text, page
91
 
 
 
 
 
92
  def change_rows_per_page(rows: int):
93
  """Change number of rows per page"""
94
  df, page_text, page = update_display(task_name, 1, rows)
@@ -113,6 +111,12 @@ def create_leaderboard_tab(
113
  outputs=[dataframe, page_info, page_state]
114
  )
115
 
 
 
 
 
 
 
116
  rows_dropdown.change(
117
  fn=change_rows_per_page,
118
  inputs=[rows_dropdown],
@@ -122,6 +126,54 @@ def create_leaderboard_tab(
122
  return dataframe, page_info, page_state
123
 
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  def create_submit_tab(leaderboard_ds: LeaderboardDataset):
126
 
127
  def _submit_model(model_text):
@@ -159,7 +211,6 @@ def create_submit_tab(leaderboard_ds: LeaderboardDataset):
159
  f"{message}."
160
  )
161
  return model_text
162
-
163
 
164
  with gr.Column():
165
  gr.Markdown("## Request a model here!")
 
6
  from espn_ldbd.leaderboard.dataset import LeaderboardDataset
7
 
8
 
9
+ def create_subtask_div(
10
+
 
 
 
11
  ):
 
 
12
  # State to track current page
13
  page_state = gr.State(value=1)
 
14
 
15
  with gr.Column():
16
  # Info section
 
40
 
41
  # Dataframe display
42
  dataframe = gr.Dataframe(
43
+ value=leaderboard_data.get_paginated_data([task_name, sub_tasks], 1, rows_per_page)[0],
44
  interactive=False,
45
  wrap=True,
46
  column_widths=["5%", "25%", "15%", "15%", "15%", "15%", "10%"]
 
83
  df, page_text, page = update_display(task_name, 1, rows)
84
  return df, page_text, page
85
 
86
+ def update_subtask(subtask_idx: int, rows):
87
+ df, page_text, page = update_display(task_name, 1, rows)
88
+ return df, page_text, page
89
+
90
  def change_rows_per_page(rows: int):
91
  """Change number of rows per page"""
92
  df, page_text, page = update_display(task_name, 1, rows)
 
111
  outputs=[dataframe, page_info, page_state]
112
  )
113
 
114
+ subtask_dropdown.change(
115
+ fn=update_subtask,
116
+ inputs=[subtask_dropdown, rows_dropdown],
117
+ outputs=[dataframe, page_info, page_state]
118
+ )
119
+
120
  rows_dropdown.change(
121
  fn=change_rows_per_page,
122
  inputs=[rows_dropdown],
 
126
  return dataframe, page_info, page_state
127
 
128
 
129
+ def create_leaderboard_tab(
130
+ task_name: str,
131
+ sub_tasks: dict,
132
+ leaderboard_data: LeaderboardData,
133
+ rows_per_page: int = 30
134
+ ):
135
+ """Create a leaderboard tab with pagination controls"""
136
+
137
+ with gr.Column():
138
+ # Info section
139
+ gr.Markdown(f"## {task_name} Leaderboard")
140
+ gr.Markdown(f"Showing top performing models for {task_name.lower()} task")
141
+
142
+ with gr.Row():
143
+ with gr.Column():
144
+ subtask_dropdown = gr.Dropdown(
145
+ label="Sub Tasks",
146
+ choices=[(sub_tasks[x]["sub_task_title"], x) for x in range(len(sub_tasks))],
147
+ value=0
148
+ )
149
+ with gr.Column():
150
+ pass
151
+
152
+ paginated_df, page_text, current_page = create_subtask_div(
153
+
154
+ )
155
+ # def update_display(task: str, page: int, rows: int):
156
+ # """Update the dataframe and page info"""
157
+ # paginated_df, current_page, total_pages = leaderboard_data.get_paginated_data(
158
+ # task, page, rows
159
+ # )
160
+ # page_text = f"Page {current_page} of {total_pages} ({len(leaderboard_data.get_data(task))} total entries)"
161
+ # return paginated_df, page_text, current_page
162
+
163
+ def update_subtask(subtask_idx: int):
164
+ # df, page_text, page = update_display(task_name, 1, rows)
165
+ print(subtask_idx)
166
+ return # df, page_text, page
167
+
168
+ subtask_dropdown.change(
169
+ fn=update_subtask,
170
+ inputs=[subtask_dropdown],
171
+ # outputs=[dataframe, page_info, page_state]
172
+ )
173
+
174
+ return # dataframe, page_info, page_state
175
+
176
+
177
  def create_submit_tab(leaderboard_ds: LeaderboardDataset):
178
 
179
  def _submit_model(model_text):
 
211
  f"{message}."
212
  )
213
  return model_text
 
214
 
215
  with gr.Column():
216
  gr.Markdown("## Request a model here!")
espn_ldbd/leaderboard/data.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import math
2
  from typing import Dict, Tuple
3
 
@@ -8,6 +9,9 @@ class LeaderboardData:
8
  """Class to manage leaderboard data from datasets"""
9
 
10
  def __init__(self):
 
 
 
11
  self.data_cache: Dict[str, pd.DataFrame] = {}
12
  self.current_page: Dict[str, int] = {}
13
 
@@ -90,10 +94,10 @@ class LeaderboardData:
90
  def get_data(self, task_name: str, force_reload: bool = False) -> pd.DataFrame:
91
  """Get data for a specific task, with caching"""
92
  if task_name not in self.data_cache or force_reload:
93
- self.data_cache[task_name] = self.load_data_from_dataset("espnet/leaderboard", task_name)
94
  self.current_page[task_name] = 1
95
  return self.data_cache[task_name]
96
-
97
  def get_paginated_data(self, task_name: str, page: int, rows_per_page: int = 30) -> Tuple[pd.DataFrame, int, int]:
98
  """Get paginated data for display"""
99
  df = self.get_data(task_name)
 
1
+ import os
2
  import math
3
  from typing import Dict, Tuple
4
 
 
9
  """Class to manage leaderboard data from datasets"""
10
 
11
  def __init__(self):
12
+ repo_id = os.environ.get("ESPNET_DB", None)
13
+ assert repo_id is not None
14
+ self._repo_id = repo_id
15
  self.data_cache: Dict[str, pd.DataFrame] = {}
16
  self.current_page: Dict[str, int] = {}
17
 
 
94
  def get_data(self, task_name: str, force_reload: bool = False) -> pd.DataFrame:
95
  """Get data for a specific task, with caching"""
96
  if task_name not in self.data_cache or force_reload:
97
+ self.data_cache[task_name] = self.load_data_from_dataset(self._repo_id, task_name)
98
  self.current_page[task_name] = 1
99
  return self.data_cache[task_name]
100
+
101
  def get_paginated_data(self, task_name: str, page: int, rows_per_page: int = 30) -> Tuple[pd.DataFrame, int, int]:
102
  """Get paginated data for display"""
103
  df = self.get_data(task_name)