1
0
forked from VimPlug/jedi

refactor py_base to py__bases__, because that's the general naming schema

This commit is contained in:
Dave Halter
2014-08-13 14:34:37 +02:00
parent cd433adf84
commit ec7b3bf433
3 changed files with 8 additions and 5 deletions

View File

@@ -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)

View File

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

View File

@@ -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 []