Spaces:
Sleeping
Sleeping
updates for dataset
Browse files- app.py +2 -4
- espn_ldbd/display/tabs.py +61 -10
- espn_ldbd/leaderboard/data.py +6 -2
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 |
-
|
| 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
|
| 10 |
-
|
| 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(
|
| 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)
|