Resolve TypeError when processing evaluation queue data
Browse files- src/populate.py +21 -12
src/populate.py
CHANGED
@@ -12,7 +12,7 @@ def get_leaderboard_df(results_path: str, requests_path: str, cols: list, benchm
|
|
12 |
print(f"Getting raw eval results from {results_path} and {requests_path}")
|
13 |
raw_data = get_raw_eval_results(results_path, requests_path)
|
14 |
print(f"Got {len(raw_data)} raw eval results")
|
15 |
-
|
16 |
if not raw_data:
|
17 |
print("No raw data found!")
|
18 |
return pd.DataFrame(columns=cols)
|
@@ -65,17 +65,15 @@ def get_evaluation_queue_df(save_path: str, cols: list) -> list[pd.DataFrame]:
|
|
65 |
with open(file_path) as fp:
|
66 |
data = json.load(fp)
|
67 |
|
68 |
-
#
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
all_evals.append(formatted_data)
|
79 |
|
80 |
print(f"Found {len(all_evals)} total eval requests")
|
81 |
pending_list = [e for e in all_evals if e["status"] in ["PENDING", "RERUN"]]
|
@@ -88,3 +86,14 @@ def get_evaluation_queue_df(save_path: str, cols: list) -> list[pd.DataFrame]:
|
|
88 |
df_running = pd.DataFrame.from_records(running_list, columns=cols)
|
89 |
df_finished = pd.DataFrame.from_records(finished_list, columns=cols)
|
90 |
return df_finished[cols], df_running[cols], df_pending[cols]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
print(f"Getting raw eval results from {results_path} and {requests_path}")
|
13 |
raw_data = get_raw_eval_results(results_path, requests_path)
|
14 |
print(f"Got {len(raw_data)} raw eval results")
|
15 |
+
|
16 |
if not raw_data:
|
17 |
print("No raw data found!")
|
18 |
return pd.DataFrame(columns=cols)
|
|
|
65 |
with open(file_path) as fp:
|
66 |
data = json.load(fp)
|
67 |
|
68 |
+
# Check if data is a list (multiple requests in one file)
|
69 |
+
if isinstance(data, list):
|
70 |
+
for item in data:
|
71 |
+
formatted_data = format_eval_data(item)
|
72 |
+
all_evals.append(formatted_data)
|
73 |
+
else:
|
74 |
+
# Single request in the file
|
75 |
+
formatted_data = format_eval_data(data)
|
76 |
+
all_evals.append(formatted_data)
|
|
|
|
|
77 |
|
78 |
print(f"Found {len(all_evals)} total eval requests")
|
79 |
pending_list = [e for e in all_evals if e["status"] in ["PENDING", "RERUN"]]
|
|
|
86 |
df_running = pd.DataFrame.from_records(running_list, columns=cols)
|
87 |
df_finished = pd.DataFrame.from_records(finished_list, columns=cols)
|
88 |
return df_finished[cols], df_running[cols], df_pending[cols]
|
89 |
+
|
90 |
+
def format_eval_data(data: dict) -> dict:
|
91 |
+
"""Format the evaluation data into the required structure"""
|
92 |
+
return {
|
93 |
+
"model": make_clickable_model(data.get("model", "")),
|
94 |
+
"revision": data.get("revision", "main"),
|
95 |
+
"private": data.get("private", False),
|
96 |
+
"precision": data.get("precision", ""),
|
97 |
+
"weight_type": data.get("weight_type", ""),
|
98 |
+
"status": data.get("status", "")
|
99 |
+
}
|