def gather_benchmarks()

in llm_perf/update_llm_perf_leaderboard.py [0:0]


def gather_benchmarks(subset: str, machine: str, backend: str, hardware: str):
    """
    Gather the benchmarks for a given machine
    """
    perf_repo_id = PERF_REPO_ID.format(
        subset=subset, machine=machine, backend=backend, hardware=hardware
    )
    snapshot = snapshot_download(
        repo_type=REPO_TYPE,
        repo_id=perf_repo_id,
        allow_patterns=["**/benchmark.json"],
    )

    dfs = []
    for file in glob(f"{snapshot}/**/benchmark.json", recursive=True):
        patch_json(file)
        dfs.append(Benchmark.from_json(file).to_dataframe())
    benchmarks = pd.concat(dfs, ignore_index=True)

    perf_df = PERF_DF.format(
        subset=subset, machine=machine, backend=backend, hardware=hardware
    )
    benchmarks.to_csv(perf_df, index=False)
    create_repo(repo_id=MAIN_REPO_ID, repo_type=REPO_TYPE, private=False, exist_ok=True)
    upload_file(
        repo_id=MAIN_REPO_ID,
        repo_type=REPO_TYPE,
        path_in_repo=perf_df,
        path_or_fileobj=perf_df,
    )
    print(f"Uploaded {perf_df} to {MAIN_REPO_ID}")