leadpde / app.py
napoles3d's picture
Update app.py
8fe2dca verified
import gradio as gr
import pandas as pd
from about import ABOUT_TEXT, INTRO_TEXT, SUBMISSION_TEXT, TITLE
from utils import load_results_dataframe, submit_zip
EMPTY_COLUMNS = [
"rank",
"model_name",
"team_name",
"avg_vrmse",
"density_vrmse",
"pressure_vrmse",
"velocity_x_vrmse",
"velocity_y_vrmse",
"submitted_at",
"status",
]
def refresh_leaderboard():
try:
df = load_results_dataframe()
if df is None or not isinstance(df, pd.DataFrame):
df = pd.DataFrame(columns=EMPTY_COLUMNS)
return df, "Leaderboard loaded."
except Exception as exc:
return pd.DataFrame(columns=EMPTY_COLUMNS), f"Error loading leaderboard: {exc}"
def handle_submit(zip_file):
try:
return submit_zip(zip_file)
except Exception as exc:
return f"Submission failed: {exc}"
with gr.Blocks(title="The Well Leaderboard MVP") as demo:
gr.Markdown(TITLE)
gr.Markdown(INTRO_TEXT)
with gr.Tab("Leaderboard"):
leaderboard_status = gr.Markdown("Loading leaderboard...")
leaderboard = gr.Dataframe(
headers=EMPTY_COLUMNS,
value=pd.DataFrame(columns=EMPTY_COLUMNS),
label="Ranked results",
wrap=True,
interactive=False,
)
refresh_button = gr.Button("Refresh leaderboard")
refresh_button.click(
fn=refresh_leaderboard,
outputs=[leaderboard, leaderboard_status],
api_name=False,
)
with gr.Tab("Submit"):
gr.Markdown(SUBMISSION_TEXT)
zip_file = gr.File(
label="Submission zip",
file_count="single",
file_types=[".zip"],
)
submit_button = gr.Button("Submit")
submission_status = gr.Markdown()
submit_button.click(
fn=handle_submit,
inputs=zip_file,
outputs=submission_status,
api_name=False,
)
with gr.Tab("About"):
gr.Markdown(ABOUT_TEXT)
demo.load(
fn=refresh_leaderboard,
outputs=[leaderboard, leaderboard_status],
api_name=False,
)
demo.launch()