forked from VimPlug/jedi
builtins shouldn't be unique if called by compiled.create
This commit is contained in:
@@ -45,6 +45,9 @@ class CompiledObject(Base):
|
|||||||
self.obj.__call__
|
self.obj.__call__
|
||||||
return actual
|
return actual
|
||||||
|
|
||||||
|
def py__mro__(self, evaluator):
|
||||||
|
return tuple(create(evaluator, cls) for cls in self.obj.__mro__)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def doc(self):
|
def doc(self):
|
||||||
return inspect.getdoc(self.obj) or ''
|
return inspect.getdoc(self.obj) or ''
|
||||||
@@ -432,4 +435,10 @@ def create(evaluator, obj, parent=builtin, module=None):
|
|||||||
faked.parent = parent
|
faked.parent = parent
|
||||||
return faked
|
return faked
|
||||||
|
|
||||||
|
try:
|
||||||
|
if obj.__module__ in ('builtins', '__builtin__'):
|
||||||
|
return builtin.get_by_name(obj.__name__)
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
|
|
||||||
return CompiledObject(obj, parent)
|
return CompiledObject(obj, parent)
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ from jedi.evaluate import iterable
|
|||||||
from jedi.evaluate import docstrings
|
from jedi.evaluate import docstrings
|
||||||
from jedi.evaluate import helpers
|
from jedi.evaluate import helpers
|
||||||
from jedi.evaluate import param
|
from jedi.evaluate import param
|
||||||
from jedi.evaluate import imports
|
|
||||||
|
|
||||||
|
|
||||||
class Executed(pr.IsScope):
|
class Executed(pr.IsScope):
|
||||||
@@ -280,10 +279,10 @@ class Class(use_metaclass(CachedMetaClass, pr.IsScope)):
|
|||||||
self.base = base
|
self.base = base
|
||||||
|
|
||||||
@memoize_default(default=())
|
@memoize_default(default=())
|
||||||
def py_mro(self):
|
def py__mro__(self, evaluator):
|
||||||
def add(cls):
|
def add(cls):
|
||||||
if cls not in mro:
|
if cls not in mro:
|
||||||
mro.add(cls)
|
mro.append(cls)
|
||||||
|
|
||||||
mro = [self]
|
mro = [self]
|
||||||
# TODO Do a proper mro resolution. Currently we are just listing
|
# TODO Do a proper mro resolution. Currently we are just listing
|
||||||
@@ -292,9 +291,9 @@ class Class(use_metaclass(CachedMetaClass, pr.IsScope)):
|
|||||||
# TODO detect for TypeError: duplicate base class str,
|
# TODO detect for TypeError: duplicate base class str,
|
||||||
# e.g. `class X(str, str): pass`
|
# e.g. `class X(str, str): pass`
|
||||||
add(cls)
|
add(cls)
|
||||||
for cls_new in cls.mro():
|
for cls_new in cls.py__mro__(evaluator):
|
||||||
add(cls_new)
|
add(cls_new)
|
||||||
return mro
|
return tuple(mro)
|
||||||
|
|
||||||
@memoize_default(default=())
|
@memoize_default(default=())
|
||||||
def py_bases(self):
|
def py_bases(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user