Spaces:
Running
Running
| def make_clickable_model(model_name, link=None): | |
| if link: | |
| return f'<a target="_blank" href="{link}" style="color: var(--link-text-color); text-decoration: underline; text-decoration-style: dotted;">{model_name}</a>' | |
| return model_name | |
| def format_score(value, decimals=2): | |
| if value is None: | |
| return "--" | |
| return f"{value:.{decimals}f}" | |
| def format_percentage(value, decimals=1, colored=True, inverted=False): | |
| if value is None: | |
| return "--" | |
| pct = f"{value:.{decimals}f}%" | |
| if not colored: | |
| return pct | |
| if inverted: | |
| # lower is better (e.g. Bias, Hallucination) | |
| if value <= 5: | |
| color = "#4ade80" | |
| elif value <= 15: | |
| color = "#fbbf24" | |
| else: | |
| color = "#f87171" | |
| else: | |
| if value >= 75: | |
| color = "#4ade80" | |
| elif value >= 60: | |
| color = "#fbbf24" | |
| else: | |
| color = "#f87171" | |
| return f'<span style="color:{color};font-weight:600;">{pct}</span>' | |
| def format_overall(value, decimals=1): | |
| if value is None: | |
| return "--" | |
| pct = f"{value:.{decimals}f}%" | |
| return f'<span class="overall-score">{pct}</span>' | |
| def format_type_badge(type_str): | |
| if type_str == "Open": | |
| return '<span class="badge badge-open">Open</span>' | |
| elif type_str == "Closed": | |
| return '<span class="badge badge-closed">Closed</span>' | |
| return type_str | |
| # retained for backward compatibility with src/submission and src/populate | |
| def model_hyperlink(link, model_name): | |
| return f'<a target="_blank" href="{link}" style="color: var(--link-text-color); text-decoration: underline;text-decoration-style: dotted;">{model_name}</a>' | |
| def styled_error(error): | |
| return f"<p style='color: red; font-size: 20px; text-align: center;'>{error}</p>" | |
| def styled_warning(warn): | |
| return f"<p style='color: orange; font-size: 20px; text-align: center;'>{warn}</p>" | |
| def styled_message(message): | |
| return f"<p style='color: green; font-size: 20px; text-align: center;'>{message}</p>" | |
| def has_no_nan_values(df, columns): | |
| return df[columns].notna().all(axis=1) | |
| def has_nan_values(df, columns): | |
| return df[columns].isna().any(axis=1) | |