Commit
a9b8e3a
·
verified ·
1 Parent(s): a21aed1

Update src/populate.py

Browse files
Files changed (1) hide show
  1. src/populate.py +70 -1
src/populate.py CHANGED
@@ -1 +1,70 @@
1
- d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import pandas as pd
3
+ import json
4
+
5
+ from src.display.utils import COLUMNS, EVAL_COLS, Tasks
6
+ from src.envs import EVAL_RESULTS_PATH
7
+
8
+ def get_leaderboard_df(eval_results_path, eval_requests_path, cols, benchmark_cols):
9
+ # Initialize an empty DataFrame
10
+ df = pd.DataFrame(columns=cols)
11
+
12
+ # Load evaluation results from JSON files
13
+ if os.path.exists(eval_results_path):
14
+ result_files = [
15
+ os.path.join(eval_results_path, f)
16
+ for f in os.listdir(eval_results_path)
17
+ if f.endswith('.json')
18
+ ]
19
+ data_list = []
20
+ for file in result_files:
21
+ with open(file, 'r') as f:
22
+ data = json.load(f)
23
+ flattened_data = {}
24
+ flattened_data.update(data.get('config', {}))
25
+ flattened_data.update(data.get('results', {}))
26
+ data_list.append(flattened_data)
27
+ if data_list:
28
+ df = pd.DataFrame(data_list)
29
+
30
+ # Ensure DataFrame has all columns
31
+ for col in cols:
32
+ if col not in df.columns:
33
+ df[col] = None
34
+
35
+ # Convert 'average' column to float and handle errors
36
+ if 'average' in df.columns:
37
+ df['average'] = pd.to_numeric(df['average'], errors='coerce')
38
+
39
+ # Sort by 'average' column if it exists
40
+ if 'average' in df.columns:
41
+ df = df.sort_values(by=['average'], ascending=False)
42
+
43
+ return df
44
+
45
+ def get_evaluation_queue_df(eval_requests_path, eval_cols):
46
+ # Initialize empty DataFrames
47
+ finished_df = pd.DataFrame(columns=eval_cols)
48
+ running_df = pd.DataFrame(columns=eval_cols)
49
+ pending_df = pd.DataFrame(columns=eval_cols)
50
+
51
+ # Load evaluation requests from JSON files
52
+ if os.path.exists(eval_requests_path):
53
+ request_files = [
54
+ os.path.join(eval_requests_path, f)
55
+ for f in os.listdir(eval_requests_path)
56
+ if f.endswith('.json')
57
+ ]
58
+ data_list = []
59
+ for file in request_files:
60
+ with open(file, 'r') as f:
61
+ data = json.load(f)
62
+ data_list.append(data)
63
+ if data_list:
64
+ df = pd.DataFrame(data_list)
65
+ # Split DataFrame based on status
66
+ finished_df = df[df['status'] == 'finished']
67
+ running_df = df[df['status'] == 'running']
68
+ pending_df = df[df['status'] == 'pending']
69
+
70
+ return finished_df, running_df, pending_df