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

Unified Diff: owners.py

Issue 12314044: return a list of uncovered files, not uncovered dirs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: fix formatting Created 7 years, 10 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 | « no previous file | presubmit_canned_checks.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: owners.py
diff --git a/owners.py b/owners.py
index 8007e171c29c059589be1b0ea77f7a9b74694413..c53f0123d09cb9e7edb03d05278b42da9522f112 100644
--- a/owners.py
+++ b/owners.py
@@ -129,13 +129,8 @@ class Database(object):
suggested_owners = set(['<anyone>'])
return suggested_owners
- # TODO(dpranke): rename to objects_not_covered_by
- def directories_not_covered_by(self, files, reviewers):
- """Returns the set of directories that are not owned by a reviewer.
-
- Determines which of the given files are not owned by at least one of the
- reviewers, then returns a set containing the applicable enclosing
- directories, i.e. the ones upward from the files that have OWNERS files.
+ def files_not_covered_by(self, files, reviewers):
+ """Returns the files not owned by one of the reviewers.
Args:
files is a sequence of paths relative to (and under) self.root.
@@ -145,20 +140,11 @@ class Database(object):
self._check_reviewers(reviewers)
self._load_data_needed_for(files)
- objs = set()
- for f in files:
- if f in self.owners_for:
- objs.add(f)
- else:
- objs.add(self.os_path.dirname(f))
-
covered_objs = self._objs_covered_by(reviewers)
- uncovered_objs = [self._enclosing_obj_with_owners(o) for o in objs
- if not self._is_obj_covered_by(o, covered_objs)]
+ uncovered_files = [f for f in files
+ if not self._is_obj_covered_by(f, covered_objs)]
- return set(uncovered_objs)
-
- objects_not_covered_by = directories_not_covered_by
+ return set(uncovered_files)
def _check_paths(self, files):
def _is_under(f, pfx):
@@ -171,38 +157,29 @@ class Database(object):
_assert_is_collection(reviewers)
assert all(self.email_regexp.match(r) for r in reviewers)
- # TODO(dpranke): Rename to _objs_covered_by and update_callers
- def _dirs_covered_by(self, reviewers):
- dirs = self.owned_by[EVERYONE]
+ def _objs_covered_by(self, reviewers):
+ objs = self.owned_by[EVERYONE]
for r in reviewers:
- dirs = dirs | self.owned_by.get(r, set())
- return dirs
-
- _objs_covered_by = _dirs_covered_by
+ objs = objs | self.owned_by.get(r, set())
+ return objs
- def _stop_looking(self, dirname):
- return dirname in self.stop_looking
+ def _stop_looking(self, objname):
+ return objname in self.stop_looking
- # TODO(dpranke): Rename to _is_dir_covered_by and update callers.
- def _is_dir_covered_by(self, dirname, covered_dirs):
- while not dirname in covered_dirs and not self._stop_looking(dirname):
- dirname = self.os_path.dirname(dirname)
- return dirname in covered_dirs
+ def _is_obj_covered_by(self, objname, covered_objs):
+ while not objname in covered_objs and not self._stop_looking(objname):
+ objname = self.os_path.dirname(objname)
+ return objname in covered_objs
- _is_obj_covered_by = _is_dir_covered_by
-
- # TODO(dpranke): Rename to _enclosing_obj_with_owners and update callers.
- def _enclosing_dir_with_owners(self, directory):
+ def _enclosing_dir_with_owners(self, objname):
"""Returns the innermost enclosing directory that has an OWNERS file."""
- dirpath = directory
+ dirpath = objname
while not dirpath in self.owners_for:
if self._stop_looking(dirpath):
break
dirpath = self.os_path.dirname(dirpath)
return dirpath
- _enclosing_obj_with_owners = _enclosing_dir_with_owners
-
def _load_data_needed_for(self, files):
for f in files:
dirpath = self.os_path.dirname(f)
« no previous file with comments | « no previous file | presubmit_canned_checks.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698