Type Hinting - декоратор, возвращающий функцию, которая возвращает генератор типа
Доброе время суток.
Вопрос описанию функций.
Есть фукция, которая делает запрос и возвращает объект типа
def _get(...) -> JsonResponseData:
...
return JsonResponseData(...)
Есть декоратор, который изменяет логику поведения, передавая параметры в выше указанную функцию. Он смотрит на данные, и пока они есть частями делаем запросы и получает данные.
def decorator_excample(func: Callable[..., T], offset: int, limit: int) -> Callable[..., Generator[T]]:
def wrapper(...):
...
return wrapper
В IDE в результате выполнения функции, изменненной этим декоратором, тип обозначается как Any.
@decorator_example
def _get(...) -> JsonResponseData:
...
return JsonResponseData(...)
for x in _get(offset=0, limit=100):
x # <-- пишет, что тип Any
x: JsonResponseData # <- Хот фикс, но это плохо
Как сделать, чтобы тип был тот, что возвращается у исходной функции?
Используется Python 3.9
Добавлю больше информации, если потребуется
Источник: Stack Overflow на русском