import os from pathlib import Path import tempfile # create a demo directory with a C++ file containing multiple functions demo_dir = Path("tools") / "metrics_demo" if demo_dir.exists(): import shutil shutil.rmtree(demo_dir) demo_dir.mkdir(parents=True) cpp_file = demo_dir / "demo.cpp" cpp_code = r""" #include int add(int a, int b) { if (a == 0) return b; int s = a + b; return s; } int factorial(int n) { int r = 1; for (int i = 1; i <= n; ++i) r *= i; return r; } void runner() { for (int i=0;i<10;i++) { std::cout << add(i, i) << "\n"; } } int main() { runner(); return 0; } """ cpp_file.write_text(cpp_code, encoding="utf-8") # import pyucc analyzer and report generator try: from pyucc.core.metrics import analyze_file_metrics from pyucc.utils.ucc_report_generator import UCCReportGenerator except Exception as e: print("Failed to import pyucc modules:", e) raise # analyze res = analyze_file_metrics(str(cpp_file)) print("Analysis result:", res) # generate report out_path = demo_dir / "metrics_report.txt" UCCReportGenerator.generate_metrics_report( results=[res], output_path=out_path, command_description="Demo Metrics Report", base_path=str(demo_dir), ) # print report content print("\n--- Generated metrics_report.txt ---\n") print(out_path.read_text(encoding="utf-8")) print("\n--- End of report ---\n")