1
0
forked from VimPlug/jedi

Get rid of a private access

This commit is contained in:
Dave Halter
2019-08-23 13:19:53 +02:00
parent 86f4f7be45
commit aceef78a21
2 changed files with 19 additions and 12 deletions

View File

@@ -131,7 +131,7 @@ class AbstractInstanceValue(Value):
# In this case we're excluding compiled objects that are # In this case we're excluding compiled objects that are
# not fake objects. It doesn't make sense for normal # not fake objects. It doesn't make sense for normal
# compiled objects to search for self variables. # compiled objects to search for self variables.
yield SelfAttributeFilter(self, cls, origin_scope) yield SelfAttributeFilter(self, class_value, cls, origin_scope)
class_filters = class_value.get_filters( class_filters = class_value.get_filters(
origin_scope=origin_scope, origin_scope=origin_scope,
@@ -483,14 +483,14 @@ class SelfAttributeFilter(ClassFilter):
""" """
name_class = SelfName name_class = SelfName
def __init__(self, instance, class_value, origin_scope): def __init__(self, instance, instance_class, class_value, origin_scope):
super(SelfAttributeFilter, self).__init__( super(SelfAttributeFilter, self).__init__(
parent_context=instance.parent_context, class_value=instance_class,
node_context=class_value.as_context(), node_context=class_value.as_context(),
origin_scope=origin_scope, origin_scope=origin_scope,
is_instance=True, is_instance=True,
) )
self._class_value = class_value self._specific_class_value = class_value
self._instance = instance self._instance = instance
def _filter(self, names): def _filter(self, names):
@@ -509,7 +509,7 @@ class SelfAttributeFilter(ClassFilter):
yield name yield name
def _convert_names(self, names): def _convert_names(self, names):
return [self.name_class(self._instance, self._class_value, name) for name in names] return [self.name_class(self._instance, self._specific_class_value, name) for name in names]
def _check_flows(self, names): def _check_flows(self, names):
return names return names

View File

@@ -64,10 +64,11 @@ def apply_py__get__(value, instance, class_value):
class ClassName(TreeNameDefinition): class ClassName(TreeNameDefinition):
def __init__(self, parent_context, tree_name, name_context, apply_decorators): def __init__(self, parent_context, class_value, tree_name, name_context, apply_decorators):
super(ClassName, self).__init__(parent_context, tree_name) super(ClassName, self).__init__(parent_context, tree_name)
self._name_context = name_context self._name_context = name_context
self._apply_decorators = apply_decorators self._apply_decorators = apply_decorators
self._class_value = class_value
@iterator_to_value_set @iterator_to_value_set
def infer(self): def infer(self):
@@ -80,8 +81,7 @@ class ClassName(TreeNameDefinition):
if self._apply_decorators: if self._apply_decorators:
for c in apply_py__get__(result_value, for c in apply_py__get__(result_value,
instance=None, instance=None,
# TODO private access! class_value=self._class_value):
class_value=self.parent_context._value):
yield c yield c
else: else:
yield result_value yield result_value
@@ -90,14 +90,21 @@ class ClassName(TreeNameDefinition):
class ClassFilter(ParserTreeFilter): class ClassFilter(ParserTreeFilter):
name_class = ClassName name_class = ClassName
def __init__(self, *args, **kwargs): def __init__(self, class_value, node_context=None, until_position=None,
self._is_instance = kwargs.pop('is_instance') # Python 2 :/ origin_scope=None, is_instance=False):
super(ClassFilter, self).__init__(*args, **kwargs) super(ClassFilter, self).__init__(
class_value.as_context(), node_context,
until_position=until_position,
origin_scope=origin_scope,
)
self._class_value = class_value
self._is_instance = is_instance
def _convert_names(self, names): def _convert_names(self, names):
return [ return [
self.name_class( self.name_class(
parent_context=self.parent_context, parent_context=self.parent_context,
class_value=self._class_value,
tree_name=name, tree_name=name,
name_context=self._node_context, name_context=self._node_context,
apply_decorators=not self._is_instance, apply_decorators=not self._is_instance,
@@ -206,7 +213,7 @@ class ClassMixin(object):
yield filter yield filter
else: else:
yield ClassFilter( yield ClassFilter(
self.as_context(), node_context=cls.as_context(), self, node_context=cls.as_context(),
origin_scope=origin_scope, origin_scope=origin_scope,
is_instance=is_instance is_instance=is_instance
) )