Skip to content

Commit

Permalink
Merge pull request #584 from edreamleo/ekr-clean2
Browse files Browse the repository at this point in the history
PR: Second round: clean imports and qualifiers
  • Loading branch information
lieryan committed Dec 10, 2022
2 parents a8fb5bd + 81e49d1 commit ae7f56d
Show file tree
Hide file tree
Showing 22 changed files with 153 additions and 123 deletions.
8 changes: 7 additions & 1 deletion rope/base/builtins.py
Expand Up @@ -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:
Expand Down
40 changes: 21 additions & 19 deletions rope/base/oi/soi.py
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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

Expand All @@ -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
Expand All @@ -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


Expand Down Expand Up @@ -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


Expand All @@ -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


Expand Down Expand Up @@ -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])
)
Expand All @@ -208,15 +210,15 @@ 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:
pyobject = None
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


Expand Down
2 changes: 1 addition & 1 deletion rope/base/oi/transform.py
Expand Up @@ -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


Expand Down
5 changes: 1 addition & 4 deletions 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
Expand Down
12 changes: 9 additions & 3 deletions rope/base/project.py
Expand Up @@ -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
Expand Down
19 changes: 10 additions & 9 deletions 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


Expand Down Expand Up @@ -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()


Expand All @@ -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())
Expand Down
9 changes: 4 additions & 5 deletions rope/contrib/codeassist.py
Expand Up @@ -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,
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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:
Expand Down
19 changes: 11 additions & 8 deletions 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

Expand All @@ -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
Expand Down Expand Up @@ -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!")
Expand Down Expand Up @@ -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)

Expand Down
14 changes: 6 additions & 8 deletions 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,
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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:"):
Expand Down Expand Up @@ -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)
4 changes: 2 additions & 2 deletions rope/contrib/generate.py
@@ -1,7 +1,7 @@
import rope.base.evaluate
from rope.base import (
change,
codeanalyze,
evaluate,
exceptions,
libutils,
pynames,
Expand Down Expand Up @@ -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()

Expand Down

0 comments on commit ae7f56d

Please sign in to comment.