Path: blob/master/elisp/emacs-for-python/rope-dist/rope/base/pynamesdef.py
1439 views
import rope.base.oi.soi1from rope.base import pynames2from rope.base.pynames import *345class AssignedName(pynames.AssignedName):67def __init__(self, lineno=None, module=None, pyobject=None):8self.lineno = lineno9self.module = module10self.assignments = []11self.pyobject = _Inferred(self._get_inferred,12pynames._get_concluded_data(module))13self.pyobject.set(pyobject)1415@utils.prevent_recursion(lambda: None)16def _get_inferred(self):17if self.module is not None:18return rope.base.oi.soi.infer_assigned_object(self)1920def get_object(self):21return self.pyobject.get()2223def get_definition_location(self):24"""Returns a (module, lineno) tuple"""25if self.lineno is None and self.assignments:26self.lineno = self.assignments[0].get_lineno()27return (self.module, self.lineno)2829def invalidate(self):30"""Forget the `PyObject` this `PyName` holds"""31self.pyobject.set(None)323334class ParameterName(pynames.ParameterName):3536def __init__(self, pyfunction, index):37self.pyfunction = pyfunction38self.index = index3940def get_object(self):41result = self.pyfunction.get_parameter(self.index)42if result is None:43result = rope.base.pyobjects.get_unknown()44return result4546def get_objects(self):47"""Returns the list of objects passed as this parameter"""48return rope.base.oi.soi.get_passed_objects(49self.pyfunction, self.index)5051def get_definition_location(self):52return (self.pyfunction.get_module(), self.pyfunction.get_ast().lineno)5354_Inferred = pynames._Inferred555657