Spaces:
Sleeping
Sleeping
| from datetime import datetime, timezone | |
| import gradio as gr | |
| import pandas as pd | |
| from src.about import INTRODUCTION_TEXT, TITLE | |
| from src.display.css_html_js import custom_css | |
| from src.leaderboard.columns import DisplayColumns, RequiredInputColumns | |
| from src.leaderboard.input import load_csv_from_github | |
| from src.leaderboard.output import format_output_df | |
| LEADERBOARD_GITHUB_URL = "https://github.com/upgini/mle-bench/blob/main/rankings/low/tabular/overall_ranks.csv" | |
| def load_leaderboard() -> pd.DataFrame: | |
| """Download the remote leaderboard CSV from GitHub (handles Git LFS). | |
| Returns a processed DataFrame ready for display. | |
| """ | |
| df = load_csv_from_github() | |
| # Process dates | |
| df["Date"] = pd.to_datetime(df["Date"], errors="coerce").dt.strftime("%Y-%m-%d") | |
| # Sort by mean_normalized_score descending before formatting | |
| df = df.sort_values(by="mean_normalized_score", ascending=False, ignore_index=True) | |
| # Format columns for display | |
| result_df = format_output_df(df) | |
| return result_df | |
| def refresh_leaderboard(): | |
| """Fetch the leaderboard and build the status message for the UI.""" | |
| df = apply_styling(load_leaderboard()) | |
| status = ( | |
| f"Showing data from [GitHub]({LEADERBOARD_GITHUB_URL}). " | |
| f"Last refreshed: {datetime.now(timezone.utc):%Y-%m-%d %H:%M UTC}." | |
| ) | |
| return df, status | |
| def apply_styling(df: pd.DataFrame): | |
| """Apply styling to the leaderboard table.""" | |
| if df.empty: | |
| return pd.DataFrame(columns=DisplayColumns.values()) | |
| display_df = df[DisplayColumns.values()] | |
| style = ( | |
| display_df.style.background_gradient( | |
| subset=[DisplayColumns.NORMALIZED_SCORE], | |
| high=0.5, | |
| low=0.0, | |
| cmap="Greens", | |
| gmap=df[RequiredInputColumns.MEAN_NORMALIZED_SCORE], | |
| ) | |
| .background_gradient( | |
| subset=[DisplayColumns.ANY_MEDAL_SCORE], | |
| high=1.2, | |
| low=0.0, | |
| cmap="Oranges", | |
| gmap=df[RequiredInputColumns.MEAN_MEDAL_PCT], | |
| ) | |
| .format( | |
| subset=( | |
| df[RequiredInputColumns.MEAN_NORMALIZED_SCORE] == df[RequiredInputColumns.MEAN_NORMALIZED_SCORE].max(), | |
| DisplayColumns.NORMALIZED_SCORE, | |
| ), | |
| formatter=lambda x: f"**{x}**", | |
| ) | |
| ) | |
| return style | |
| def create_app(): | |
| """Create and configure the Gradio app without launching it.""" | |
| with gr.Blocks(title="Upgini MLE-Bench Leaderboard", css=custom_css) as demo: | |
| gr.HTML(TITLE) | |
| gr.Markdown(INTRODUCTION_TEXT) | |
| leaderboard_table = gr.DataFrame( | |
| value=pd.DataFrame(columns=DisplayColumns.values()), | |
| wrap=True, | |
| interactive=False, | |
| type="pandas", | |
| datatype="markdown", | |
| label="Leaderboard", | |
| elem_id="leaderboard-table", | |
| show_search="search", | |
| ) | |
| status_text = gr.Markdown() | |
| demo.load(refresh_leaderboard, outputs=[leaderboard_table, status_text]) | |
| return demo | |
| if __name__ == "__main__": | |
| demo = create_app() | |
| demo.queue(default_concurrency_limit=8).launch() | |