From 8a2b7f18cdc66b3e9b2e2c3eeeeb328bee15f814 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 21 Aug 2019 00:47:44 +0200 Subject: [PATCH] Get all tests working except usage tests --- jedi/api/completion.py | 1 - jedi/inference/context.py | 3 +++ jedi/inference/value/instance.py | 7 ++++--- jedi/inference/value/klass.py | 5 +++-- jedi/plugins/stdlib.py | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/jedi/api/completion.py b/jedi/api/completion.py index 3a1239e2..47c15797 100644 --- a/jedi/api/completion.py +++ b/jedi/api/completion.py @@ -109,7 +109,6 @@ class Completion: self._like_name, self._call_signatures_callback, self._code_lines, self._original_position )) - return completions if completions: return completions diff --git a/jedi/inference/context.py b/jedi/inference/context.py index 0a2e6c69..5e236c2a 100644 --- a/jedi/inference/context.py +++ b/jedi/inference/context.py @@ -192,3 +192,6 @@ class CompiledContext(AbstractContext): def get_value(self): return self._value + + def py__file__(self): + return self._value.py__file__() diff --git a/jedi/inference/value/instance.py b/jedi/inference/value/instance.py index c5fa0f70..bae2e1c1 100644 --- a/jedi/inference/value/instance.py +++ b/jedi/inference/value/instance.py @@ -432,15 +432,16 @@ class SelfName(TreeNameDefinition): class LazyInstanceClassName(object): - def __init__(self, instance, class_value, class_member_name): + def __init__(self, instance, class_context, class_member_name): self._instance = instance - self.class_value = class_value + self.class_context = class_context self._class_member_name = class_member_name @iterator_to_value_set def infer(self): for result_value in self._class_member_name.infer(): - for c in apply_py__get__(result_value, self._instance, self.class_value): + # TODO private access! + for c in apply_py__get__(result_value, self._instance, self.class_context._value): yield c def __getattr__(self, name): diff --git a/jedi/inference/value/klass.py b/jedi/inference/value/klass.py index bd898d1d..b961b56c 100644 --- a/jedi/inference/value/klass.py +++ b/jedi/inference/value/klass.py @@ -80,7 +80,8 @@ class ClassName(TreeNameDefinition): if self._apply_decorators: for c in apply_py__get__(result_value, instance=None, - class_value=self.parent_context): + # TODO private access! + class_value=self.parent_context._value): yield c else: yield result_value @@ -205,7 +206,7 @@ class ClassMixin(object): yield filter else: yield ClassFilter( - self, node_context=cls.as_context(), + self.as_context(), node_context=cls.as_context(), origin_scope=origin_scope, is_instance=is_instance ) diff --git a/jedi/plugins/stdlib.py b/jedi/plugins/stdlib.py index d39c1e38..eaf16094 100644 --- a/jedi/plugins/stdlib.py +++ b/jedi/plugins/stdlib.py @@ -583,7 +583,7 @@ class DataclassWrapper(ValueWrapper, ClassMixin): param_names = [] for cls in reversed(list(self.py__mro__())): if isinstance(cls, DataclassWrapper): - filter_ = cls.get_global_filter() + filter_ = cls.as_context().get_global_filter() # .values ordering is not guaranteed, at least not in # Python < 3.6, when dicts where not ordered, which is an # implementation detail anyway.