Я бы хотел определить сигнатуру для "фабричной функции", у которой в качестве дескриптора типа есть один параметр, а возвращаемое значение - это экземпляр, соответствующий этому типу.
import typing
T = typing.TypeVariable("T")
my_list = typing.List[str]
def a_factory(descriptor:???) -> T:
pass
var = a_factory(my_list) #iferred type should be `my_list`, i.e. List[str]
Это работает для простых типов с помощьюtyping.Type[T]
и IDE правильно распознают тип переменной со следующей сигнатурой
import typing
T = typing.TypeVariable("T")
def a_factory(descriptor:typing.Type[T]) -> T:
pass
var = a_factory(str) #type is inferred as str properly
, но пока я не могу найти подходящую конструкцию в ???
для дескрипторов типов