Spaces:
Running
Running
import gradio as gr | |
import pandas as pd | |
from constants import * | |
def get_data(verified, dataset, ipc, label_type): | |
data = pd.read_csv("data.csv") | |
data["verified"] = data["verified"].apply(lambda x: bool(x)) | |
data["dataset"] = data["dataset"].apply(lambda x: DATASET_LIST[x]) | |
data["ipc"] = data["ipc"].apply(lambda x: IPC_LIST[x]) | |
data["label_type"] = data["label_type"].apply(lambda x: LABEL_TYPE_LIST[x]) | |
if verified: | |
data = data[data["verified"] == verified] | |
data = data[data["dataset"] == dataset] | |
data = data[data["ipc"] == ipc] | |
data = data[data["label_type"] == label_type] | |
data = data.sort_values(by="score", ascending=False) | |
# formatting | |
data["method"] = "[" + data["method"] + "](" + data["method_reference"] + ")" | |
data["verified"] = data["verified"].apply(lambda x: "✅" if x else "") | |
data = data.drop(columns=["method_reference", "dataset", "ipc", "label_type"]) | |
if label_type == "Hard Label": | |
data = data.rename(columns={"method": "Method", "date": "Date", "recovery": "Hard Recovery", "improvement": "Hard Improvement", "score": "Score", "verified": "Verified"}) | |
else: | |
data = data.rename(columns={"method": "Method", "date": "Date", "recovery": "Hard Recovery", "improvement": "Soft Improvement", "score": "Score", "verified": "Verified"}) | |
return data | |
with gr.Blocks() as leaderboard: | |
gr.Markdown(LEADERBOARD_INTRODUCTION) | |
verified = gr.Checkbox( | |
label="Verified by DD-Ranking Team (Uncheck to view all submissions)", | |
value=True, | |
interactive=True | |
) | |
dataset = gr.Radio( | |
label="Dataset", | |
choices=DATASET_LIST, | |
value=DATASET_LIST[0], | |
interactive=True, | |
) | |
ipc = gr.Radio( | |
label="IPC", | |
choices=IPC_LIST, | |
value=IPC_LIST[0], | |
interactive=True, | |
info=IPC_INFO | |
) | |
label = gr.Radio( | |
label="Label Type", | |
choices=LABEL_TYPE_LIST, | |
value=LABEL_TYPE_LIST[0], | |
interactive=True, | |
info=LABEL_TYPE_INFO | |
) | |
board = gr.components.Dataframe( | |
value=get_data(verified.value, dataset.value, ipc.value, label.value), | |
headers=COLUMN_NAMES, | |
type="pandas", | |
datatype=DATA_TITLE_TYPE, | |
interactive=False, | |
visible=True, | |
max_height=500, | |
) | |
for component in [verified, dataset, ipc, label]: | |
component.change(fn=lambda v, d, i, l: gr.components.Dataframe( | |
value=get_data(v, d, i, l), | |
headers=COLUMN_NAMES, | |
type="pandas", | |
datatype=DATA_TITLE_TYPE, | |
interactive=False, | |
visible=True, | |
max_height=500, | |
), inputs=[verified, dataset, ipc, label], outputs=board) | |
citation_button = gr.Textbox( | |
value=CITATION_BUTTON_TEXT, | |
label=CITATION_BUTTON_LABEL, | |
elem_id="citation-button", | |
lines=6, | |
show_copy_button=True, | |
) | |
leaderboard.launch() | |