From 42963a0e03e466f71a24024df6b626e3d2eb0287 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sun, 10 May 2020 02:52:42 +0200 Subject: [PATCH] By having get_annotated_class_object for Tuple/Callable, some details are not necessary anymore --- jedi/inference/gradual/annotation.py | 2 +- jedi/inference/gradual/base.py | 6 ++++++ jedi/inference/gradual/typing.py | 6 +----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/jedi/inference/gradual/annotation.py b/jedi/inference/gradual/annotation.py index 6839d8c9..c1ef2667 100644 --- a/jedi/inference/gradual/annotation.py +++ b/jedi/inference/gradual/annotation.py @@ -350,7 +350,7 @@ def merge_pairwise_generics(annotation_value, annotated_argument_class): type_var_dict = {} - if not isinstance(annotated_argument_class, (DefineGenericBase, BaseTypingInstance)): + if not isinstance(annotated_argument_class, (DefineGenericBase)): return type_var_dict annotation_generics = annotation_value.get_generics() diff --git a/jedi/inference/gradual/base.py b/jedi/inference/gradual/base.py index de8dee85..14b133d3 100644 --- a/jedi/inference/gradual/base.py +++ b/jedi/inference/gradual/base.py @@ -389,6 +389,9 @@ class BaseTypingInstance(LazyValueWrapper): def py__class__(self): return self._class_value + def get_annotated_class_object(self): + return self._class_value + @property def name(self): return ValueName(self, self._tree_name) @@ -400,3 +403,6 @@ class BaseTypingInstance(LazyValueWrapper): def _get_wrapped_value(self): object_, = builtin_from_name(self.inference_state, u'object').execute_annotation() return object_ + + def __repr__(self): + return '<%s: %s>' % (self.__class__.__name__, self._generics_manager) diff --git a/jedi/inference/gradual/typing.py b/jedi/inference/gradual/typing.py index 5c30f678..fccece66 100644 --- a/jedi/inference/gradual/typing.py +++ b/jedi/inference/gradual/typing.py @@ -316,7 +316,6 @@ class Tuple(BaseTypingInstance): def infer_type_vars(self, value_set): # Circular from jedi.inference.gradual.annotation import merge_pairwise_generics, merge_type_var_dicts - from jedi.inference.gradual.base import GenericClass value_set = value_set.filter( lambda x: x.py__name__().lower() == 'tuple', @@ -345,11 +344,8 @@ class Tuple(BaseTypingInstance): # above is not 100% correct, so just catch the remaining # cases here. continue - else: - py_class = method() - if not isinstance(py_class, GenericClass): - py_class = element + py_class = method() merge_type_var_dicts( type_var_dict, merge_pairwise_generics(self, py_class),