Spaces:
Running
Running
A newer version of the Gradio SDK is available: 6.20.0
AGENTS.md
Guidance for AI coding agents working in this repository.
What this repo is
Frontend code for the TabArena leaderboard, deployed as a Gradio app on a Hugging Face Space. The leaderboard ranks tabular ML models across tasks, splits, and dataset subsets.
- Entrypoint:
main.py(Gradio app; HF Space runs it via theapp_filedeclared inREADME.mdfrontmatter). - UI text and copy:
website_texts.py. - Static constants (e.g. model-type emoji map):
constants.py. - Precomputed artifacts (CSVs + zipped PNGs):
data/imputation_{no,yes}/splits_{...}/tasks_{...}/datasets_{...}/. - Python: requires 3.12+. Dependencies pinned via
pyproject.toml.
Local dev
pip install -e ".[dev]" # or: uv pip install -r pyproject.toml
python main.py # launches the Gradio app
Data pipeline (not regenerated in this repo)
Leaderboard data is produced upstream and dropped into data/:
- Run
run_generate_website_artifacts.pyin the autogluon/tabarena repo. - Clear the local
data/directory. - Unzip
clean_website_artifacts.zipintodata/.
Do not edit files under data/ by hand — they are generated artifacts.
Architecture notes
LBMatrix(inmain.py) enumerates the leaderboard variants along four axes:imputation,splits,tasks,datasets. The first element of each list is the default selection for that axis — changing list order changes both the default tab and the rendering order.LBContainerloadswebsite_leaderboard.csvand lazily unzips the per-view PNGs fromdata/....- The reactive Gradio render is driven by four
gr.Statevalues, one per axis; selecting a tab updates the corresponding state and triggersrender_details.
Conventions
- Keep changes minimal — this is a small display app, not a framework. Avoid speculative abstraction.
- Don't add comments that just describe what code does; the file is short enough to read.
- User-facing copy lives in
website_texts.py. Update it there, not inline. - Version bumps: edit
versioninpyproject.tomland the matching changelog entry inwebsite_texts.py(VERSION_HISTORY_BUTTON_TEXT).
Things to verify before reporting a UI change as done
- Launch
python main.pyand click through the affected tabs in a browser. - Type checks and unit tests aren't meaningful here (none configured) — manual verification is the bar.