parent_value -> parent_context

This commit is contained in:
Dave Halter
2019-08-15 09:36:46 +02:00
parent 2e90e3b2b1
commit 600272366f
25 changed files with 181 additions and 181 deletions
+13 -13
View File
@@ -28,7 +28,7 @@ class LambdaName(AbstractNameDefinition):
def __init__(self, lambda_value):
self._lambda_value = lambda_value
self.parent_value = lambda_value.parent_value
self.parent_context = lambda_value.parent_context
@property
def start_pos(self):
@@ -40,13 +40,13 @@ class LambdaName(AbstractNameDefinition):
class FunctionAndClassBase(TreeValue):
def get_qualified_names(self):
if self.parent_value.is_class():
n = self.parent_value.get_qualified_names()
if self.parent_context.is_class():
n = self.parent_context.get_qualified_names()
if n is None:
# This means that the parent class lives within a function.
return None
return n + (self.py__name__(),)
elif self.parent_value.is_module():
elif self.parent_context.is_module():
return (self.py__name__(),)
else:
return None
@@ -98,7 +98,7 @@ class FunctionMixin(object):
if arguments is None:
arguments = AnonymousArguments()
return FunctionExecutionValue(self.infer_state, self.parent_value, self, arguments)
return FunctionExecutionValue(self.infer_state, self.parent_context, self, arguments)
def get_signatures(self):
return [TreeSignature(f) for f in self.get_signature_functions()]
@@ -115,21 +115,21 @@ class FunctionValue(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndCla
return MethodValue(
value.infer_state,
value,
parent_value=parent_value,
parent_context=parent_context,
tree_node=tree_node
)
else:
return cls(
value.infer_state,
parent_value=parent_value,
parent_context=parent_context,
tree_node=tree_node
)
overloaded_funcs = list(_find_overload_functions(value, tree_node))
parent_value = value
while parent_value.is_class() or parent_value.is_instance():
parent_value = parent_value.parent_value
parent_context = value
while parent_context.is_class() or parent_context.is_instance():
parent_context = parent_context.parent_context
function = create(tree_node)
@@ -145,7 +145,7 @@ class FunctionValue(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndCla
return c
def get_default_param_value(self):
return self.parent_value
return self.parent_context
def get_signature_functions(self):
return [self]
@@ -171,10 +171,10 @@ class MethodValue(FunctionValue):
class FunctionExecutionValue(TreeValue):
function_execution_filter = FunctionExecutionFilter
def __init__(self, infer_state, parent_value, function_value, var_args):
def __init__(self, infer_state, parent_context, function_value, var_args):
super(FunctionExecutionValue, self).__init__(
infer_state,
parent_value,
parent_context,
function_value.tree_node,
)
self.function_value = function_value
+17 -17
View File
@@ -61,8 +61,8 @@ class AnonymousInstanceArguments(AnonymousArguments):
class AbstractInstanceValue(Value):
api_type = u'instance'
def __init__(self, infer_state, parent_value, class_value, var_args):
super(AbstractInstanceValue, self).__init__(infer_state, parent_value)
def __init__(self, infer_state, parent_context, class_value, var_args):
super(AbstractInstanceValue, self).__init__(infer_state, parent_context)
# Generated instances are classes that are just generated by self
# (No var_args) used.
self.class_value = class_value
@@ -193,7 +193,7 @@ class AbstractInstanceValue(Value):
# TODO is this correct? I think we need to check for functions.
if isinstance(name, LazyInstanceClassName):
function = FunctionValue.from_value(
self.parent_value,
self.parent_context,
name.tree_name.parent
)
bound_method = BoundMethod(self, function)
@@ -207,19 +207,19 @@ class AbstractInstanceValue(Value):
if scope == class_value.tree_node:
return class_value
else:
parent_value = self.create_instance_value(class_value, scope)
parent_context = self.create_instance_value(class_value, scope)
if scope.type == 'funcdef':
func = FunctionValue.from_value(
parent_value,
parent_context,
scope,
)
bound_method = BoundMethod(self, func)
if scope.name.value == '__init__' and parent_value == class_value:
if scope.name.value == '__init__' and parent_context == class_value:
return bound_method.get_function_execution(self.var_args)
else:
return bound_method.get_function_execution()
elif scope.type == 'classdef':
class_value = ClassValue(self.infer_state, parent_value, scope)
class_value = ClassValue(self.infer_state, parent_context, scope)
return class_value
elif scope.type in ('comp_for', 'sync_comp_for'):
# Comprehensions currently don't have a special scope in Jedi.
@@ -238,9 +238,9 @@ class AbstractInstanceValue(Value):
class CompiledInstance(AbstractInstanceValue):
def __init__(self, infer_state, parent_value, class_value, var_args):
def __init__(self, infer_state, parent_context, class_value, var_args):
self._original_var_args = var_args
super(CompiledInstance, self).__init__(infer_state, parent_value, class_value, var_args)
super(CompiledInstance, self).__init__(infer_state, parent_context, class_value, var_args)
@property
def name(self):
@@ -258,16 +258,16 @@ class CompiledInstance(AbstractInstanceValue):
class TreeInstance(AbstractInstanceValue):
def __init__(self, infer_state, parent_value, class_value, var_args):
def __init__(self, infer_state, parent_context, class_value, var_args):
# I don't think that dynamic append lookups should happen here. That
# sounds more like something that should go to py__iter__.
if class_value.py__name__() in ['list', 'set'] \
and parent_value.get_root_value() == infer_state.builtins_module:
and parent_context.get_root_value() == infer_state.builtins_module:
# compare the module path with the builtin name.
if settings.dynamic_array_additions:
var_args = iterable.get_dynamic_array_instance(self, var_args)
super(TreeInstance, self).__init__(infer_state, parent_value,
super(TreeInstance, self).__init__(infer_state, parent_context,
class_value, var_args)
self.tree_node = class_value.tree_node
@@ -313,10 +313,10 @@ class TreeInstance(AbstractInstanceValue):
class AnonymousInstance(TreeInstance):
def __init__(self, infer_state, parent_value, class_value):
def __init__(self, infer_state, parent_context, class_value):
super(AnonymousInstance, self).__init__(
infer_state,
parent_value,
parent_context,
class_value,
var_args=AnonymousInstanceArguments(self),
)
@@ -330,7 +330,7 @@ class CompiledInstanceName(compiled.CompiledName):
def __init__(self, infer_state, instance, klass, name):
super(CompiledInstanceName, self).__init__(
infer_state,
klass.parent_value,
klass.parent_context,
name.string_name
)
self._instance = instance
@@ -419,7 +419,7 @@ class CompiledBoundMethod(ValueWrapper):
class SelfName(TreeNameDefinition):
"""
This name calculates the parent_value lazily.
This name calculates the parent_context lazily.
"""
def __init__(self, instance, class_value, tree_name):
self._instance = instance
@@ -427,7 +427,7 @@ class SelfName(TreeNameDefinition):
self.tree_name = tree_name
@property
def parent_value(self):
def parent_context(self):
return self._instance.create_instance_value(self.class_value, self.tree_name)
+10 -10
View File
@@ -113,8 +113,8 @@ class Generator(GeneratorBase):
class CompForValue(TreeValue):
@classmethod
def from_comp_for(cls, parent_value, comp_for):
return cls(parent_value.infer_state, parent_value, comp_for)
def from_comp_for(cls, parent_context, comp_for):
return cls(parent_context.infer_state, parent_context, comp_for)
def get_filters(self, search_global=False, until_position=None, origin_scope=None):
yield ParserTreeFilter(self.infer_state, self)
@@ -158,27 +158,27 @@ def comprehension_from_atom(infer_state, value, atom):
class ComprehensionMixin(object):
@infer_state_method_cache()
def _get_comp_for_value(self, parent_value, comp_for):
return CompForValue.from_comp_for(parent_value, comp_for)
def _get_comp_for_value(self, parent_context, comp_for):
return CompForValue.from_comp_for(parent_context, comp_for)
def _nested(self, comp_fors, parent_value=None):
def _nested(self, comp_fors, parent_context=None):
comp_for = comp_fors[0]
is_async = comp_for.parent.type == 'comp_for'
input_node = comp_for.children[3]
parent_value = parent_value or self._defining_value
input_types = parent_value.infer_node(input_node)
parent_context = parent_context or self._defining_value
input_types = parent_context.infer_node(input_node)
# TODO: simulate await if self.is_async
cn = ValueualizedNode(parent_value, input_node)
cn = ValueualizedNode(parent_context, input_node)
iterated = input_types.iterate(cn, is_async=is_async)
exprlist = comp_for.children[1]
for i, lazy_value in enumerate(iterated):
types = lazy_value.infer()
dct = unpack_tuple_to_dict(parent_value, types, exprlist)
dct = unpack_tuple_to_dict(parent_context, types, exprlist)
value_ = self._get_comp_for_value(
parent_value,
parent_context,
comp_for,
)
with predefine_names(value_, comp_for, dct):
+9 -9
View File
@@ -63,8 +63,8 @@ def apply_py__get__(value, instance, class_value):
class ClassName(TreeNameDefinition):
def __init__(self, parent_value, tree_name, name_value, apply_decorators):
super(ClassName, self).__init__(parent_value, tree_name)
def __init__(self, parent_context, tree_name, name_value, apply_decorators):
super(ClassName, self).__init__(parent_context, tree_name)
self._name_value = name_value
self._apply_decorators = apply_decorators
@@ -73,13 +73,13 @@ class ClassName(TreeNameDefinition):
# We're using a different value to infer, so we cannot call super().
from jedi.inference.syntax_tree import tree_name_to_values
inferred = tree_name_to_values(
self.parent_value.infer_state, self._name_value, self.tree_name)
self.parent_context.infer_state, self._name_value, self.tree_name)
for result_value in inferred:
if self._apply_decorators:
for c in apply_py__get__(result_value,
instance=None,
class_value=self.parent_value):
class_value=self.parent_context):
yield c
else:
yield result_value
@@ -95,7 +95,7 @@ class ClassFilter(ParserTreeFilter):
def _convert_names(self, names):
return [
self.name_class(
parent_value=self.value,
parent_context=self.value,
tree_name=name,
name_value=self._node_value,
apply_decorators=not self._is_instance,
@@ -141,7 +141,7 @@ class ClassMixin(object):
from jedi.inference.value import TreeInstance
if arguments is None:
arguments = ValuesArguments([])
return ValueSet([TreeInstance(self.infer_state, self.parent_value, self, arguments)])
return ValueSet([TreeInstance(self.infer_state, self.parent_context, self, arguments)])
def py__class__(self):
return compiled.builtin_from_name(self.infer_state, u'type')
@@ -252,7 +252,7 @@ class ClassValue(use_metaclass(CachedMetaClass, ClassMixin, FunctionAndClassBase
continue # These are not relevant for this search.
from jedi.inference.gradual.annotation import find_unknown_type_vars
for type_var in find_unknown_type_vars(self.parent_value, node):
for type_var in find_unknown_type_vars(self.parent_context, node):
if type_var not in found:
# The order matters and it's therefore a list.
found.append(type_var)
@@ -262,7 +262,7 @@ class ClassValue(use_metaclass(CachedMetaClass, ClassMixin, FunctionAndClassBase
arglist = self.tree_node.get_super_arglist()
if arglist:
from jedi.inference import arguments
return arguments.TreeArguments(self.infer_state, self.parent_value, arglist)
return arguments.TreeArguments(self.infer_state, self.parent_context, arglist)
return None
@infer_state_method_cache(default=())
@@ -274,7 +274,7 @@ class ClassValue(use_metaclass(CachedMetaClass, ClassMixin, FunctionAndClassBase
return lst
if self.py__name__() == 'object' \
and self.parent_value == self.infer_state.builtins_module:
and self.parent_context == self.infer_state.builtins_module:
return []
return [LazyKnownValues(
self.infer_state.builtins_module.py__getattribute__('object')
+6 -6
View File
@@ -20,20 +20,20 @@ class _ModuleAttributeName(AbstractNameDefinition):
api_type = u'instance'
def __init__(self, parent_module, string_name, string_value=None):
self.parent_value = parent_module
self.parent_context = parent_module
self.string_name = string_name
self._string_value = string_value
def infer(self):
if self._string_value is not None:
s = self._string_value
if self.parent_value.infer_state.environment.version_info.major == 2 \
if self.parent_context.infer_state.environment.version_info.major == 2 \
and not isinstance(s, bytes):
s = s.encode('utf-8')
return ValueSet([
create_simple_object(self.parent_value.infer_state, s)
create_simple_object(self.parent_context.infer_state, s)
])
return compiled.get_string_value_set(self.parent_value.infer_state)
return compiled.get_string_value_set(self.parent_context.infer_state)
class ModuleName(ValueNameMixin, AbstractNameDefinition):
@@ -189,12 +189,12 @@ class ModuleMixin(SubModuleDictMixin):
class ModuleValue(ModuleMixin, TreeValue):
api_type = u'module'
parent_value = None
parent_context = None
def __init__(self, infer_state, module_node, file_io, string_names, code_lines, is_package=False):
super(ModuleValue, self).__init__(
infer_state,
parent_value=None,
parent_context=None,
tree_node=module_node
)
self.file_io = file_io
+2 -2
View File
@@ -23,10 +23,10 @@ class ImplicitNamespaceValue(Value, SubModuleDictMixin):
# folder foobar it will be available as an object:
# <module 'foobar' (namespace)>.
api_type = u'module'
parent_value = None
parent_context = None
def __init__(self, infer_state, fullname, paths):
super(ImplicitNamespaceValue, self).__init__(infer_state, parent_value=None)
super(ImplicitNamespaceValue, self).__init__(infer_state, parent_context=None)
self.infer_state = infer_state
self._fullname = fullname
self._paths = paths