mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-18 03:25:55 +08:00
refactor py_base to py__bases__, because that's the general naming schema
This commit is contained in:
@@ -48,6 +48,9 @@ class CompiledObject(Base):
|
|||||||
def py__mro__(self, evaluator):
|
def py__mro__(self, evaluator):
|
||||||
return tuple(create(evaluator, cls) for cls in self.obj.__mro__)
|
return tuple(create(evaluator, cls) for cls in self.obj.__mro__)
|
||||||
|
|
||||||
|
def py__bases__(self, evaluator):
|
||||||
|
return tuple(create(evaluator, cls) for cls in self.obj.__bases__)
|
||||||
|
|
||||||
def py__bool__(self):
|
def py__bool__(self):
|
||||||
return bool(self.obj)
|
return bool(self.obj)
|
||||||
|
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ class Instance(use_metaclass(CachedMetaClass, Executed)):
|
|||||||
if unicode(n.names[0]) == self_name and len(n.names) == 2:
|
if unicode(n.names[0]) == self_name and len(n.names) == 2:
|
||||||
add_self_dot_name(n)
|
add_self_dot_name(n)
|
||||||
|
|
||||||
for s in self.base.py__mro__(self._evaluator):
|
for s in self.base.py__bases__(self._evaluator):
|
||||||
if not isinstance(s, compiled.CompiledObject):
|
if not isinstance(s, compiled.CompiledObject):
|
||||||
for inst in self._evaluator.execute(s):
|
for inst in self._evaluator.execute(s):
|
||||||
names += inst.get_self_attributes()
|
names += inst.get_self_attributes()
|
||||||
@@ -317,7 +317,7 @@ class Class(use_metaclass(CachedMetaClass, Wrapper)):
|
|||||||
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
|
||||||
# classes. However, it's a complicated algorithm.
|
# classes. However, it's a complicated algorithm.
|
||||||
for cls in self.py_bases():
|
for cls in self.py__bases__(self._evaluator):
|
||||||
# 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)
|
||||||
@@ -326,7 +326,7 @@ class Class(use_metaclass(CachedMetaClass, Wrapper)):
|
|||||||
return tuple(mro)
|
return tuple(mro)
|
||||||
|
|
||||||
@memoize_default(default=())
|
@memoize_default(default=())
|
||||||
def py_bases(self):
|
def py__bases__(self, evaluator):
|
||||||
supers = []
|
supers = []
|
||||||
for s in self.base.supers:
|
for s in self.base.supers:
|
||||||
# Super classes are statements.
|
# Super classes are statements.
|
||||||
@@ -369,7 +369,7 @@ class Class(use_metaclass(CachedMetaClass, Wrapper)):
|
|||||||
yield self, compiled.type_names
|
yield self, compiled.type_names
|
||||||
|
|
||||||
def get_subscope_by_name(self, name):
|
def get_subscope_by_name(self, name):
|
||||||
for s in [self] + self.py_bases():
|
for s in [self] + self.py__bases__(self._evaluator):
|
||||||
for sub in reversed(s.subscopes):
|
for sub in reversed(s.subscopes):
|
||||||
if sub.name.get_code() == name:
|
if sub.name.get_code() == name:
|
||||||
return sub
|
return sub
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ def builtins_super(evaluator, obj, params):
|
|||||||
cls = er.Class(evaluator, cls)
|
cls = er.Class(evaluator, cls)
|
||||||
elif isinstance(cls, er.Instance):
|
elif isinstance(cls, er.Instance):
|
||||||
cls = cls.base
|
cls = cls.base
|
||||||
su = cls.py_bases()
|
su = cls.py__bases__(evaluator)
|
||||||
if su:
|
if su:
|
||||||
return evaluator.execute(su[0])
|
return evaluator.execute(su[0])
|
||||||
return []
|
return []
|
||||||
|
|||||||
Reference in New Issue
Block a user