diff --git a/rope/base/builtins.py b/rope/base/builtins.py index 9982b69ec..11390fa29 100644 --- a/rope/base/builtins.py +++ b/rope/base/builtins.py @@ -3,7 +3,13 @@ import io import rope.base.evaluate -from rope.base import ast, pynames, pyobjects, arguments, utils +from rope.base import ( + arguments, + ast, + pynames, + pyobjects, + utils, +) try: diff --git a/rope/base/oi/soi.py b/rope/base/oi/soi.py index 4886864bd..83fe937af 100644 --- a/rope/base/oi/soi.py +++ b/rope/base/oi/soi.py @@ -4,14 +4,18 @@ package. """ -import rope.base.builtins -import rope.base.pynames -import rope.base.pyobjects -from rope.base import arguments, evaluate, utils +import rope.base.builtins # Use full qualification for clarity. +from rope.base import ( + arguments, + evaluate, + pynames, + pyobjects, + utils, +) from rope.base.oi.type_hinting.factory import get_type_hinting_factory -_ignore_inferred = utils.ignore_exception(rope.base.pyobjects.IsBeingInferredError) +_ignore_inferred = utils.ignore_exception(pyobjects.IsBeingInferredError) @_ignore_inferred @@ -35,7 +39,7 @@ def infer_returned_object(pyfunction, args): ).make_return_provider() type_ = hint_return(pyfunction) if type_ is not None: - return rope.base.pyobjects.PyObject(type_) + return pyobjects.PyObject(type_) @_ignore_inferred @@ -56,9 +60,9 @@ def _handle_first_parameter(pyobject, parameters): if not parameters: if not pyobject.get_param_names(special_args=False): return - parameters.append(rope.base.pyobjects.get_unknown()) + parameters.append(pyobjects.get_unknown()) if kind == "method": - parameters[0] = rope.base.pyobjects.PyObject(pyobject.parent) + parameters[0] = pyobjects.PyObject(pyobject.parent) if kind == "classmethod": parameters[0] = pyobject.parent @@ -74,7 +78,7 @@ def infer_assigned_object(pyname): and result.get_name() == "NotImplementedType" ): break - elif result == rope.base.pyobjects.get_unknown(): + elif result == pyobjects.get_unknown(): break elif result is not None: return result @@ -84,7 +88,7 @@ def infer_assigned_object(pyname): ).make_assignment_provider() hinting_result = hint_assignment(pyname) if hinting_result is not None: - return rope.base.pyobjects.PyObject(hinting_result) + return pyobjects.PyObject(hinting_result) return result @@ -117,13 +121,13 @@ def _infer_returned(pyobject, args): if resulting_pyname is None: continue pyobject = resulting_pyname.get_object() - if pyobject == rope.base.pyobjects.get_unknown(): + if pyobject == pyobjects.get_unknown(): continue if not scope._is_generator(): return pyobject else: return rope.base.builtins.get_generator(pyobject) - except rope.base.pyobjects.IsBeingInferredError: + except pyobjects.IsBeingInferredError: pass @@ -134,9 +138,9 @@ def _parameter_objects(pyobject): for name in params: type_ = hint_param(pyobject, name) if type_ is not None: - result.append(rope.base.pyobjects.PyObject(type_)) + result.append(pyobjects.PyObject(type_)) else: - result.append(rope.base.pyobjects.get_unknown()) + result.append(pyobjects.get_unknown()) return result @@ -185,9 +189,7 @@ def _follow_pyname(assignment, pymodule, lineno=None): isinstance(result.get_type(), rope.base.builtins.Property) and holding_scope.get_kind() == "Class" ): - arg = rope.base.pynames.UnboundName( - rope.base.pyobjects.PyObject(holding_scope.pyobject) - ) + arg = pynames.UnboundName(pyobjects.PyObject(holding_scope.pyobject)) return pyname, result.get_type().get_property_object( arguments.ObjectArguments([arg]) ) @@ -208,7 +210,7 @@ def _follow_evaluations(assignment, pyname, pyobject): if new_pyname is not None: pyobject = new_pyname.get_object() if pyobject is not None and call: - if isinstance(pyobject, rope.base.pyobjects.AbstractFunction): + if isinstance(pyobject, pyobjects.AbstractFunction): args = arguments.ObjectArguments([pyname]) pyobject = pyobject.get_returned_object(args) else: @@ -216,7 +218,7 @@ def _follow_evaluations(assignment, pyname, pyobject): if pyobject is None: break if pyobject is not None and assignment.assign_type: - return rope.base.pyobjects.PyObject(pyobject) + return pyobjects.PyObject(pyobject) return pyobject diff --git a/rope/base/oi/transform.py b/rope/base/oi/transform.py index f3398b126..968e70b25 100644 --- a/rope/base/oi/transform.py +++ b/rope/base/oi/transform.py @@ -2,7 +2,7 @@ import os import re -import rope.base.builtins +import rope.base.builtins # Use full qualification for clarity. from rope.base import exceptions diff --git a/rope/base/oi/type_hinting/utils.py b/rope/base/oi/type_hinting/utils.py index 6c0ca416c..37a2568b6 100644 --- a/rope/base/oi/type_hinting/utils.py +++ b/rope/base/oi/type_hinting/utils.py @@ -1,9 +1,6 @@ import logging +from typing import Union, Optional -try: - from typing import Union, Optional -except ImportError: - pass import rope.base.utils as base_utils from rope.base import evaluate from rope.base.exceptions import AttributeNotFoundError diff --git a/rope/base/project.py b/rope/base/project.py index 8e7124c05..527ffcf33 100644 --- a/rope/base/project.py +++ b/rope/base/project.py @@ -3,12 +3,18 @@ import sys import warnings -import rope.base.fscommands -import rope.base.resourceobserver as resourceobserver -from rope.base import exceptions, history, pycore, taskhandle, utils +import rope.base.fscommands # Use full qualification for clarity. +from rope.base import ( + exceptions, + history, + pycore, + taskhandle, + utils, +) from rope.base.exceptions import ModuleNotFoundError from rope.base.prefs import Prefs, get_config from rope.base.resources import File, Folder, _ResourceMatcher +import rope.base.resourceobserver as resourceobserver try: import cPickle as pickle diff --git a/rope/base/pyscopes.py b/rope/base/pyscopes.py index 94d5b82e5..f3c093d1a 100644 --- a/rope/base/pyscopes.py +++ b/rope/base/pyscopes.py @@ -1,7 +1,11 @@ -import rope.base.builtins -import rope.base.codeanalyze -import rope.base.pynames -from rope.base import ast, exceptions, utils +import rope.base.builtins # Use full qualification for clarity. +from rope.base import ( + ast, + codeanalyze, + exceptions, + pynames, + utils, +) from rope.refactor import patchedast @@ -249,10 +253,7 @@ def get_kind(self): def invalidate_data(self): for pyname in self.get_names().values(): - if isinstance( - pyname, - (rope.base.pynames.AssignedName, rope.base.pynames.EvaluatedName), - ): + if isinstance(pyname, (pynames.AssignedName, pynames.EvaluatedName)): pyname.invalidate() @@ -272,7 +273,7 @@ def __init__(self, pymodule): self.pymodule = pymodule def get_indents(self, lineno): - return rope.base.codeanalyze.count_line_indents(self.lines.get_line(lineno)) + return codeanalyze.count_line_indents(self.lines.get_line(lineno)) def _get_scope_indents(self, scope): return self.get_indents(scope.get_start()) diff --git a/rope/contrib/codeassist.py b/rope/contrib/codeassist.py index 1c28e1883..32547891e 100644 --- a/rope/contrib/codeassist.py +++ b/rope/contrib/codeassist.py @@ -2,10 +2,9 @@ import sys import warnings -import rope.base.codeanalyze -import rope.base.evaluate from rope.base import ( builtins, + evaluate, exceptions, libutils, pynames, @@ -178,7 +177,7 @@ def mux(self, x): """ # Retrieve the PyName. pymod = project.get_pymodule(resource) - pyname = rope.base.evaluate.eval_location(pymod, offset) + pyname = evaluate.eval_location(pymod, offset) # Now get the location of the definition and its containing scope. defmod, lineno = pyname.get_definition_location() @@ -421,7 +420,7 @@ def __call__(self): def _dotted_completions(self, module_scope, holding_scope): result = {} - found_pyname = rope.base.evaluate.eval_str(holding_scope, self.expression) + found_pyname = evaluate.eval_str(holding_scope, self.expression) if found_pyname is not None: element = found_pyname.get_object() compl_scope = "attribute" @@ -511,7 +510,7 @@ def _keyword_parameters(self, pymodule, scope): function_parens = word_finder.find_parens_start_from_inside(offset - 1) primary = word_finder.get_primary_at(function_parens - 1) try: - function_pyname = rope.base.evaluate.eval_str(scope, primary) + function_pyname = evaluate.eval_str(scope, primary) except exceptions.BadIdentifierError: return {} if function_pyname is not None: diff --git a/rope/contrib/findit.py b/rope/contrib/findit.py index 5952c1ac8..89782953a 100644 --- a/rope/contrib/findit.py +++ b/rope/contrib/findit.py @@ -1,7 +1,10 @@ -import rope.base.codeanalyze -import rope.base.evaluate -import rope.base.pyobjects -from rope.base import exceptions, taskhandle, worder +from rope.base import ( + exceptions, + evaluate, + pyobjects, + taskhandle, + worder, +) from rope.contrib import fixsyntax from rope.refactor import occurrences @@ -26,7 +29,7 @@ def find_occurrences( """ name = worder.get_name_at(resource, offset) this_pymodule = project.get_pymodule(resource) - primary, pyname = rope.base.evaluate.eval_location2(this_pymodule, offset) + primary, pyname = evaluate.eval_location2(this_pymodule, offset) def is_match(occurrence): return unsure @@ -55,11 +58,11 @@ def find_implementations( """ name = worder.get_name_at(resource, offset) this_pymodule = project.get_pymodule(resource) - pyname = rope.base.evaluate.eval_location(this_pymodule, offset) + pyname = evaluate.eval_location(this_pymodule, offset) if pyname is not None: pyobject = pyname.get_object() if ( - not isinstance(pyobject, rope.base.pyobjects.PyFunction) + not isinstance(pyobject, pyobjects.PyFunction) or pyobject.get_kind() != "method" ): raise exceptions.BadIdentifierError("Not a method!") @@ -92,7 +95,7 @@ def find_definition(project, code, offset, resource=None, maxfixes=1): pyname = fixer.pyname_at(offset) if pyname is not None: module, lineno = pyname.get_definition_location() - name = rope.base.worder.Worder(code).get_word_at(offset) + name = worder.Worder(code).get_word_at(offset) if lineno is not None: start = module.lines.get_line_start(lineno) diff --git a/rope/contrib/fixsyntax.py b/rope/contrib/fixsyntax.py index 28c91bb4f..cd848ce1c 100644 --- a/rope/contrib/fixsyntax.py +++ b/rope/contrib/fixsyntax.py @@ -1,7 +1,7 @@ -import rope.base.codeanalyze -import rope.base.evaluate from rope.base import ( + codeanalyze, exceptions, + evaluate, libutils, utils, worder, @@ -59,13 +59,13 @@ def old_pyname(): expression = expression.replace("\\\n", " ").replace("\n", " ") lineno = self.code.count("\n", 0, offset) scope = pymodule.get_scope().get_inner_scope_for_line(lineno) - return rope.base.evaluate.eval_str(scope, expression) + return evaluate.eval_str(scope, expression) new_code = pymodule.source_code def new_pyname(): newoffset = self.commenter.transferred_offset(offset) - return rope.base.evaluate.eval_location(pymodule, newoffset) + return evaluate.eval_location(pymodule, newoffset) if new_code.startswith(self.code[: offset + 1]): return new_pyname() @@ -131,9 +131,7 @@ def _fix_incomplete_try_blocks(self, lineno, indents): last_indents = indents while block_start > 0: block_start = ( - rope.base.codeanalyze.get_block_start( - ArrayLinesAdapter(self.lines), block_start - ) + codeanalyze.get_block_start(ArrayLinesAdapter(self.lines), block_start) - 1 ) if self.lines[block_start].strip().startswith("try:"): @@ -188,4 +186,4 @@ def _logical_start(lines, lineno, check_prev=False): def _get_line_indents(line): - return rope.base.codeanalyze.count_line_indents(line) + return codeanalyze.count_line_indents(line) diff --git a/rope/contrib/generate.py b/rope/contrib/generate.py index c2c028c72..e1cadd99d 100644 --- a/rope/contrib/generate.py +++ b/rope/contrib/generate.py @@ -1,7 +1,7 @@ -import rope.base.evaluate from rope.base import ( change, codeanalyze, + evaluate, exceptions, libutils, pynames, @@ -210,7 +210,7 @@ def __init__(self, pycore, resource, offset, goal_resource=None): self.offset = offset self.goal_resource = goal_resource self.source_pymodule = self.pycore.project.get_pymodule(resource) - finder = rope.base.evaluate.ScopeNameFinder(self.source_pymodule) + finder = evaluate.ScopeNameFinder(self.source_pymodule) self.primary, self.pyname = finder.get_primary_and_pyname_at(offset) self._init_fields() diff --git a/rope/refactor/functionutils.py b/rope/refactor/functionutils.py index 2d6b0a341..0be3f22c7 100644 --- a/rope/refactor/functionutils.py +++ b/rope/refactor/functionutils.py @@ -1,7 +1,5 @@ -import rope.base.exceptions -import rope.base.pyobjects from rope.base.builtins import Lambda -from rope.base import worder +from rope.base import pyobjects, worder class DefinitionInfo: @@ -136,29 +134,23 @@ def read(primary, pyname, definition_info, code): def _is_method_call(primary, pyname): return ( primary is not None - and isinstance(primary.get_object().get_type(), rope.base.pyobjects.PyClass) + and isinstance(primary.get_object().get_type(), pyobjects.PyClass) and CallInfo._is_method(pyname) ) @staticmethod def _is_class(pyname): - return pyname is not None and isinstance( - pyname.get_object(), rope.base.pyobjects.PyClass - ) + return pyname is not None and isinstance(pyname.get_object(), pyobjects.PyClass) @staticmethod def _is_method(pyname): - if pyname is not None and isinstance( - pyname.get_object(), rope.base.pyobjects.PyFunction - ): + if pyname is not None and isinstance(pyname.get_object(), pyobjects.PyFunction): return pyname.get_object().get_kind() == "method" return False @staticmethod def _is_classmethod(pyname): - if pyname is not None and isinstance( - pyname.get_object(), rope.base.pyobjects.PyFunction - ): + if pyname is not None and isinstance(pyname.get_object(), pyobjects.PyFunction): return pyname.get_object().get_kind() == "classmethod" return False diff --git a/rope/refactor/importutils/actions.py b/rope/refactor/importutils/actions.py index e78a8144f..ff408085b 100644 --- a/rope/refactor/importutils/actions.py +++ b/rope/refactor/importutils/actions.py @@ -1,5 +1,9 @@ -from rope.base import libutils -from rope.base import pyobjects, exceptions, stdmods +from rope.base import ( + libutils, + pyobjects, + exceptions, + stdmods, +) from rope.refactor import occurrences from rope.refactor.importutils import importinfo diff --git a/rope/refactor/importutils/module_imports.py b/rope/refactor/importutils/module_imports.py index e448528c0..cfeb26dc7 100644 --- a/rope/refactor/importutils/module_imports.py +++ b/rope/refactor/importutils/module_imports.py @@ -1,6 +1,12 @@ from typing import Union, List -from rope.base import ast, exceptions, pynames, pynamesdef, utils +from rope.base import ( + ast, + exceptions, + pynames, + pynamesdef, + utils, +) from rope.refactor.importutils import actions, importinfo diff --git a/rope/refactor/inline.py b/rope/refactor/inline.py index 001a33a28..cfc14e5af 100644 --- a/rope/refactor/inline.py +++ b/rope/refactor/inline.py @@ -19,11 +19,11 @@ import re from typing import List -import rope.base.exceptions -import rope.refactor.functionutils +import rope.base.builtins # Use fully qualified names for clarity. from rope.base import ( codeanalyze, evaluate, + exceptions, libutils, pynames, pyobjects, @@ -33,12 +33,13 @@ ) from rope.base.change import ChangeSet, ChangeContents from rope.refactor import ( + change_signature, + functionutils, + importutils, + move, occurrences, rename, sourceutils, - importutils, - move, - change_signature, ) @@ -62,7 +63,7 @@ def create_inline(project, resource, offset): "a method, local variable or parameter." ) if pyname is None: - raise rope.base.exceptions.RefactoringError(message) + raise exceptions.RefactoringError(message) if isinstance(pyname, pynames.ImportedName): pyname = pyname._get_imported_pyname() if isinstance(pyname, pynames.AssignedName): @@ -72,7 +73,7 @@ def create_inline(project, resource, offset): if isinstance(pyname.get_object(), pyobjects.PyFunction): return InlineMethod(project, resource, offset) else: - raise rope.base.exceptions.RefactoringError(message) + raise exceptions.RefactoringError(message) class _Inliner: @@ -245,7 +246,7 @@ def __init__(self, *args, **kwds): def _check_exceptional_conditions(self): if len(self.pyname.assignments) != 1: - raise rope.base.exceptions.RefactoringError( + raise exceptions.RefactoringError( "Local variable should be assigned once for inlining." ) @@ -392,7 +393,7 @@ def __init__(self, project, pyfunction, body=None): self.body = sourceutils.get_body(self.pyfunction) def _get_definition_info(self): - return rope.refactor.functionutils.DefinitionInfo.read(self.pyfunction) + return functionutils.DefinitionInfo.read(self.pyfunction) def _get_definition_params(self): definition_info = self.definition_info @@ -401,7 +402,7 @@ def _get_definition_params(self): definition_info.args_arg is not None or definition_info.keywords_arg is not None ): - raise rope.base.exceptions.RefactoringError( + raise exceptions.RefactoringError( "Cannot inline functions with list and keyword arguments." ) if self.pyfunction.get_kind() == "classmethod": @@ -420,13 +421,11 @@ def get_definition(self, primary, pyname, call, host_vars=[], returns=False): def _calculate_header(self, primary, pyname, call): # A header is created which initializes parameters # to the values passed to the function. - call_info = rope.refactor.functionutils.CallInfo.read( + call_info = functionutils.CallInfo.read( primary, pyname, self.definition_info, call ) paramdict = self.definition_params - mapping = rope.refactor.functionutils.ArgumentMapping( - self.definition_info, call_info - ) + mapping = functionutils.ArgumentMapping(self.definition_info, call_info) for param_name, value in mapping.param_dict.items(): paramdict[param_name] = value header = "" @@ -507,7 +506,7 @@ def _check_nothing_after_return(self, source, offset): logical_lines = codeanalyze.LogicalLineFinder(lines) lineno = logical_lines.logical_line_in(lineno)[1] if source[lines.get_line_end(lineno) : len(source)].strip() != "": - raise rope.base.exceptions.RefactoringError( + raise exceptions.RefactoringError( "Cannot inline functions with statements " + "after return statement." ) @@ -542,7 +541,7 @@ def __init__(self, project, resource, definition_generator, aim_offset=None): def occurred_inside_skip(self, change_collector, occurrence): if not occurrence.is_defined(): - raise rope.base.exceptions.RefactoringError( + raise exceptions.RefactoringError( "Cannot inline functions that reference themselves" ) @@ -553,7 +552,7 @@ def occurred_outside_skip(self, change_collector, occurrence): return # the function is referenced outside an import statement if not occurrence.is_called(): - raise rope.base.exceptions.RefactoringError( + raise exceptions.RefactoringError( "Reference to inlining function other than function call" " in " % (self.resource.path, start) ) @@ -655,7 +654,7 @@ def _getvardef(pymodule, pyname): [lines.get_line(n) for n in range(start, end + 1)], ) if assignment.levels: - raise rope.base.exceptions.RefactoringError("Cannot inline tuple assignments.") + raise exceptions.RefactoringError("Cannot inline tuple assignments.") definition = definition_with_assignment[ definition_with_assignment.index("=") + 1 : ].strip() diff --git a/rope/refactor/introduce_factory.py b/rope/refactor/introduce_factory.py index a528b97d0..600075e68 100644 --- a/rope/refactor/introduce_factory.py +++ b/rope/refactor/introduce_factory.py @@ -1,6 +1,10 @@ -import rope.base.exceptions -import rope.base.pyobjects -from rope.base import evaluate, libutils, taskhandle +from rope.base import ( + evaluate, + exceptions, + libutils, + pyobjects, + taskhandle, +) from rope.base.change import ChangeSet, ChangeContents from rope.refactor import rename, occurrences, sourceutils, importutils @@ -13,9 +17,9 @@ def __init__(self, project, resource, offset): this_pymodule = self.project.get_pymodule(resource) self.old_pyname = evaluate.eval_location(this_pymodule, offset) if self.old_pyname is None or not isinstance( - self.old_pyname.get_object(), rope.base.pyobjects.PyClass + self.old_pyname.get_object(), pyobjects.PyClass ): - raise rope.base.exceptions.RefactoringError( + raise exceptions.RefactoringError( "Introduce factory should be performed on a class." ) self.old_name = self.old_pyname.get_object().get_name() @@ -106,7 +110,7 @@ def _get_factory_method(self, lines, class_scope, factory_name, global_): unit_indents = " " * sourceutils.get_indent(self.project) if global_: if self._get_scope_indents(lines, class_scope) > 0: - raise rope.base.exceptions.RefactoringError( + raise exceptions.RefactoringError( "Cannot make global factory method for nested classes." ) return "\ndef {}(*args, **kwds):\n{}return {}(*args, **kwds)\n".format( diff --git a/rope/refactor/introduce_parameter.py b/rope/refactor/introduce_parameter.py index df7310969..7a9e6da9b 100644 --- a/rope/refactor/introduce_parameter.py +++ b/rope/refactor/introduce_parameter.py @@ -1,8 +1,8 @@ -import rope.base.change +import rope.base.change # Use fully qualified names for clarity. from rope.base import ( codeanalyze, - exceptions, evaluate, + exceptions, worder, ) from rope.refactor import functionutils, sourceutils, occurrences diff --git a/rope/refactor/similarfinder.py b/rope/refactor/similarfinder.py index 2a672802d..c9254a578 100644 --- a/rope/refactor/similarfinder.py +++ b/rope/refactor/similarfinder.py @@ -1,10 +1,15 @@ """This module can be used for finding similar code""" import re -import rope.refactor.wildcards -from rope.base import libutils, codeanalyze, exceptions, ast, builtins -from rope.refactor import patchedast, wildcards - +import rope.base.builtins # Use full qualification for clarity. +import rope.refactor.wildcards # Use full qualification for clarity. +from rope.base import ( + ast, + codeanalyze, + exceptions, + libutils, +) +from rope.refactor import patchedast from rope.refactor.patchedast import MismatchedTokenError @@ -61,7 +66,7 @@ def _does_match(self, node, name): if isinstance(arg, (tuple, list)): kind = arg[0] arg = arg[1] - suspect = wildcards.Suspect(self.pymodule, node, name) + suspect = rope.refactor.wildcards.Suspect(self.pymodule, node, name) return self.wildcards[kind].matches(suspect, arg) @@ -361,7 +366,9 @@ def does_match(node, name): def _pydefined_to_str(pydefined): address = [] - if isinstance(pydefined, (builtins.BuiltinClass, builtins.BuiltinFunction)): + if isinstance( + pydefined, (rope.base.builtins.BuiltinClass, rope.base.builtins.BuiltinFunction) + ): return "__builtins__." + pydefined.get_name() else: while pydefined.parent is not None: diff --git a/rope/refactor/usefunction.py b/rope/refactor/usefunction.py index 656175abb..255e33fe8 100644 --- a/rope/refactor/usefunction.py +++ b/rope/refactor/usefunction.py @@ -1,5 +1,13 @@ -from rope.base import change, taskhandle, evaluate, exceptions, pyobjects, pynames, ast -from rope.base import libutils +from rope.base import ( + ast, + change, + evaluate, + exceptions, + libutils, + pynames, + pyobjects, + taskhandle, +) from rope.refactor import restructure, sourceutils, similarfinder diff --git a/ropetest/codeanalyzetest.py b/ropetest/codeanalyzetest.py index a1c52c26a..44aba8de5 100644 --- a/ropetest/codeanalyzetest.py +++ b/ropetest/codeanalyzetest.py @@ -1,10 +1,13 @@ from textwrap import dedent - import unittest import rope.base.evaluate -from rope.base import libutils -from rope.base import exceptions, worder, codeanalyze +from rope.base import ( + codeanalyze, + exceptions, + libutils, + worder, +) from rope.base.codeanalyze import SourceLinesAdapter, LogicalLineFinder, get_block_start from ropetest import testutils diff --git a/ropetest/historytest.py b/ropetest/historytest.py index 0f39fa94f..cea93946a 100644 --- a/ropetest/historytest.py +++ b/ropetest/historytest.py @@ -1,8 +1,8 @@ import unittest -import rope.base.history +import rope.base.change # Use fully-qualified names for clarity. +import rope.base.history # Use fully-qualified names for clarity. from rope.base import exceptions -import rope.base.change from ropetest import testutils diff --git a/ropetest/objectinfertest.py b/ropetest/objectinfertest.py index 4a3ae9cde..713ad7f4d 100644 --- a/ropetest/objectinfertest.py +++ b/ropetest/objectinfertest.py @@ -1,9 +1,7 @@ from textwrap import dedent - import unittest -import rope.base.project -import rope.base.builtins +import rope.base.builtins # Use fully-qualified names for clarity. from rope.base import libutils from ropetest import testutils diff --git a/ropetest/pycoretest.py b/ropetest/pycoretest.py index 7a0a7833b..fc6db7612 100644 --- a/ropetest/pycoretest.py +++ b/ropetest/pycoretest.py @@ -1,12 +1,9 @@ import sys from textwrap import dedent - -from rope.base.builtins import File, BuiltinClass - import unittest -from rope.base import exceptions -from rope.base import libutils +from rope.base import exceptions, libutils +from rope.base.builtins import File, BuiltinClass from rope.base.pycore import _TextChangeDetector from rope.base.pyobjects import get_base_type, AbstractFunction from rope.base.pynamesdef import AssignedName