Spaces:
Running
Running
Table with tasks abbreviations and names
Browse files
app.py
CHANGED
|
@@ -15,7 +15,7 @@ from content import (
|
|
| 15 |
RANKING_AFTER_SUBMISSION_MARKDOWN,
|
| 16 |
MORE_DETAILS_MARKDOWN,
|
| 17 |
)
|
| 18 |
-
from server import LeaderboardServer
|
| 19 |
|
| 20 |
leaderboard_server = LeaderboardServer()
|
| 21 |
|
|
@@ -144,10 +144,39 @@ def fetch_model_detail(submission_id):
|
|
| 144 |
)
|
| 145 |
|
| 146 |
def change_leaderboard_category(category):
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 151 |
)
|
| 152 |
|
| 153 |
def show_modal():
|
|
@@ -258,10 +287,13 @@ with gr.Blocks(theme=gr.themes.Soft(text_size=text_md), css=custom_css) as main:
|
|
| 258 |
elem_classes="leaderboard-table",
|
| 259 |
)
|
| 260 |
|
|
|
|
|
|
|
|
|
|
| 261 |
category_of_tasks.change(
|
| 262 |
fn=change_leaderboard_category,
|
| 263 |
inputs=category_of_tasks,
|
| 264 |
-
outputs=results_table,
|
| 265 |
)
|
| 266 |
|
| 267 |
with gr.TabItem('Model details'):
|
|
|
|
| 15 |
RANKING_AFTER_SUBMISSION_MARKDOWN,
|
| 16 |
MORE_DETAILS_MARKDOWN,
|
| 17 |
)
|
| 18 |
+
from server import LeaderboardServer, xmlEscape, MARKDOWN_SPECIAL_CHARACTERS
|
| 19 |
|
| 20 |
leaderboard_server = LeaderboardServer()
|
| 21 |
|
|
|
|
| 144 |
)
|
| 145 |
|
| 146 |
def change_leaderboard_category(category):
|
| 147 |
+
if category == leaderboard_server.TASKS_CATEGORY_OVERALL:
|
| 148 |
+
task_abbreviation_legend = ""
|
| 149 |
+
else:
|
| 150 |
+
task_abbreviation_legend_head = [
|
| 151 |
+
"| task abbreviation | task name |",
|
| 152 |
+
"| --- | --- |",
|
| 153 |
+
]
|
| 154 |
+
task_abbreviation_legend_body = []
|
| 155 |
+
task_abbreviation_legend_tail = [
|
| 156 |
+
"",
|
| 157 |
+
]
|
| 158 |
+
abbreviation2name = leaderboard_server.CATEGORY_TO_TASK_ABBREVIATION_TO_NAME[category]
|
| 159 |
+
for abbr, name in abbreviation2name.items():
|
| 160 |
+
abbr_escaped = xmlEscape(abbr, MARKDOWN_SPECIAL_CHARACTERS)
|
| 161 |
+
name_escaped = xmlEscape(abbr, MARKDOWN_SPECIAL_CHARACTERS)
|
| 162 |
+
task_abbreviation_legend_body.append(f"| {abbr_escaped} | {name_escaped} |")
|
| 163 |
+
|
| 164 |
+
task_abbreviation_legend = (
|
| 165 |
+
task_abbreviation_legend_head
|
| 166 |
+
+ task_abbreviation_legend_body
|
| 167 |
+
+ task_abbreviation_legend_tail
|
| 168 |
+
)
|
| 169 |
+
task_abbreviation_legend = "\n".join(task_abbreviation_legend)
|
| 170 |
+
|
| 171 |
+
return (
|
| 172 |
+
gr.update(
|
| 173 |
+
value=leaderboard_server.get_leaderboard(category=category),
|
| 174 |
+
visible=True,
|
| 175 |
+
datatype="markdown",
|
| 176 |
+
),
|
| 177 |
+
gr.update(
|
| 178 |
+
value=task_abbreviation_legend,
|
| 179 |
+
),
|
| 180 |
)
|
| 181 |
|
| 182 |
def show_modal():
|
|
|
|
| 287 |
elem_classes="leaderboard-table",
|
| 288 |
)
|
| 289 |
|
| 290 |
+
with gr.Row():
|
| 291 |
+
results_table_legend = gr.Markdown()
|
| 292 |
+
|
| 293 |
category_of_tasks.change(
|
| 294 |
fn=change_leaderboard_category,
|
| 295 |
inputs=category_of_tasks,
|
| 296 |
+
outputs=[results_table, results_table_legend],
|
| 297 |
)
|
| 298 |
|
| 299 |
with gr.TabItem('Model details'):
|
server.py
CHANGED
|
@@ -155,6 +155,7 @@ class LeaderboardServer:
|
|
| 155 |
self.TASKS_METADATA = json.load(open(TASKS_METADATA_PATH))
|
| 156 |
self.TASKS_CATEGORIES = {self.TASKS_METADATA[task]["category"] for task in self.TASKS_METADATA}
|
| 157 |
self.TASKS_CATEGORY_OVERALL = "Overall"
|
|
|
|
| 158 |
|
| 159 |
self.var_lock = ReadWriteLock()
|
| 160 |
self.submission_ids = set()
|
|
@@ -185,6 +186,21 @@ class LeaderboardServer:
|
|
| 185 |
results = json.load(ranks_file)
|
| 186 |
return results
|
| 187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 188 |
def fetch_existing_models(self):
|
| 189 |
# Models data
|
| 190 |
for submission_file in glob.glob(os.path.join(self.local_leaderboard, "data") + "/*.json"):
|
|
|
|
| 155 |
self.TASKS_METADATA = json.load(open(TASKS_METADATA_PATH))
|
| 156 |
self.TASKS_CATEGORIES = {self.TASKS_METADATA[task]["category"] for task in self.TASKS_METADATA}
|
| 157 |
self.TASKS_CATEGORY_OVERALL = "Overall"
|
| 158 |
+
self.CATEGORY_TO_TASK_ABBREVIATION_TO_NAME = self._prepare_category_to_task_abbr_to_name()
|
| 159 |
|
| 160 |
self.var_lock = ReadWriteLock()
|
| 161 |
self.submission_ids = set()
|
|
|
|
| 186 |
results = json.load(ranks_file)
|
| 187 |
return results
|
| 188 |
|
| 189 |
+
def _prepare_category_to_task_abbr_to_name(self):
|
| 190 |
+
tasks_per_category = {}
|
| 191 |
+
for task in self.TASKS_METADATA:
|
| 192 |
+
task_category = self.TASKS_METADATA[task]["category"]
|
| 193 |
+
tasks_per_category.setdefault(task_category, list()).append(task)
|
| 194 |
+
|
| 195 |
+
category2abbreviation2name = {}
|
| 196 |
+
for category, tasks in tasks_per_category.items():
|
| 197 |
+
abbreviation2name = {self.TASKS_METADATA[t]["abbreviation"]: self.TASKS_METADATA[t]["name"] for t in tasks}
|
| 198 |
+
sorted_abbreviation2name = dict.fromkeys(sorted(abbreviation2name.keys()))
|
| 199 |
+
sorted_abbreviation2name.update(sorted_abbreviation2name)
|
| 200 |
+
category2abbreviation2name[category] = sorted_abbreviation2name
|
| 201 |
+
|
| 202 |
+
return category2abbreviation2name
|
| 203 |
+
|
| 204 |
def fetch_existing_models(self):
|
| 205 |
# Models data
|
| 206 |
for submission_file in glob.glob(os.path.join(self.local_leaderboard, "data") + "/*.json"):
|