Spaces:
Running
Running
File size: 1,387 Bytes
57f7624 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
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,
) |