1
0
forked from VimPlug/jedi

Use class filters in instances differently so metaclass plugins work, fixes #1090

This commit is contained in:
Dave Halter
2019-07-18 11:20:54 +02:00
parent eeea88046e
commit c7fc715535
5 changed files with 36 additions and 31 deletions

View File

@@ -380,14 +380,14 @@ class CompiledObjectFilter(AbstractFilter):
def __init__(self, evaluator, compiled_object, is_instance=False):
self._evaluator = evaluator
self._compiled_object = compiled_object
self.compiled_object = compiled_object
self.is_instance = is_instance
def get(self, name):
return self._get(
name,
lambda: self._compiled_object.access_handle.is_allowed_getattr(name),
lambda: self._compiled_object.access_handle.dir(),
lambda: self.compiled_object.access_handle.is_allowed_getattr(name),
lambda: self.compiled_object.access_handle.dir(),
check_has_attribute=True
)
@@ -419,7 +419,7 @@ class CompiledObjectFilter(AbstractFilter):
def values(self):
from jedi.evaluate.compiled import builtin_from_name
names = []
needs_type_completions, dir_infos = self._compiled_object.access_handle.get_dir_infos()
needs_type_completions, dir_infos = self.compiled_object.access_handle.get_dir_infos()
for name in dir_infos:
names += self._get(
name,
@@ -434,10 +434,10 @@ class CompiledObjectFilter(AbstractFilter):
return names
def _create_name(self, name):
return self.name_class(self._evaluator, self._compiled_object, name)
return self.name_class(self._evaluator, self.compiled_object, name)
def __repr__(self):
return "<%s: %s>" % (self.__class__.__name__, self._compiled_object)
return "<%s: %s>" % (self.__class__.__name__, self.compiled_object)
docstr_defaults = {