from rich.console import Console from argenta.command.models import Command from argenta.response import Response from argenta.router import Router from .benchmarks.core.models import BenchmarkGroupResult from .benchmarks.entity import benchmarks as registered_benchmarks from .services.report_generator import ReportGenerator from .services.system_info_reader import get_system_info console = Console() router = Router(title="Metrics commands:") @router.command(Command("all-print", description="Print all benchmarks results")) def all_print_handler(_: Response) -> None: report_generator = ReportGenerator(get_system_info()) console.print(report_generator.generate_system_info_header()) console.print(report_generator.generate_system_info_table()) return type_grouped_benchmarks: list[BenchmarkGroupResult] = registered_benchmarks.run_benchmarks_grouped_by_type() for benchmark_group_result in type_grouped_benchmarks: console.print(report_generator.generate_benchmark_table_header(benchmark_group_result)) console.print(report_generator.generate_benchmark_report_table(benchmark_group_result)) @router.command(Command("release-generate", description="Generate release report")) def release_generate_handler(_: Response) -> None: console.print("[yellow]Release report generation not implemented yet[/yellow]") @router.command(Command("diagrams-generate", description="Generate diagrams")) def diagrams_generate_handler(_: Response) -> None: console.print("[yellow]Diagrams generation not implemented yet[/yellow]")