def _json_to_df()

in analytics/s3_test_stats_analyze.py [0:0]


def _json_to_df(data: Dict[str, Any], granularity: str) -> pd.DataFrame:
    reformed_data = list()
    for fname, fdata in data['files'].items():
        if granularity == 'file': 
            reformed_data.append({
                "job": data['job'],
                "sha": data['sha'],
                'file': fname,
                'file_total_sec': fdata['total_seconds'],
            })
        else:
            for sname, sdata in fdata['suites'].items():
                if granularity == 'suite': 
                    reformed_data.append({
                        "job": data['job'],
                        "sha": data['sha'],
                        'suite': sname,
                        'suite_total_sec': sdata['total_seconds'],
                    })
                else:
                    for cname, cdata in sdata['cases'].items():
                        reformed_data.append({
                            "job": data['job'],
                            "sha": data['sha'],
                            'case': cname,
                            'case_status': cdata['status'],
                            'case_sec': cdata['seconds'],
                            })
    df = pd.json_normalize(reformed_data)
    return df