Try to prepare DefineGenericBase for a more general usage

This commit is contained in:
Dave Halter
2019-12-08 19:58:00 +01:00
parent df697cfb03
commit 72fc85f4c3

View File

@@ -1,6 +1,6 @@
from jedi.inference.cache import inference_state_method_cache from jedi.inference.cache import inference_state_method_cache
from jedi.inference.base_value import ValueSet, NO_VALUES, Value, \ from jedi.inference.base_value import ValueSet, NO_VALUES, Value, \
iterator_to_value_set, ValueWrapper iterator_to_value_set, LazyValueWrapper, ValueWrapper
from jedi.inference.compiled import builtin_from_name from jedi.inference.compiled import builtin_from_name
from jedi.inference.value.klass import ClassFilter from jedi.inference.value.klass import ClassFilter
from jedi.inference.value.iterable import SequenceLiteralValue from jedi.inference.value.iterable import SequenceLiteralValue
@@ -142,7 +142,10 @@ class AnnotatedClassContext(ClassContext):
yield self._value.get_type_var_filter() yield self._value.get_type_var_filter()
class DefineGenericBase(ValueWrapper): class DefineGenericBase(LazyValueWrapper):
def _get_fixed_generics_cls(self):
return GenericClass
def get_generics(self): def get_generics(self):
raise NotImplementedError raise NotImplementedError
@@ -168,7 +171,7 @@ class DefineGenericBase(ValueWrapper):
# cached results. # cached results.
return ValueSet([self]) return ValueSet([self])
return ValueSet([GenericClass( return ValueSet([self._get_fixed_generics_cls()(
self._wrapped_value, self._wrapped_value,
generics=tuple(new_generics) generics=tuple(new_generics)
)]) )])
@@ -207,6 +210,12 @@ class DefineGenericBase(ValueWrapper):
class _AbstractAnnotatedClass(ClassMixin, DefineGenericBase): class _AbstractAnnotatedClass(ClassMixin, DefineGenericBase):
def __init__(self, wrapped_class):
self._wrapped_class = wrapped_class
def _get_wrapped_value(self):
return self._wrapped_class
def get_type_var_filter(self): def get_type_var_filter(self):
return TypeVarFilter(self.get_generics(), self.list_type_vars()) return TypeVarFilter(self.get_generics(), self.list_type_vars())