@@ -34,7 +34,25 @@ def comment_code_ratio_stats(
3434 results = analyze_comment_code_ratio (content )
3535
3636 if output_format == "json" :
37- console .print (json .dumps (results , indent = 2 ))
37+ # Clean the results to ensure valid JSON
38+ cleaned_results = {
39+ "summary_stats" : {
40+ "total_lines_in_file" : results .get ("summary_stats" , {}).get ("total_lines_in_file" , 0 ),
41+ "code_lines" : results .get ("summary_stats" , {}).get ("code_lines" , 0 ),
42+ "comment_only_lines" : results .get ("summary_stats" , {}).get ("comment_only_lines" , 0 ),
43+ "empty_or_whitespace_lines" : results .get ("summary_stats" , {}).get ("empty_or_whitespace_lines" , 0 ),
44+ "comment_to_code_plus_comment_ratio" : results .get ("summary_stats" , {}).get ("comment_to_code_plus_comment_ratio" , 0 )
45+ },
46+ "line_by_line_analysis" : [
47+ {
48+ "original_line_number" : line .get ("original_line_number" , 0 ),
49+ "type" : line .get ("type" , "" ),
50+ "line_content" : line .get ("line_content" , "" ).replace ("\n " , " " ).replace ("\r " , "" )
51+ }
52+ for line in results .get ("line_by_line_analysis" , [])
53+ ]
54+ }
55+ console .print (json .dumps (cleaned_results , indent = 2 ))
3856 elif output_format == "console" :
3957 console .print (f"\n [bold cyan]{ get_translation ('comment_code_ratio_analysis_for' )} [green]{ file_path } [/green]:[/bold cyan]" )
4058 summary = results .get ("summary_stats" , {})
@@ -56,11 +74,15 @@ def comment_code_ratio_stats(
5674 table_details .add_column (get_translation ('line_type' ), style = "dim" )
5775 table_details .add_column (get_translation ('content_col' ))
5876 for line_data in line_details :
59- table_details .add_row (
60- str (line_data ["original_line_number" ]),
61- get_translation (line_data ["type" ]),
62- line_data ["line_content" ] if len (line_data ["line_content" ]) < 70 else line_data ["line_content" ][:67 ] + "..."
63- )
77+ if isinstance (line_data , dict ):
78+ content = line_data .get ("line_content" , "" )
79+ if len (content ) > 70 :
80+ content = content [:67 ] + "..."
81+ table_details .add_row (
82+ str (line_data .get ("original_line_number" , "" )),
83+ get_translation (line_data .get ("type" , "" )),
84+ content
85+ )
6486 console .print (table_details )
6587 else :
6688 console .print (f"[bold red]{ get_translation ('error_invalid_format' )} : { output_format } . { get_translation ('valid_formats_are' )} console, json.[/bold red]" )
0 commit comments