from dataclasses import dataclass # These classes are for user facing column names, to avoid having to change them # all around the code when a modif is needed @dataclass class ColumnContent: name: str type: str def fields(raw_class): return [v for k, v in raw_class.__dict__.items() if k[:2] != "__" and k[-2:] != "__"] @dataclass(frozen=True) class AutoEvalColumn: # Auto evals column model = ColumnContent("Model", "markdown") ap = ColumnContent("AP", "str") ap50 = ColumnContent("AP@.50", "number") ap75 = ColumnContent("AP@.75 ⬆️", "number") ap_small = ColumnContent("APₛ", "number") ap_medium = ColumnContent("APₘ", "number") ap_large = ColumnContent("APₗ", "number") ar_1 = ColumnContent("AR₁", "number") ar_10 = ColumnContent("AR₁₀", "number") ar_100 = ColumnContent("AR₁₀₀", "number") ar_small = ColumnContent("ARₛ", "number") ar_medium = ColumnContent("ARₘ", "number") ar_large = ColumnContent("ARₗ", "number") def make_clickable_model(model_name): link = f"https://huggingface.co/{model_name}" return f'{model_name}' def styled_error(error): return f"

{error}

" def styled_warning(warn): return f"

{warn}

" def styled_message(message): return f"

{message}

"