mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 22:14:27 +08:00
Try to prepare DefineGenericBase for a more general usage
This commit is contained in:
@@ -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())
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user