67 lines
1.4 KiB
Python
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")
|