Spaces:
Sleeping
Sleeping
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, | |
) |