omnisealbench_mduppes / src /mk_leaderboard.py
alexmourachko
Initial commit
57f7624
import pandas as pd
from pathlib import Path
from gradio_leaderboard_group import Leaderboard, SelectColumns
import typing as tp
import collections
def mk_leaderboard(
csv_file: Path,
default_selection: tp.List[str],
core_columns: tp.List[str],
filter_columns: tp.List[str],
search_columns: tp.List[str],
categories: tp.Dict[str, str] = {},
):
df = pd.read_csv(csv_file)
groups = collections.OrderedDict({'Overall':[]})
for k in categories.values():
groups[k] = []
default_selection = []
for k, v in categories.items():
if v not in default_selection:
for k in list(df.columns):
if k.startswith(v):
groups['Overall'].append(k)
default_selection.append(k)
for col in list(df.columns):
for k in categories.keys():
if col.startswith(k):
cat = categories[k]
groups[cat].append(col)
break
Leaderboard(
value=df,
select_columns=SelectColumns(
default_selection=core_columns+default_selection,
cant_deselect=core_columns,
label="Select Columns to Display:",
groups=groups,
),
search_columns=search_columns,
hide_columns=[],
filter_columns=filter_columns,
)