Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(534)

Unified Diff: appengine/findit/crash/scorers/min_distance.py

Issue 2157433002: [Findit] Pass changed files info to Fracas, 2 face design. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Fix nits. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « appengine/findit/crash/scorers/aggregators.py ('k') | appengine/findit/crash/scorers/scorer.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/findit/crash/scorers/min_distance.py
diff --git a/appengine/findit/crash/scorers/min_distance.py b/appengine/findit/crash/scorers/min_distance.py
index cf57da711329b016f80a543508357ab977d491fe..ae5303c8f732079be287a8509655f109976394df 100644
--- a/appengine/findit/crash/scorers/min_distance.py
+++ b/appengine/findit/crash/scorers/min_distance.py
@@ -22,11 +22,11 @@ class MinDistance(Scorer):
self.max_distance = max_distance
def GetMetric(self, result):
- if not hasattr(result, 'min_distance'):
- logging.warning('Scorer %s only applies to MatchResult', self.name)
- return None
+ min_distance = float('inf')
+ for analysis_info in result.file_to_analysis_info.itervalues():
+ min_distance = min(min_distance, analysis_info['min_distance'])
- return result.min_distance
+ return min_distance
def Score(self, min_distance):
if min_distance > self.max_distance:
@@ -41,6 +41,24 @@ class MinDistance(Scorer):
def Reason(self, min_distance, score):
if score == 0:
- return ''
+ return None
+
+ return self.name, score, 'Minimum distance is %d' % min_distance
+
+ def ChangedFiles(self, result):
+ index_to_changed_files = {}
+ for file_path, analysis_info in result.file_to_analysis_info.iteritems():
+ file_name = file_path.split('/')[-1]
+ frame = analysis_info['min_distance_frame']
+ index_to_changed_files[frame.index] = {
+ 'file': file_name,
+ 'blame_url': frame.BlameUrl(result.changelog.revision),
+ 'info': 'Minimum distance (LOC) %d, frame #%d' % (
+ analysis_info['min_distance'], frame.index)
+ }
+
+ # Sort changed file by frame index.
+ _, changed_files = zip(*sorted(index_to_changed_files.items(),
+ key=lambda x: x[0]))
- return 'Modification distance (LOC) is %d' % min_distance
+ return list(changed_files)
« no previous file with comments | « appengine/findit/crash/scorers/aggregators.py ('k') | appengine/findit/crash/scorers/scorer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698