mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 22:14:27 +08:00
Move py__mro__ calls to direct calls, because it's defined on ClassMixin
This commit is contained in:
@@ -81,8 +81,7 @@ class HelperContextMixin:
|
|||||||
return self.py__iter__(contextualized_node)
|
return self.py__iter__(contextualized_node)
|
||||||
|
|
||||||
def is_sub_class_of(self, class_context):
|
def is_sub_class_of(self, class_context):
|
||||||
from jedi.evaluate.context.klass import py__mro__
|
for cls in self.py__mro__():
|
||||||
for cls in py__mro__(self):
|
|
||||||
if cls.is_same_class(class_context):
|
if cls.is_same_class(class_context):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ from jedi.evaluate.cache import evaluator_method_cache
|
|||||||
from jedi.evaluate.arguments import AnonymousArguments, \
|
from jedi.evaluate.arguments import AnonymousArguments, \
|
||||||
ValuesArguments, TreeArgumentsWrapper
|
ValuesArguments, TreeArgumentsWrapper
|
||||||
from jedi.evaluate.context.function import FunctionExecutionContext, \
|
from jedi.evaluate.context.function import FunctionExecutionContext, \
|
||||||
FunctionContext, FunctionMixin, OverloadedFunctionContext, MethodContext
|
FunctionContext, FunctionMixin, OverloadedFunctionContext
|
||||||
from jedi.evaluate.context.klass import ClassContext, apply_py__get__, \
|
from jedi.evaluate.context.klass import ClassContext, apply_py__get__, \
|
||||||
py__mro__, ClassFilter
|
ClassFilter
|
||||||
from jedi.evaluate.context import iterable
|
from jedi.evaluate.context import iterable
|
||||||
from jedi.parser_utils import get_parent_scope
|
from jedi.parser_utils import get_parent_scope
|
||||||
|
|
||||||
@@ -127,7 +127,7 @@ class AbstractInstanceContext(Context):
|
|||||||
origin_scope=None, include_self_names=True):
|
origin_scope=None, include_self_names=True):
|
||||||
class_context = self.get_annotated_class_object()
|
class_context = self.get_annotated_class_object()
|
||||||
if include_self_names:
|
if include_self_names:
|
||||||
for cls in py__mro__(class_context):
|
for cls in class_context.py__mro__():
|
||||||
if not isinstance(cls, compiled.CompiledObject) \
|
if not isinstance(cls, compiled.CompiledObject) \
|
||||||
or cls.tree_node is not None:
|
or cls.tree_node is not None:
|
||||||
# In this case we're excluding compiled objects that are
|
# In this case we're excluding compiled objects that are
|
||||||
@@ -135,7 +135,7 @@ class AbstractInstanceContext(Context):
|
|||||||
# compiled objects to search for self variables.
|
# compiled objects to search for self variables.
|
||||||
yield SelfAttributeFilter(self.evaluator, self, cls, origin_scope)
|
yield SelfAttributeFilter(self.evaluator, self, cls, origin_scope)
|
||||||
|
|
||||||
for cls in py__mro__(class_context):
|
for cls in class_context.py__mro__():
|
||||||
if isinstance(cls, compiled.CompiledObject):
|
if isinstance(cls, compiled.CompiledObject):
|
||||||
yield CompiledInstanceClassFilter(self.evaluator, self, cls)
|
yield CompiledInstanceClassFilter(self.evaluator, self, cls)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ def py__mro__(context):
|
|||||||
debug.warning('Super class of %s is not a class: %s', context, cls)
|
debug.warning('Super class of %s is not a class: %s', context, cls)
|
||||||
else:
|
else:
|
||||||
add(cls)
|
add(cls)
|
||||||
for cls_new in py__mro__(cls):
|
for cls_new in cls.py__mro__():
|
||||||
add(cls_new)
|
add(cls_new)
|
||||||
return tuple(mro)
|
return tuple(mro)
|
||||||
|
|
||||||
@@ -208,7 +208,7 @@ class ClassMixin(object):
|
|||||||
origin_scope=origin_scope
|
origin_scope=origin_scope
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
for cls in py__mro__(self):
|
for cls in self.py__mro__():
|
||||||
if isinstance(cls, compiled.CompiledObject):
|
if isinstance(cls, compiled.CompiledObject):
|
||||||
for filter in cls.get_filters(is_instance=is_instance):
|
for filter in cls.get_filters(is_instance=is_instance):
|
||||||
yield filter
|
yield filter
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from jedi.evaluate.filters import FilterWrapper, NameWrapper, \
|
|||||||
AbstractTreeName, AbstractNameDefinition, ContextName
|
AbstractTreeName, AbstractNameDefinition, ContextName
|
||||||
from jedi.evaluate.helpers import is_string
|
from jedi.evaluate.helpers import is_string
|
||||||
from jedi.evaluate.imports import Importer
|
from jedi.evaluate.imports import Importer
|
||||||
from jedi.evaluate.context.klass import py__mro__, ClassMixin
|
from jedi.evaluate.context.klass import ClassMixin
|
||||||
|
|
||||||
_PROXY_CLASS_TYPES = 'Tuple Generic Protocol Callable Type'.split()
|
_PROXY_CLASS_TYPES = 'Tuple Generic Protocol Callable Type'.split()
|
||||||
_TYPE_ALIAS_TYPES = {
|
_TYPE_ALIAS_TYPES = {
|
||||||
@@ -197,7 +197,7 @@ class TypingContext(_BaseTypingContext):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class TypingClassMixin(object):
|
class TypingClassMixin(ClassMixin):
|
||||||
def py__bases__(self):
|
def py__bases__(self):
|
||||||
return [LazyKnownContexts(
|
return [LazyKnownContexts(
|
||||||
self.evaluator.builtins_module.py__getattribute__('object')
|
self.evaluator.builtins_module.py__getattribute__('object')
|
||||||
@@ -671,7 +671,7 @@ class LazyAnnotatedBaseClass(object):
|
|||||||
|
|
||||||
class InstanceWrapper(ContextWrapper):
|
class InstanceWrapper(ContextWrapper):
|
||||||
def py__stop_iteration_returns(self):
|
def py__stop_iteration_returns(self):
|
||||||
for cls in py__mro__(self._wrapped_context.class_context):
|
for cls in self._wrapped_context.class_context.py__mro__():
|
||||||
if cls.py__name__() == 'Generator':
|
if cls.py__name__() == 'Generator':
|
||||||
given_types = cls.get_given_types()
|
given_types = cls.get_given_types()
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ from jedi.evaluate.base_context import ContextualizedNode, \
|
|||||||
NO_CONTEXTS, ContextSet, ContextWrapper
|
NO_CONTEXTS, ContextSet, ContextWrapper
|
||||||
from jedi.evaluate.context import ClassContext, ModuleContext, \
|
from jedi.evaluate.context import ClassContext, ModuleContext, \
|
||||||
FunctionExecutionContext
|
FunctionExecutionContext
|
||||||
from jedi.evaluate.context.klass import py__mro__
|
|
||||||
from jedi.evaluate.context import iterable
|
from jedi.evaluate.context import iterable
|
||||||
from jedi.evaluate.lazy_context import LazyTreeContext, LazyKnownContext, \
|
from jedi.evaluate.lazy_context import LazyTreeContext, LazyKnownContext, \
|
||||||
LazyKnownContexts
|
LazyKnownContexts
|
||||||
@@ -252,7 +251,7 @@ def builtins_isinstance(objects, types, arguments, evaluator):
|
|||||||
bool_results = set([True, False])
|
bool_results = set([True, False])
|
||||||
break
|
break
|
||||||
|
|
||||||
mro = py__mro__(cls)
|
mro = list(cls.py__mro__())
|
||||||
|
|
||||||
for cls_or_tup in types:
|
for cls_or_tup in types:
|
||||||
if cls_or_tup.is_class():
|
if cls_or_tup.is_class():
|
||||||
|
|||||||
Reference in New Issue
Block a user