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

Update src/populate.py

Browse files
Files changed (1) hide show
  1. src/populate.py +1 -70
src/populate.py CHANGED
@@ -1,70 +1 @@
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
 
1
+ d