@@ -108,14 +108,6 @@ class FileInfo:
108108 diff : coverage_module .FileDiffCoverage | None
109109 previous : coverage_module .FileCoverage | None
110110
111- @property
112- def new_missing_lines (self ) -> list [int ]:
113- missing_lines = set (self .coverage .missing_lines )
114- if self .previous :
115- missing_lines -= set (self .previous .missing_lines )
116-
117- return sorted (missing_lines )
118-
119111
120112def get_comment_markdown (
121113 * ,
@@ -209,7 +201,7 @@ def select_files(
209201 diff = diff_coverage_file ,
210202 previous = previous_coverage_file ,
211203 )
212- has_diff = bool (diff_coverage_file )
204+ has_diff = bool (diff_coverage_file and diff_coverage_file . added_statements )
213205 has_evolution_from_previous = (
214206 previous_coverage_file .info != coverage_file .info
215207 if previous_coverage_file
@@ -220,12 +212,31 @@ def select_files(
220212 files .append (file_info )
221213
222214 count_files = len (files )
223- files = sorted (files , key = lambda x : len ( x . new_missing_lines ) , reverse = True )
215+ files = sorted (files , key = sort_order , reverse = True )
224216 if max_files is not None :
225217 files = files [:max_files ]
226218 return sorted (files , key = lambda x : x .path ), count_files
227219
228220
221+ def sort_order (file_info : FileInfo ) -> tuple [int , int , int ]:
222+ """
223+ Sort order for files:
224+ 1. Files with the most new missing lines
225+ 2. Files with the most added lines (from the diff)
226+ 3. Files with the most new executed lines (including not in the diff)
227+ """
228+ new_missing_lines = len (file_info .coverage .missing_lines )
229+ if file_info .previous :
230+ new_missing_lines -= len (file_info .previous .missing_lines )
231+
232+ added_statements = len (file_info .diff .added_statements ) if file_info .diff else 0
233+ new_covered_lines = len (file_info .coverage .executed_lines )
234+ if file_info .previous :
235+ new_covered_lines -= len (file_info .previous .executed_lines )
236+
237+ return abs (new_missing_lines ), added_statements , abs (new_covered_lines )
238+
239+
229240def get_readme_markdown (
230241 is_public : bool ,
231242 readme_url : str ,
0 commit comments