SXXXXXXX_PyUCC/tools/generate_metrics_demo.py

67 lines
1.4 KiB
Python

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 <iostream>
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")