in extra/dashboard/parse_results.py [0:0]
def build_df(model: str, data_files: dict[str, str]) -> pd.DataFrame:
df = pd.DataFrame()
# Load the results
for key, filename in data_files.items():
with open(filename, 'r') as f:
data = json.load(f)
if data['config']['meta'] is None:
data['config']['meta'] = {}
for result in data['results']:
entry = pd.json_normalize(result).to_dict(orient='records')[0]
if 'engine' in data['config']['meta']:
entry['engine'] = data['config']['meta']['engine']
if 'tp' in data['config']['meta']:
entry['tp'] = data['config']['meta']['tp']
if 'version' in data['config']['meta']:
entry['version'] = data['config']['meta']['version']
if 'device' in data['config']['meta']:
entry['device'] = data['config']['meta']['device']
entry['model'] = data['config']['model_name']
entry['run_id'] = data['config']['run_id']
df_tmp = pd.DataFrame(entry, index=[0])
# rename columns that start with 'config.'
df_tmp = df_tmp.rename(columns={c: c.split('config.')[-1] for c in df_tmp.columns})
# replace . with _ in column names
df_tmp.columns = [c.replace('.', '_') for c in df_tmp.columns]
df = pd.concat([df, df_tmp])
return df