Spaces:
Running
Running
| """ | |
| Copyright 2025 Balacoon | |
| Leaderboard tab for TTSLeaderboard. | |
| """ | |
| import gradio as gr | |
| from dataset_utils import get_system_types, get_datasets | |
| from leaderboard_data import get_leaderboard_data | |
| def create_leaderboard_tab(): | |
| with gr.Row(): | |
| gr.Markdown(""" | |
| Select system type and a dataset, to see the leaderboard. | |
| """) | |
| with gr.Row(): | |
| system_type = gr.Dropdown(choices=get_system_types(), label="System Type", value=None) | |
| dataset = gr.Dropdown(choices=[], label="Dataset", value=None) | |
| with gr.Row(): | |
| table = gr.DataFrame( | |
| value=None, | |
| row_count=0, | |
| col_count=0, | |
| ) | |
| with gr.Row(): | |
| legend = gr.Markdown(value="") | |
| def update_datasets(system_type: str): | |
| # When system type changes, clear dataset and table | |
| dataset_choices = get_datasets(system_type) if system_type else [] | |
| return [ | |
| gr.Dropdown(choices=dataset_choices, value=None), | |
| gr.DataFrame(value=None, row_count=0, col_count=0) | |
| ] | |
| def update_table(system_type: str, dataset: str): | |
| # Only populate table when both selections are made | |
| if not system_type or not dataset: | |
| return [gr.DataFrame(value=None, row_count=0), gr.Markdown("")] | |
| df, datatypes, description = get_leaderboard_data(system_type, dataset) | |
| return [ | |
| gr.DataFrame( | |
| value=df, | |
| row_count=(len(df), "fixed"), | |
| datatype=datatypes | |
| ), | |
| gr.Markdown(description) | |
| ] | |
| system_type.change( | |
| fn=update_datasets, | |
| inputs=[system_type], | |
| outputs=[dataset, table] | |
| ) | |
| dataset.change( | |
| fn=update_table, | |
| inputs=[system_type, dataset], | |
| outputs=[table, legend] | |
| ) |