Spaces:
Running
Running
File size: 3,357 Bytes
eae65f4 0380c4f 5f85cf4 a44fe3a c8acb1e eae65f4 0380c4f a44fe3a 0380c4f a44fe3a 0380c4f a44fe3a 0380c4f a44fe3a 0380c4f 5f85cf4 0380c4f 2c4cfd0 a44fe3a 028c805 c8acb1e 0380c4f 028c805 0380c4f c8acb1e a44fe3a 0380c4f c8acb1e b009ed2 c8acb1e 0380c4f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
import gradio as gr
import pandas as pd
import os
import shutil
import json
from zipfile import ZipFile
import re
# Function to load leaderboard data from a CSV file
def load_leaderboard_data(csv_file_path):
try:
df = pd.read_csv(csv_file_path)
return df
except Exception as e:
print(f"Error loading CSV file: {e}")
return pd.DataFrame()
def save_zip_and_extract_json(zip_path):
if not zip_path:
return "Please upload a ZIP file."
try:
# 1) Determine Space name and persistent base dir
cwd = os.getcwd()
space_name = os.path.basename(cwd)
base_dir = os.path.join("data", space_name, "uploaded_jsons")
os.makedirs(base_dir, exist_ok=True)
# 2) Copy the zip into base_dir
zip_dest = os.path.join(base_dir, os.path.basename(zip_path))
shutil.copy(zip_path, zip_dest)
# 3) Extract only .json files
extracted = []
with ZipFile(zip_dest, 'r') as archive:
for member in archive.namelist():
if member.lower().endswith(".json"):
archive.extract(member, path=base_dir)
extracted.append(member)
if not extracted:
return "No JSON files found in the ZIP."
return f"Extracted JSON files:\n" + "\n".join(extracted)
except Exception as e:
return f"Error processing ZIP file: {str(e)}"
# Load the leaderboard data
leaderboard1 = load_leaderboard_data("leaderboard_swe.csv")
leaderboard2 = load_leaderboard_data("leaderboard_gaia.csv")
# Create the Gradio interface
with gr.Blocks() as demo:
gr.Markdown("# TRAIL: Trace Reasoning and Agentic Issue Localization Leaderboard")
with gr.Tab("π LEADERBOARD"):
with gr.Row():
with gr.Column():
gr.Markdown("## TRAIL-SWE Leaderboard")
gr.Dataframe(leaderboard1)
with gr.Column():
gr.Markdown("## TRAIL-GAIA Leaderboard")
gr.Dataframe(leaderboard2)
with gr.Tab("π SUBMIT"):
gr.Markdown("## Submit Your Results as ZIP")
gr.Markdown("See instructions in README before submitting.")
#with gr.Row():
with gr.Column():
file_input = gr.File(
label="Upload ZIP File",
file_types=['.zip']
)
submit_button = gr.Button("Submit", interactive=True)
output = gr.Textbox(label="Status")
def process_upload(file):
if file is None:
return "Please upload a ZIP file."
try:
return save_zip_and_extract_json(file.name)
except Exception as e:
return f"Error: {str(e)}"
submit_button.click(
fn=process_upload,
inputs=file_input,
outputs=output
)
with open("README.md", "r", encoding="utf-8") as f:
README_CONTENT = f.read()
yaml_front_matter = re.compile(r"^---\s*.*?\s*---\s*", re.DOTALL)
readme_content_without_yaml = re.sub(yaml_front_matter, "", README_CONTENT).strip()
with gr.Tab("π README"):
gr.Markdown(readme_content_without_yaml)
if __name__ == "__main__":
demo.launch()
|