DD-Ranking / app.py
Soptq's picture
Upload 2 files
0b1b527 verified
raw
history blame
2.98 kB
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()