ARFBench / src /populate.py
sxie78-dd's picture
update leaderboard results
3a013b1 unverified
import pandas as pd
from src.display.formatting import make_clickable_model
def _normalize_columns(df: pd.DataFrame) -> pd.DataFrame:
rename_map = {
"model type": "model_type",
"overall f1": "overall_f1",
"overall accuracy": "overall_accuracy",
"accuracy": "accuracy",
"tier i": "tier_i_f1",
"tier ii": "tier_ii_f1",
"tier iii": "tier_iii_f1",
"tier i accuracy": "tier_i_accuracy",
"tier ii accuracy": "tier_ii_accuracy",
"tier iii accuracy": "tier_iii_accuracy",
"start time": "start_time",
"end time": "end_time",
}
normalized = {}
for col in df.columns:
cleaned = col.strip().lower()
normalized[col] = rename_map.get(cleaned, cleaned.replace(" ", "_"))
return df.rename(columns=normalized)
def get_leaderboard_df(
results_path: str,
_requests_path: str,
_cols: list,
_benchmark_cols: list,
sort_by: str = "overall_f1",
) -> pd.DataFrame:
"""Creates a dataframe from a static CSV leaderboard file."""
df = pd.read_csv(results_path)
df = _normalize_columns(df)
if "model" in df.columns:
df["model"] = df["model"].apply(make_clickable_model)
if sort_by in df.columns:
df = df.sort_values(by=[sort_by], ascending=False)
return df
def get_evaluation_queue_df(save_path: str, cols: list) -> list[pd.DataFrame]:
"""Creates empty dataframes for evaluation queues since we're using
static data"""
# Return empty dataframes for the queue system
empty_df = pd.DataFrame(columns=cols)
return empty_df, empty_df, empty_df