import gradio as gr from src.about import Tasks from src.display.formatting import styled_error, styled_message from src.display.i18n import t from src.leaderboard.store import save_submission from src.leaderboard.sync import sync_results_from_hub from src.populate import get_all_leaderboard_outputs, get_empty_leaderboard_notice_update def _submission_outputs(): sync_results_from_hub() outputs = get_all_leaderboard_outputs() return (*outputs, get_empty_leaderboard_notice_update(outputs[0])) def _keep_form(): return gr.skip(), gr.skip(), gr.skip() def _reset_form(): return "", "", None def add_zip_submission(submission_zip, model: str, team: str): if submission_zip is None: return ( styled_error(t("submit_error_no_zip")), *_submission_outputs(), *_keep_form(), ) zip_path = submission_zip if isinstance(submission_zip, str) else submission_zip.name if not zip_path: return ( styled_error(t("submit_error_read_zip")), *_submission_outputs(), *_keep_form(), ) try: from src.submission.process_zip import process_submission_zip payload, _parsed_results, missing_files, missing_benchmarks = process_submission_zip( zip_path=zip_path, model_name=model, team=team, ) except ValueError as exc: return (styled_error(str(exc)), *_submission_outputs(), *_keep_form()) except Exception: return ( styled_error(t("submit_error_process")), *_submission_outputs(), *_keep_form(), ) resolved_model = payload["model"] _saved_payload, upload_error = save_submission( resolved_model, team, payload["results"], zip_path=zip_path, ) warning = "" if missing_files: warning = ( "

" + t("warn_missing_files").format(items=", ".join(missing_files)) + "" ) if missing_benchmarks: warning += ( "

" + t("warn_missing_benchmarks").format(items=", ".join(missing_benchmarks)) + "" ) if upload_error: warning += f"

Warning: {upload_error}" benchmarks = ", ".join(task.value.col_name for task in Tasks) message = styled_message( f"{t('submit_success')}" f"
{t('submit_model')}: {resolved_model}" f"
{t('submit_benchmarks')}: {benchmarks}" f"{warning}" ) return (message, *_submission_outputs(), *_reset_form())