mirror of
https://github.com/davidhalter/jedi.git
synced 2026-01-31 06:05:22 +08:00
Also move the class to the context package.
This commit is contained in:
@@ -12,13 +12,13 @@ from jedi._compatibility import u
|
||||
from jedi import settings
|
||||
from jedi.evaluate.utils import ignored, unite
|
||||
from jedi.cache import memoize_method
|
||||
from jedi.evaluate import representation as er
|
||||
from jedi.evaluate import imports
|
||||
from jedi.evaluate import compiled
|
||||
from jedi.evaluate.filters import ParamName
|
||||
from jedi.evaluate.imports import ImportName
|
||||
from jedi.evaluate.context import instance
|
||||
from jedi.evaluate.context.function import FunctionContext, FunctionExecutionContext
|
||||
from jedi.evaluate.context.klass import ClassContext
|
||||
from jedi.api.keywords import KeywordName
|
||||
|
||||
|
||||
@@ -323,8 +323,8 @@ class BaseDefinition(object):
|
||||
param_names = list(context.get_param_names())
|
||||
if isinstance(context, instance.BoundMethod):
|
||||
param_names = param_names[1:]
|
||||
elif isinstance(context, (instance.AbstractInstanceContext, er.ClassContext)):
|
||||
if isinstance(context, er.ClassContext):
|
||||
elif isinstance(context, (instance.AbstractInstanceContext, ClassContext)):
|
||||
if isinstance(context, ClassContext):
|
||||
search = '__init__'
|
||||
else:
|
||||
search = '__call__'
|
||||
@@ -336,7 +336,7 @@ class BaseDefinition(object):
|
||||
# there's no better solution.
|
||||
inferred = names[0].infer()
|
||||
param_names = get_param_names(next(iter(inferred)))
|
||||
if isinstance(context, er.ClassContext):
|
||||
if isinstance(context, ClassContext):
|
||||
param_names = param_names[1:]
|
||||
return param_names
|
||||
elif isinstance(context, compiled.CompiledObject):
|
||||
|
||||
@@ -70,7 +70,6 @@ import parso
|
||||
|
||||
from jedi import debug
|
||||
from jedi.evaluate.utils import unite
|
||||
from jedi.evaluate import representation as er
|
||||
from jedi.evaluate import imports
|
||||
from jedi.evaluate import recursion
|
||||
from jedi.evaluate import iterable
|
||||
@@ -85,6 +84,7 @@ from jedi.evaluate.context.function import FunctionContext
|
||||
from jedi.evaluate.syntax_tree import eval_trailer, eval_expr_stmt, \
|
||||
eval_node, check_tuple_assignments
|
||||
from jedi import parser_utils
|
||||
from jedi.evaluate.context.klass import ClassContext
|
||||
|
||||
|
||||
class Evaluator(object):
|
||||
@@ -207,7 +207,7 @@ class Evaluator(object):
|
||||
if def_ is not None:
|
||||
type_ = def_.type
|
||||
if type_ == 'classdef':
|
||||
return [er.ClassContext(self, context, name.parent)]
|
||||
return [ClassContext(self, context, name.parent)]
|
||||
elif type_ == 'funcdef':
|
||||
return [FunctionContext(self, context, name.parent)]
|
||||
|
||||
@@ -340,7 +340,7 @@ class Evaluator(object):
|
||||
return func.get_function_execution()
|
||||
return func
|
||||
elif scope_node.type == 'classdef':
|
||||
class_context = er.ClassContext(self, parent_context, scope_node)
|
||||
class_context = ClassContext(self, parent_context, scope_node)
|
||||
if child_is_funcdef:
|
||||
# anonymous instance
|
||||
return AnonymousInstance(self, parent_context, class_context)
|
||||
|
||||
@@ -9,8 +9,8 @@ from jedi.evaluate.context import Context, LazyKnownContext, LazyKnownContexts,
|
||||
from jedi.evaluate.cache import evaluator_method_cache
|
||||
from jedi.evaluate.param import AbstractArguments, AnonymousArguments
|
||||
from jedi.cache import memoize_method
|
||||
from jedi.evaluate import representation as er
|
||||
from jedi.evaluate.context.function import FunctionExecutionContext, FunctionContext
|
||||
from jedi.evaluate.context.klass import ClassContext, apply_py__get__
|
||||
from jedi.evaluate import iterable
|
||||
from jedi.parser_utils import get_parent_scope
|
||||
|
||||
@@ -188,7 +188,7 @@ class AbstractInstanceContext(Context):
|
||||
)
|
||||
return bound_method.get_function_execution()
|
||||
elif scope.type == 'classdef':
|
||||
class_context = er.ClassContext(self.evaluator, scope, parent_context)
|
||||
class_context = ClassContext(self.evaluator, scope, parent_context)
|
||||
return class_context
|
||||
elif scope.type == 'comp_for':
|
||||
# Comprehensions currently don't have a special scope in Jedi.
|
||||
@@ -347,7 +347,7 @@ class LazyInstanceClassName(LazyInstanceName):
|
||||
parent_context, result_context.tree_node
|
||||
)
|
||||
else:
|
||||
for c in er.apply_py__get__(result_context, self._instance):
|
||||
for c in apply_py__get__(result_context, self._instance):
|
||||
yield c
|
||||
|
||||
|
||||
|
||||
@@ -37,18 +37,14 @@ py__doc__(include_call_signature: Returns the docstring for a context.
|
||||
====================================== ========================================
|
||||
|
||||
"""
|
||||
import os
|
||||
from itertools import chain
|
||||
|
||||
from jedi._compatibility import use_metaclass
|
||||
from jedi.evaluate.cache import evaluator_method_cache, CachedMetaClass
|
||||
from jedi.evaluate import compiled
|
||||
from jedi.evaluate import param
|
||||
from jedi.evaluate import imports
|
||||
from jedi.evaluate.filters import ParserTreeFilter, TreeNameDefinition, \
|
||||
DictFilter, ContextName, AbstractNameDefinition, AnonymousInstanceParamName
|
||||
ContextName, AnonymousInstanceParamName
|
||||
from jedi.evaluate import context
|
||||
from jedi.evaluate.context import NO_CONTEXTS, ContextSet, iterator_to_context_set
|
||||
from jedi.evaluate.context import ContextSet, iterator_to_context_set
|
||||
|
||||
|
||||
def apply_py__get__(context, base_context):
|
||||
@@ -13,7 +13,6 @@ import collections
|
||||
import re
|
||||
|
||||
from jedi.evaluate import compiled
|
||||
from jedi.evaluate import representation as er
|
||||
from jedi.evaluate.context.instance import InstanceFunctionExecution, \
|
||||
AbstractInstanceContext, CompiledInstance, BoundMethod, \
|
||||
AnonymousInstanceFunctionExecution
|
||||
@@ -23,6 +22,7 @@ from jedi.evaluate import param
|
||||
from jedi.evaluate import analysis
|
||||
from jedi.evaluate.context import LazyTreeContext, ContextualizedNode, \
|
||||
NO_CONTEXTS, ContextSet
|
||||
from jedi.evaluate.context.klass import ClassContext
|
||||
from jedi.evaluate.context.module import ModuleContext
|
||||
from jedi.evaluate.syntax_tree import is_string
|
||||
|
||||
@@ -295,7 +295,7 @@ def collections_namedtuple(evaluator, obj, arguments):
|
||||
module = evaluator.grammar.parse(source)
|
||||
generated_class = next(module.iter_classdefs())
|
||||
parent_context = ModuleContext(evaluator, module, '')
|
||||
return ContextSet(er.ClassContext(evaluator, parent_context, generated_class))
|
||||
return ContextSet(ClassContext(evaluator, parent_context, generated_class))
|
||||
|
||||
|
||||
@argument_clinic('first, /')
|
||||
|
||||
@@ -18,7 +18,7 @@ from jedi.evaluate import analysis
|
||||
from jedi.evaluate import iterable
|
||||
from jedi.evaluate import imports
|
||||
from jedi.evaluate import param
|
||||
from jedi.evaluate import representation as er
|
||||
from jedi.evaluate.context.klass import ClassContext
|
||||
from jedi.evaluate.context.function import FunctionContext
|
||||
from jedi.evaluate.context.instance import TreeInstance, CompiledInstance
|
||||
from jedi.evaluate.finder import NameFinder
|
||||
@@ -131,7 +131,7 @@ def eval_trailer(context, base_contexts, trailer):
|
||||
# https://github.com/davidhalter/jedi/issues/663
|
||||
result = ContextSet()
|
||||
for typ in list(foo):
|
||||
if isinstance(typ, (er.ClassContext, TreeInstance)):
|
||||
if isinstance(typ, (ClassContext, TreeInstance)):
|
||||
typing_module_types = pep0484.py__getitem__(context, typ, node)
|
||||
if typing_module_types is not None:
|
||||
foo.remove(typ)
|
||||
@@ -503,7 +503,7 @@ def _apply_decorators(context, node):
|
||||
This is also the places where the decorators are processed.
|
||||
"""
|
||||
if node.type == 'classdef':
|
||||
decoratee_context = er.ClassContext(
|
||||
decoratee_context = ClassContext(
|
||||
context.evaluator,
|
||||
parent_context=context,
|
||||
classdef=node
|
||||
|
||||
Reference in New Issue
Block a user