1717 IssueCategory ,
1818 IssueSeverity ,
1919 )
20- from codegen_on_oss .analyzers .unified_analyzer import (
21- CodeQualityAnalyzerPlugin ,
22- DependencyAnalyzerPlugin ,
23- UnifiedCodeAnalyzer ,
24- )
20+ from codegen_on_oss .analyzers .unified_analyzer import UnifiedCodeAnalyzer
2521except ImportError :
2622 print ("Required analyzer modules not found." )
2723 sys .exit (1 )
@@ -259,7 +255,7 @@ def _generate_summary_report(self) -> str:
259255
260256 return report
261257
262- def _generate_detailed_report (self ) -> str :
258+ def _generate_detailed_report (self ) -> str : # noqa: C901
263259 """Generate a detailed report of the analysis results."""
264260 results = self .analyzer .results
265261
@@ -274,24 +270,57 @@ def _generate_detailed_report(self) -> str:
274270 )
275271 report += f" Analysis Types: { ', ' .join (results ['metadata' ].get ('analysis_types' , []))} \n "
276272
277- # Add detailed analysis sections
273+ # Add issue statistics
274+ report += "\n Issue Statistics:\n "
275+ report += f" Total Issues: { results ['issue_stats' ]['total' ]} \n "
276+ report += (
277+ f" Critical: { results ['issue_stats' ]['by_severity' ].get ('critical' , 0 )} \n "
278+ )
279+ report += f" Errors: { results ['issue_stats' ]['by_severity' ].get ('error' , 0 )} \n "
280+ report += (
281+ f" Warnings: { results ['issue_stats' ]['by_severity' ].get ('warning' , 0 )} \n "
282+ )
283+ report += f" Info: { results ['issue_stats' ]['by_severity' ].get ('info' , 0 )} \n \n "
284+
285+ # Add codebase summary
286+ if "summary" in results :
287+ report += "Codebase Summary:\n "
288+ summary = results ["summary" ]
289+ report += f" Files: { summary .get ('file_count' , 0 )} \n "
290+ report += f" Lines of Code: { summary .get ('total_loc' , 0 )} \n "
291+ report += f" Functions: { summary .get ('function_count' , 0 )} \n "
292+ report += f" Classes: { summary .get ('class_count' , 0 )} \n "
293+ report += f" Imports: { summary .get ('import_count' , 0 )} \n "
294+ report += f" Dependencies: { summary .get ('dependency_count' , 0 )} \n \n "
295+
296+ # Language breakdown
297+ if "language_breakdown" in summary :
298+ report += " Language Breakdown:\n "
299+ for lang , stats in summary ["language_breakdown" ].items ():
300+ report += f" { lang } : { stats ['file_count' ]} files, { stats ['loc' ]} lines\n "
301+
302+ # Add detailed analysis results
303+ report += "\n Detailed Analysis Results:\n "
304+
305+ # Add analysis summaries
278306 for analysis_type , analysis_results in results .get ("results" , {}).items ():
279- report += f"\n { analysis_type .title ()} Analysis: \n "
307+ report += f"\n === { analysis_type .upper ()} ANALYSIS === \n "
280308
281- # Add relevant sections from each analysis type
282309 if analysis_type == "code_quality" :
283310 # Dead code
284311 if "dead_code" in analysis_results :
285312 dead_code = analysis_results ["dead_code" ]
286313 report += "\n Dead Code Analysis:\n "
287314 report += f" Total Dead Code Items: { dead_code ['summary' ]['total_dead_code_count' ]} \n "
315+ report += f" Unused Functions: { dead_code ['summary' ]['unused_functions_count' ]} \n "
316+ report += f" Unused Classes: { dead_code ['summary' ]['unused_classes_count' ]} \n "
317+ report += f" Unused Variables: { dead_code ['summary' ]['unused_variables_count' ]} \n "
318+ report += f" Unused Imports: { dead_code ['summary' ]['unused_imports_count' ]} \n "
288319
289320 # Unused functions
290321 if dead_code ["unused_functions" ]:
291322 report += f"\n Unused Functions ({ len (dead_code ['unused_functions' ])} ):\n "
292- for func in dead_code ["unused_functions" ][
293- :10
294- ]: # Limit to top 10
323+ for func in dead_code ["unused_functions" ][:10 ]: # Limit to top 10
295324 report += f" { func ['name' ]} ({ func ['file' ]} :{ func ['line' ]} )\n "
296325 if len (dead_code ["unused_functions" ]) > 10 :
297326 report += f" ... and { len (dead_code ['unused_functions' ]) - 10 } more\n "
@@ -517,3 +546,4 @@ def main():
517546
518547if __name__ == "__main__" :
519548 main ()
549+
0 commit comments