EASI-Leaderboard / src /display /formatting.py
yangzhitao
refactor: simplify MODEL_HYPERLINK_TEMPLATE construction by removing unnecessary dedent and splitlines
79bb0de
import typing
if typing.TYPE_CHECKING:
import pandas as pd
# This should be one line, but written in multiple lines for readability
MODEL_HYPERLINK_TEMPLATE = " ".join([
line.strip()
for line in """
<a
target="_blank"
href="{link}"
style="color: var(--link-text-color); text-decoration: underline; text-decoration-style: dotted;"
>
{model_name}
</a>
""".strip().splitlines()
if line.strip()
])
def model_hyperlink(link: str, model_name: str) -> str:
return MODEL_HYPERLINK_TEMPLATE.format(link=link, model_name=model_name)
def make_clickable_model(model_name: str, link: str | None = None) -> str:
org, _, model = model_name.rpartition("/")
if not link:
if not org:
# Not a full model name, cannot be clicked
return model_name
link = f"https://huggingface.co/{org}/{model}"
return model_hyperlink(link, model_name)
def styled_error(error: str) -> str:
return f"<p style='color: red; font-size: 20px; text-align: center;'>{error}</p>"
def styled_warning(warn: str) -> str:
return f"<p style='color: orange; font-size: 20px; text-align: center;'>{warn}</p>"
def styled_message(message: str) -> str:
return f"<p style='color: green; font-size: 20px; text-align: center;'>{message}</p>"
def has_no_nan_values(df: "pd.DataFrame", columns: list[str]) -> "pd.Series":
return df.loc[:, columns].notna().any(axis=1)
def has_nan_values(df: "pd.DataFrame", columns: list[str]) -> "pd.Series":
return df.loc[:, columns].isna().any(axis=1)