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

Unified Diff: tools/telemetry/catapult_base/refactor_util/move.py

Issue 1599413006: Remove catapult_base from telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@perf_cb_move
Patch Set: Created 4 years, 11 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
Index: tools/telemetry/catapult_base/refactor_util/move.py
diff --git a/tools/telemetry/catapult_base/refactor_util/move.py b/tools/telemetry/catapult_base/refactor_util/move.py
deleted file mode 100644
index 108413b2864511a10af681767bc34c972660a600..0000000000000000000000000000000000000000
--- a/tools/telemetry/catapult_base/refactor_util/move.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 2015 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import functools
-import os
-import sys
-
-from catapult_base import refactor
-
-
-def Run(sources, target, files_to_update):
- """Move modules and update imports.
-
- Args:
- sources: List of source module or package paths.
- target: Destination module or package path.
- files_to_update: Modules whose imports we should check for changes.
- """
- # TODO(dtu): Support moving classes and functions.
- moves = tuple(_Move(source, target) for source in sources)
-
- # Update imports and references.
- refactor.Transform(functools.partial(_Update, moves), files_to_update)
-
- # Move files.
- for move in moves:
- os.rename(move.source_path, move.target_path)
-
-
-def _Update(moves, module):
- for import_statement in module.FindAll(refactor.Import):
- for move in moves:
- try:
- if move.UpdateImportAndReferences(module, import_statement):
- break
- except NotImplementedError as e:
- print >> sys.stderr, 'Error updating %s: %s' % (module.file_path, e)
-
-
-class _Move(object):
- def __init__(self, source, target):
- self._source_path = os.path.realpath(source)
- self._target_path = os.path.realpath(target)
-
- if os.path.isdir(self._target_path):
- self._target_path = os.path.join(
- self._target_path, os.path.basename(self._source_path))
-
- @property
- def source_path(self):
- return self._source_path
-
- @property
- def target_path(self):
- return self._target_path
-
- @property
- def source_module_path(self):
- return _ModulePath(self._source_path)
-
- @property
- def target_module_path(self):
- return _ModulePath(self._target_path)
-
- def UpdateImportAndReferences(self, module, import_statement):
- """Update an import statement in a module and all its references..
-
- Args:
- module: The refactor.Module to update.
- import_statement: The refactor.Import to update.
-
- Returns:
- True if the import statement was updated, or False if the import statement
- needed no updating.
- """
- statement_path_parts = import_statement.path.split('.')
- source_path_parts = self.source_module_path.split('.')
- if source_path_parts != statement_path_parts[:len(source_path_parts)]:
- return False
-
- # Update import statement.
- old_name_parts = import_statement.name.split('.')
- new_name_parts = ([self.target_module_path] +
- statement_path_parts[len(source_path_parts):])
- import_statement.path = '.'.join(new_name_parts)
- new_name = import_statement.name
-
- # Update references.
- for reference in module.FindAll(refactor.Reference):
- reference_parts = reference.value.split('.')
- if old_name_parts != reference_parts[:len(old_name_parts)]:
- continue
-
- new_reference_parts = [new_name] + reference_parts[len(old_name_parts):]
- reference.value = '.'.join(new_reference_parts)
-
- return True
-
-
-def _BaseDir(module_path):
- if not os.path.isdir(module_path):
- module_path = os.path.dirname(module_path)
-
- while '__init__.py' in os.listdir(module_path):
- module_path = os.path.dirname(module_path)
-
- return module_path
-
-
-def _ModulePath(module_path):
- if os.path.split(module_path)[1] == '__init__.py':
- module_path = os.path.dirname(module_path)
- rel_path = os.path.relpath(module_path, _BaseDir(module_path))
- return os.path.splitext(rel_path)[0].replace(os.sep, '.')
« no previous file with comments | « tools/telemetry/catapult_base/refactor_util/__init__.py ('k') | tools/telemetry/catapult_base/test_data/foo.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698