|
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) |
|
|
|
|
|
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() |
|
|