Also move the class to the context package.

This commit is contained in:
Dave Halter
2017-09-29 15:39:20 +02:00
parent 5f613ece28
commit 8c601a1c65
6 changed files with 17 additions and 21 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -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, /')

View File

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