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