| Index: PRESUBMIT.py | 
| diff --git a/PRESUBMIT.py b/PRESUBMIT.py | 
| index aee7722223b6bc150c5dd6a2a3abe31f1223027c..10f7ac06318b6b0854812c46a50ea6b27b99979e 100644 | 
| --- a/PRESUBMIT.py | 
| +++ b/PRESUBMIT.py | 
| @@ -294,12 +294,6 @@ | 
| 'OS_QNX', | 
| 'OS_SOLARIS', | 
| 'OS_WIN', | 
| -) | 
| - | 
| - | 
| -_PYDEPS_FILES = ( | 
| -    'build/android/test_runner.pydeps', | 
| -    'build/secondary/tools/swarming_client/isolate.pydeps', | 
| ) | 
|  | 
|  | 
| @@ -1503,104 +1497,6 @@ | 
| return results | 
|  | 
|  | 
| -class PydepsChecker(object): | 
| -  def __init__(self, input_api): | 
| -    self._file_cache = {} | 
| -    self._input_api = input_api | 
| - | 
| -  def _LoadFile(self, path): | 
| -    """Returns the list of paths within a .pydeps file relative to //.""" | 
| -    if path not in self._file_cache: | 
| -      with open(path) as f: | 
| -        self._file_cache[path] = f.read() | 
| -    return self._file_cache[path] | 
| - | 
| -  def _ComputeNormalizedPydepsEntries(self, pydeps_path): | 
| -    """Returns an interable of paths within the .pydep, relativized to //.""" | 
| -    os_path = self._input_api.os_path | 
| -    pydeps_dir = os_path.dirname(pydeps_path) | 
| -    entries = (l.rstrip() for l in self._LoadFile(pydeps_path).splitlines() | 
| -               if not l.startswith('*')) | 
| -    return (os_path.normpath(os_path.join(pydeps_dir, e)) for e in entries) | 
| - | 
| -  def _CreateFilesToPydepsMap(self): | 
| -    """Returns a map of local_path -> list_of_pydeps.""" | 
| -    ret = {} | 
| -    for pydep_local_path in _PYDEPS_FILES: | 
| -      for path in self._ComputeNormalizedPydepsEntries(pydep_local_path): | 
| -        ret.setdefault(path, []).append(pydep_local_path) | 
| -    return ret | 
| - | 
| -  def ComputeAffectedPydeps(self): | 
| -    """Returns an iterable of .pydeps files that might need regenerating.""" | 
| -    affected_pydeps = set() | 
| -    file_to_pydeps_map = None | 
| -    for f in self._input_api.AffectedFiles(include_deletes=True): | 
| -      local_path = f.LocalPath() | 
| -      if local_path  == 'DEPS': | 
| -        return _PYDEPS_FILES | 
| -      elif local_path.endswith('.pydeps'): | 
| -        if local_path in _PYDEPS_FILES: | 
| -          affected_pydeps.add(local_path) | 
| -      elif local_path.endswith('.py'): | 
| -        if file_to_pydeps_map is None: | 
| -          file_to_pydeps_map = self._CreateFilesToPydepsMap() | 
| -        affected_pydeps.update(file_to_pydeps_map.get(local_path, ())) | 
| -    return affected_pydeps | 
| - | 
| -  def DetermineIfStale(self, pydeps_path): | 
| -    """Runs print_python_deps.py to see if the files is stale.""" | 
| -    old_pydeps_data = self._LoadFile(pydeps_path) | 
| - | 
| -    m = self._input_api.re.search(r'# target: //(.*)', old_pydeps_data) | 
| -    if not m: | 
| -      return ['COULD NOT FIND .pydeps TARGET'] | 
| -    target = m.group(1) | 
| -    m = self._input_api.re.search(r'# root: //(.*)', old_pydeps_data) | 
| -    if not m: | 
| -      return ['COULD NOT FIND .pydeps ROOT'] | 
| -    root = m.group(1) or '.' | 
| - | 
| -    cmd = ['build/print_python_deps.py', '--root', root, target] | 
| -    new_pydeps_data = self._input_api.subprocess.check_output(cmd) | 
| -    if old_pydeps_data != new_pydeps_data: | 
| -      return cmd[:-1] + ['--output', pydeps_path] + cmd[-1:] | 
| - | 
| - | 
| -def _CheckPydepsNeedsUpdating(input_api, output_api, checker_for_tests=None): | 
| -  """Checks if a .pydeps file needs to be regenerated.""" | 
| -  results = [] | 
| -  # First, check for new / deleted .pydeps. | 
| -  for f in input_api.AffectedFiles(include_deletes=True): | 
| -    if f.LocalPath().endswith('.pydeps'): | 
| -      if f.Action() == 'D' and f.LocalPath() in _PYDEPS_FILES: | 
| -        results.append(output_api.PresubmitError( | 
| -            'Please update _PYDEPS_FILES within //PRESUBMIT.py to remove %s' % | 
| -            f.LocalPath())) | 
| -      elif f.Action() != 'D' and f.LocalPath() not in _PYDEPS_FILES: | 
| -        results.append(output_api.PresubmitError( | 
| -            'Please update _PYDEPS_FILES within //PRESUBMIT.py to include %s' % | 
| -            f.LocalPath())) | 
| - | 
| -  if results: | 
| -    return results | 
| - | 
| -  checker = checker_for_tests or PydepsChecker(input_api) | 
| - | 
| -  for pydep_path in checker.ComputeAffectedPydeps(): | 
| -    try: | 
| -      cmd = checker.DetermineIfStale(pydep_path) | 
| -      if cmd: | 
| -        results.append(output_api.PresubmitError( | 
| -            'File is stale: %s\nTo regenerate, run:\n%s' % (pydep_path, | 
| -                                                            ' '.join(cmd)))) | 
| -    except input_api.subprocess.CalledProcessError as error: | 
| -      return [output_api.PresubmitError('Error running ' + ' '.join(error.cmd), | 
| -          long_text=error.output)] | 
| - | 
| -  return results | 
| - | 
| - | 
| def _CheckForCopyrightedCode(input_api, output_api): | 
| """Verifies that newly added code doesn't contain copyrighted material | 
| and is properly licensed under the standard Chromium license. | 
| @@ -1754,7 +1650,6 @@ | 
| results.extend(_CheckAndroidCrLogUsage(input_api, output_api)) | 
| results.extend(_CheckAndroidNewMdpiAssetLocation(input_api, output_api)) | 
| results.extend(_CheckAndroidToastUsage(input_api, output_api)) | 
| -  results.extend(_CheckPydepsNeedsUpdating(input_api, output_api)) | 
| return results | 
|  | 
|  | 
|  |