"""ASV benchmarks for enhanced CLI core system commands. Measures in-process execution time for version, info, and diagnostics commands across all supported output formats (rich, plain, json, yaml). """ from __future__ import annotations import sys from pathlib import Path try: from cleveragents.cli.commands.system import ( build_diagnostics_data, build_info_data, build_version_data, ) from cleveragents.cli.formatting import format_output except ModuleNotFoundError: sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src")) from cleveragents.cli.commands.system import ( build_diagnostics_data, build_info_data, build_version_data, ) from cleveragents.cli.formatting import format_output class VersionSuite: """Benchmark version data assembly and formatting.""" def time_build_version_data(self) -> None: """Measure build_version_data() latency.""" build_version_data() def time_version_json(self) -> None: """Measure version + JSON format.""" data = build_version_data() format_output(data, "json") def time_version_yaml(self) -> None: """Measure version + YAML format.""" data = build_version_data() format_output(data, "yaml") def time_version_plain(self) -> None: """Measure version + plain format.""" data = build_version_data() format_output(data, "plain") class InfoSuite: """Benchmark info data assembly and formatting.""" def time_build_info_data(self) -> None: """Measure build_info_data() latency.""" build_info_data() def time_info_json(self) -> None: """Measure info + JSON format.""" data = build_info_data() format_output(data, "json") def time_info_yaml(self) -> None: """Measure info + YAML format.""" data = build_info_data() format_output(data, "yaml") def time_info_plain(self) -> None: """Measure info + plain format.""" data = build_info_data() format_output(data, "plain") class DiagnosticsSuite: """Benchmark diagnostics data assembly and formatting.""" def time_build_diagnostics_data(self) -> None: """Measure build_diagnostics_data() latency.""" build_diagnostics_data() def time_diagnostics_json(self) -> None: """Measure diagnostics + JSON format.""" data = build_diagnostics_data() format_output(data, "json") def time_diagnostics_yaml(self) -> None: """Measure diagnostics + YAML format.""" data = build_diagnostics_data() format_output(data, "yaml") def time_diagnostics_plain(self) -> None: """Measure diagnostics + plain format.""" data = build_diagnostics_data() format_output(data, "plain")