Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Fix ReadTimeoutError crash on Space initialization
#2
by
aviavi12
- opened
- app.py +23 -4
- src/populate.py +13 -8
app.py
CHANGED
|
@@ -49,6 +49,19 @@ leaderboard_df = None
|
|
| 49 |
logger.info("Initialized LBDB")
|
| 50 |
|
| 51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
def restart_space():
|
| 53 |
logger.info("Restarting space")
|
| 54 |
API.restart_space(repo_id=REPO_ID)
|
|
@@ -66,10 +79,12 @@ def refresh_leaderboard_data():
|
|
| 66 |
leaderboard_df = new_leaderboard_df
|
| 67 |
else:
|
| 68 |
logger.warning("No new leaderboard data found")
|
| 69 |
-
|
|
|
|
| 70 |
except Exception as e:
|
| 71 |
logger.error(f"Error refreshing leaderboard data: {e}")
|
| 72 |
-
|
|
|
|
| 73 |
|
| 74 |
|
| 75 |
def init_leaderboard(dataframe: pd.DataFrame):
|
|
@@ -511,8 +526,12 @@ with blocks:
|
|
| 511 |
elem_classes="markdown-text",
|
| 512 |
)
|
| 513 |
refresh_leaderboard_data()
|
| 514 |
-
|
| 515 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 516 |
|
| 517 |
with gr.TabItem("Submit Solutions", elem_id="formulaone-submit-tab-table", id=3):
|
| 518 |
logger.info("Tab submission")
|
|
|
|
| 49 |
logger.info("Initialized LBDB")
|
| 50 |
|
| 51 |
|
| 52 |
+
def get_empty_leaderboard_df():
|
| 53 |
+
return pd.DataFrame(
|
| 54 |
+
columns=[
|
| 55 |
+
AutoEvalColumn.system.name,
|
| 56 |
+
AutoEvalColumn.organization.name,
|
| 57 |
+
AutoEvalColumn.success_rate_overall.name,
|
| 58 |
+
AutoEvalColumn.success_rate_tier1.name,
|
| 59 |
+
AutoEvalColumn.success_rate_tier2.name,
|
| 60 |
+
AutoEvalColumn.submitted_on.name,
|
| 61 |
+
]
|
| 62 |
+
)
|
| 63 |
+
|
| 64 |
+
|
| 65 |
def restart_space():
|
| 66 |
logger.info("Restarting space")
|
| 67 |
API.restart_space(repo_id=REPO_ID)
|
|
|
|
| 79 |
leaderboard_df = new_leaderboard_df
|
| 80 |
else:
|
| 81 |
logger.warning("No new leaderboard data found")
|
| 82 |
+
if leaderboard_df is None:
|
| 83 |
+
leaderboard_df = get_empty_leaderboard_df()
|
| 84 |
except Exception as e:
|
| 85 |
logger.error(f"Error refreshing leaderboard data: {e}")
|
| 86 |
+
if leaderboard_df is None:
|
| 87 |
+
leaderboard_df = get_empty_leaderboard_df()
|
| 88 |
|
| 89 |
|
| 90 |
def init_leaderboard(dataframe: pd.DataFrame):
|
|
|
|
| 526 |
elem_classes="markdown-text",
|
| 527 |
)
|
| 528 |
refresh_leaderboard_data()
|
| 529 |
+
if leaderboard_df is None or leaderboard_df.empty:
|
| 530 |
+
logger.warning("Displaying empty leaderboard - no data available")
|
| 531 |
+
gr.Markdown("⚠️ Leaderboard data unavailable. Submit solutions to populate it!")
|
| 532 |
+
leaderboard_component = init_leaderboard(get_empty_leaderboard_df())
|
| 533 |
+
else:
|
| 534 |
+
leaderboard_component = init_leaderboard(leaderboard_df)
|
| 535 |
|
| 536 |
with gr.TabItem("Submit Solutions", elem_id="formulaone-submit-tab-table", id=3):
|
| 537 |
logger.info("Tab submission")
|
src/populate.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
import pandas as pd
|
| 2 |
-
from datasets import get_dataset_config_names, load_dataset
|
| 3 |
from datasets.exceptions import DatasetNotFoundError
|
| 4 |
from tqdm.auto import tqdm
|
| 5 |
|
|
@@ -47,13 +47,18 @@ def get_leaderboard_df(results_dataset_name: str) -> pd.DataFrame:
|
|
| 47 |
total=len(configs),
|
| 48 |
desc="Processing Submission Results",
|
| 49 |
):
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
|
| 58 |
if submission_df.empty or "did_pass" not in submission_df.columns or submission_df.did_pass.isna().any():
|
| 59 |
logger.warning(f"Skipping {submission_id} due to invalid did_pass values")
|
|
|
|
| 1 |
import pandas as pd
|
| 2 |
+
from datasets import DownloadConfig, get_dataset_config_names, load_dataset
|
| 3 |
from datasets.exceptions import DatasetNotFoundError
|
| 4 |
from tqdm.auto import tqdm
|
| 5 |
|
|
|
|
| 47 |
total=len(configs),
|
| 48 |
desc="Processing Submission Results",
|
| 49 |
):
|
| 50 |
+
try:
|
| 51 |
+
submission_ds = load_dataset(
|
| 52 |
+
results_dataset_name,
|
| 53 |
+
submission_id,
|
| 54 |
+
split="train",
|
| 55 |
+
token=TOKEN,
|
| 56 |
+
download_config=DownloadConfig(timeout=60),
|
| 57 |
+
)
|
| 58 |
+
submission_df = pd.DataFrame(submission_ds)
|
| 59 |
+
except Exception as e:
|
| 60 |
+
logger.warning(f"Failed to load submission {submission_id}: {e}")
|
| 61 |
+
continue
|
| 62 |
|
| 63 |
if submission_df.empty or "did_pass" not in submission_df.columns or submission_df.did_pass.isna().any():
|
| 64 |
logger.warning(f"Skipping {submission_id} due to invalid did_pass values")
|