Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion rope/base/arguments.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ def _is_method_call(primary, pyfunction):
pyobject = primary.get_object()
if (
isinstance(pyobject.get_type(), rope.base.pyobjects.PyClass)
and isinstance(pyfunction, rope.base.pyobjects.PyFunction)
and isinstance(pyfunction, rope.base.pyobjects.PyFunctionStub)
and isinstance(pyfunction.parent, rope.base.pyobjects.PyClass)
):
return True
Expand Down
3 changes: 2 additions & 1 deletion rope/base/builtins.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
arguments,
ast,
pynames,
pynamesdef,
pyobjects,
utils,
)
Expand Down Expand Up @@ -172,7 +173,7 @@ def __init__(self, argnames, args):
self.args = args

def _get_scope_and_pyname(self, pyname):
if pyname is not None and isinstance(pyname, pynames.AssignedName):
if pyname is not None and isinstance(pyname, pynamesdef.AssignedName):
pymodule, lineno = pyname.get_definition_location()
if pymodule is None:
return None, None
Expand Down
5 changes: 3 additions & 2 deletions rope/base/evaluate.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
ast,
nameanalyze,
exceptions,
pynamesdef,
pyobjects,
pyobjectsdef,
worder,
Expand Down Expand Up @@ -102,7 +103,7 @@ def get_primary_and_pyname_at(
parameter_name = pyobject.get_parameters().get(keyword_name, None)
return (None, parameter_name)
elif isinstance(pyobject, pyobjects.AbstractFunction):
parameter_name = rope.base.pynames.ParameterName()
parameter_name = rope.base.pynames.ParameterNameStub()
return (None, parameter_name)
# class body
if self._is_defined_in_class_body(holding_scope, offset, lineno):
Expand Down Expand Up @@ -367,7 +368,7 @@ def _get_evaluated_names(targets, assigned, module, evaluation, lineno):
for name, levels in nameanalyze.get_name_levels(targets):
assignment = rope.base.pynames.AssignmentValue(assigned, levels, evaluation)
# XXX: this module should not access `rope.base.pynamesdef`!
pyname = rope.base.pynamesdef.AssignedName(lineno, module)
pyname = pynamesdef.AssignedName(lineno, module)
pyname.assignments.append(assignment)
result[name] = pyname
return result
2 changes: 1 addition & 1 deletion rope/base/oi/soa.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def _args_with_self(self, primary, self_pyname, pyfunction, node):
return arguments.MixedArguments(self_pyname, base_args, self.scope)

def _call(self, pyfunction, args):
if isinstance(pyfunction, pyobjects.PyFunction):
if isinstance(pyfunction, pyobjects.PyFunctionStub):
if self.follow is not None:
before = self._parameter_objects(pyfunction)
self.pycore.object_info.function_called(
Expand Down
2 changes: 1 addition & 1 deletion rope/base/oi/transform.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ def defined_to_pyobject(self, textual):
result = self._function_to_pyobject(textual)
else:
result = self._class_to_pyobject(textual)
if not isinstance(result, rope.base.pyobjects.PyModule):
if not isinstance(result, rope.base.pyobjects.PyModuleStub):
return result

def _find_occurrence(self, name, source):
Expand Down
6 changes: 3 additions & 3 deletions rope/base/oi/type_hinting/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import rope.base.utils as base_utils
from rope.base import evaluate
from rope.base.exceptions import AttributeNotFoundError
from rope.base.pyobjects import PyClass, PyDefinedObject, PyFunction, PyObject
from rope.base.pyobjects import PyClass, PyDefinedObject, PyFunctionStub, PyObject


def get_super_func(pyfunc):
Expand All @@ -18,7 +18,7 @@ def get_super_func(pyfunc):
except AttributeNotFoundError:
pass
else:
if isinstance(superfunc, PyFunction):
if isinstance(superfunc, PyFunctionStub):
return superfunc


Expand Down Expand Up @@ -48,7 +48,7 @@ def get_class_with_attr_name(pyname):
pyobject = holding_scope.pyobject
if isinstance(pyobject, PyClass):
pyclass = pyobject
elif isinstance(pyobject, PyFunction) and isinstance(pyobject.parent, PyClass):
elif isinstance(pyobject, PyFunctionStub) and isinstance(pyobject.parent, PyClass):
pyclass = pyobject.parent
else:
return
Expand Down
4 changes: 2 additions & 2 deletions rope/base/pynames.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def get_definition_location(self):
return (self.pyobject.get_module(), lineno)


class AssignedName(PyName):
class AssignedNameStub(PyName):
"""Only a placeholder"""


Expand Down Expand Up @@ -99,7 +99,7 @@ def invalidate(self):
self.pyobject.set(None)


class ParameterName(PyName):
class ParameterNameStub(PyName):
"""Only a placeholder"""


Expand Down
16 changes: 7 additions & 9 deletions rope/base/pynamesdef.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import rope.base.oi.soi
from rope.base import pynames
from rope.base.pynames import *
import rope.base
from rope.base import pynames, utils
from rope.base.pynames import _get_concluded_data, _Inferred


class AssignedName(pynames.AssignedName):
class AssignedName(pynames.AssignedNameStub):
def __init__(self, lineno=None, module=None, pyobject=None):
self.lineno = lineno
self.module = module
self.assignments = []
self.pyobject = _Inferred(
self._get_inferred, pynames._get_concluded_data(module)
self._get_inferred,
_get_concluded_data(module),
)
self.pyobject.set(pyobject)

Expand All @@ -35,7 +36,7 @@ def invalidate(self):
self.pyobject.set(None)


class ParameterName(pynames.ParameterName):
class ParameterName(pynames.ParameterNameStub):
def __init__(self, pyfunction, index):
self.pyfunction = pyfunction
self.index = index
Expand All @@ -52,6 +53,3 @@ def get_objects(self):

def get_definition_location(self):
return (self.pyfunction.get_module(), self.pyfunction.get_ast().lineno)


_Inferred = pynames._Inferred
8 changes: 4 additions & 4 deletions rope/base/pyobjects.py
Original file line number Diff line number Diff line change
Expand Up @@ -258,11 +258,11 @@ def _create_scope(self):
pass


class PyFunction(PyDefinedObject, AbstractFunction):
class PyFunctionStub(PyDefinedObject, AbstractFunction):
"""Only a placeholder"""


class PyComprehension(PyDefinedObject, PyObject):
class PyComprehensionBase(PyDefinedObject, PyObject):
"""Only a placeholder"""

def get_name(self):
Expand Down Expand Up @@ -316,11 +316,11 @@ def get_resource(self):
return self.resource


class PyModule(_PyModule):
class PyModuleStub(_PyModule):
"""Only a placeholder"""


class PyPackage(_PyModule):
class PyPackageStub(_PyModule):
"""Only a placeholder"""


Expand Down
47 changes: 24 additions & 23 deletions rope/base/pyobjectsdef.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import rope.base.oi.soi
import rope.base.pyscopes
from rope.base import (
pynames,
pynamesdef,
exceptions,
ast,
Expand All @@ -16,15 +17,15 @@
)


class PyFunction(pyobjects.PyFunction):
class PyFunction(pyobjects.PyFunctionStub):
def __init__(self, pycore, ast_node, parent):
rope.base.pyobjects.AbstractFunction.__init__(self)
rope.base.pyobjects.PyDefinedObject.__init__(self, pycore, ast_node, parent)
self.arguments = self.ast_node.args
self.parameter_pyobjects = pynamesdef._Inferred(
self.parameter_pyobjects = pynames._Inferred(
self._infer_parameters, self.get_module()._get_concluded_data()
)
self.returned = pynamesdef._Inferred(self._infer_returned)
self.returned = pynames._Inferred(self._infer_returned)
self.parameter_pynames = None

def _create_structural_attributes(self):
Expand Down Expand Up @@ -111,7 +112,7 @@ def decorators(self):
return getattr(self.ast_node, "decorators", None)


class PyComprehension(pyobjects.PyComprehension):
class PyComprehension(pyobjects.PyComprehensionBase):
def __init__(self, pycore, ast_node, parent):
self.visitor_class = _ComprehensionVisitor
rope.base.pyobjects.PyObject.__init__(self, type_="Comp")
Expand Down Expand Up @@ -164,7 +165,7 @@ def _create_scope(self):
return rope.base.pyscopes.ClassScope(self.pycore, self)


class PyModule(pyobjects.PyModule):
class PyModule(pyobjects.PyModuleStub):
def __init__(self, pycore, source=None, resource=None, force_errors=False):
ignore = pycore.project.prefs.get("ignore_syntax_errors", False)
syntax_errors = force_errors or not ignore
Expand Down Expand Up @@ -230,7 +231,7 @@ def get_name(self):
return rope.base.libutils.modname(self.resource) if self.resource else ""


class PyPackage(pyobjects.PyPackage):
class PyPackage(pyobjects.PyPackageStub):
def __init__(self, pycore, resource=None, force_errors=False):
self.resource = resource
init_dot_py = self._get_init_dot_py()
Expand All @@ -251,7 +252,7 @@ def _create_structural_attributes(self):
if self.resource is None:
return result
for name, resource in self._get_child_resources().items():
result[name] = pynamesdef.ImportedModule(self, resource=resource)
result[name] = pynames.ImportedModule(self, resource=resource)
return result

def _create_concluded_attributes(self):
Expand Down Expand Up @@ -307,7 +308,7 @@ def _assigned(self, name, assignment=None):
self.scope_visitor._assigned(name, assignment)

def _Name(self, node):
assignment = pynamesdef.AssignmentValue(
assignment = pynames.AssignmentValue(
self.assigned_ast, assign_type=True, type_hint=self.type_hint
)
self._assigned(node.id, assignment)
Expand All @@ -317,7 +318,7 @@ def _Tuple(self, node):
for name, levels in names:
assignment = None
if self.assigned_ast is not None:
assignment = pynamesdef.AssignmentValue(self.assigned_ast, levels)
assignment = pynames.AssignmentValue(self.assigned_ast, levels)
self._assigned(name, assignment)

def _Annotation(self, node):
Expand Down Expand Up @@ -377,15 +378,15 @@ def _assigned(self, name, assignment=None):
def _Name(self, node):
assignment = None
if self.assigned_ast is not None:
assignment = pynamesdef.AssignmentValue(self.assigned_ast)
assignment = pynames.AssignmentValue(self.assigned_ast)
self._assigned(node.id, assignment)

def _Tuple(self, node):
names = nameanalyze.get_name_levels(node)
for name, levels in names:
assignment = None
if self.assigned_ast is not None:
assignment = pynamesdef.AssignmentValue(self.assigned_ast, levels)
assignment = pynames.AssignmentValue(self.assigned_ast, levels)
self._assigned(name, assignment)

def _Attribute(self, node):
Expand Down Expand Up @@ -414,7 +415,7 @@ def get_module(self):

def _ClassDef(self, node):
pyclass = PyClass(self.pycore, node, self.owner_object)
self.names[node.name] = pynamesdef.DefinedName(pyclass)
self.names[node.name] = pynames.DefinedName(pyclass)
self.defineds.append(pyclass)

def _FunctionDef(self, node):
Expand All @@ -423,7 +424,7 @@ def _FunctionDef(self, node):
if isinstance(decorator, ast.Name) and decorator.id == "property":
if isinstance(self, _ClassVisitor):
type_ = rope.base.builtins.Property(pyfunction)
arg = pynamesdef.UnboundName(
arg = pynames.UnboundName(
rope.base.pyobjects.PyObject(self.owner_object)
)

Expand All @@ -434,12 +435,12 @@ def _eval(type_=type_, arg=arg):

lineno = utils.guess_def_lineno(self.get_module(), node)

self.names[node.name] = pynamesdef.EvaluatedName(
self.names[node.name] = pynames.EvaluatedName(
_eval, module=self.get_module(), lineno=lineno
)
break
else:
self.names[node.name] = pynamesdef.DefinedName(pyfunction)
self.names[node.name] = pynames.DefinedName(pyfunction)
self.defineds.append(pyfunction)

def _AsyncFunctionDef(self, node):
Expand Down Expand Up @@ -476,12 +477,12 @@ def _update_evaluated(
):
result = {}
if isinstance(targets, str):
assignment = pynamesdef.AssignmentValue(assigned, [], evaluation, eval_type)
assignment = pynames.AssignmentValue(assigned, [], evaluation, eval_type)
self._assigned(targets, assignment)
else:
names = nameanalyze.get_name_levels(targets)
for name, levels in names:
assignment = pynamesdef.AssignmentValue(
assignment = pynames.AssignmentValue(
assigned, levels, evaluation, eval_type
)
self._assigned(name, assignment)
Expand Down Expand Up @@ -519,19 +520,19 @@ def _Import(self, node):
alias = import_pair.asname
first_package = module_name.split(".")[0]
if alias is not None:
imported = pynamesdef.ImportedModule(self.get_module(), module_name)
imported = pynames.ImportedModule(self.get_module(), module_name)
if not self._is_ignored_import(imported):
self.names[alias] = imported
else:
imported = pynamesdef.ImportedModule(self.get_module(), first_package)
imported = pynames.ImportedModule(self.get_module(), first_package)
if not self._is_ignored_import(imported):
self.names[first_package] = imported

def _ImportFrom(self, node):
level = 0
if node.level:
level = node.level
imported_module = pynamesdef.ImportedModule(
imported_module = pynames.ImportedModule(
self.get_module(),
node.module or "",
level,
Expand All @@ -547,7 +548,7 @@ def _ImportFrom(self, node):
alias = imported_name.asname
if alias is not None:
imported = alias
self.names[imported] = pynamesdef.ImportedName(
self.names[imported] = pynames.ImportedName(
imported_module, imported_name.name
)

Expand Down Expand Up @@ -636,7 +637,7 @@ def _Attribute(self, node):
pyname = self.scope_visitor.names[node.attr]
if isinstance(pyname, pynamesdef.AssignedName):
pyname.assignments.append(
pynamesdef.AssignmentValue(self.assigned_ast)
pynames.AssignmentValue(self.assigned_ast)
)

def _Tuple(self, node):
Expand Down Expand Up @@ -670,5 +671,5 @@ def get_names(self):
imported = self.imported_module.get_object()
for name in imported:
if not name.startswith("_"):
result[name] = pynamesdef.ImportedName(self.imported_module, name)
result[name] = pynames.ImportedName(self.imported_module, name)
return result
3 changes: 2 additions & 1 deletion rope/base/pyscopes.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
codeanalyze,
exceptions,
pynames,
pynamesdef,
utils,
)
from rope.refactor import patchedast
Expand Down Expand Up @@ -253,7 +254,7 @@ def get_kind(self):

def invalidate_data(self):
for pyname in self.get_names().values():
if isinstance(pyname, (pynames.AssignedName, pynames.EvaluatedName)):
if isinstance(pyname, (pynamesdef.AssignedName, pynames.EvaluatedName)):
pyname.invalidate()


Expand Down
Loading