46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
import json
|
|
import os
|
|
from pathlib import Path
|
|
|
|
from agbenchmark.reports.processing.graphs import (
|
|
save_combined_bar_chart,
|
|
save_combined_radar_chart,
|
|
)
|
|
from agbenchmark.reports.processing.process_report import (
|
|
all_agent_categories,
|
|
get_reports_data,
|
|
)
|
|
|
|
|
|
def generate_combined_chart() -> None:
|
|
all_agents_path = Path(__file__).parent.parent.parent.parent / "reports"
|
|
|
|
combined_charts_folder = all_agents_path / "combined_charts"
|
|
|
|
reports_data = get_reports_data(str(all_agents_path))
|
|
|
|
categories = all_agent_categories(reports_data)
|
|
|
|
# Count the number of directories in this directory
|
|
num_dirs = len([f for f in combined_charts_folder.iterdir() if f.is_dir()])
|
|
|
|
run_charts_folder = combined_charts_folder / f"run{num_dirs + 1}"
|
|
|
|
if not os.path.exists(run_charts_folder):
|
|
os.makedirs(run_charts_folder)
|
|
|
|
info_data = {
|
|
report_name: data.benchmark_start_time
|
|
for report_name, data in reports_data.items()
|
|
if report_name in categories
|
|
}
|
|
with open(Path(run_charts_folder) / "run_info.json", "w") as f:
|
|
json.dump(info_data, f)
|
|
|
|
save_combined_radar_chart(categories, Path(run_charts_folder) / "radar_chart.png")
|
|
save_combined_bar_chart(categories, Path(run_charts_folder) / "bar_chart.png")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
generate_combined_chart()
|