Type Hinting - декоратор, возвращающий функцию, которая возвращает генератор типа

Рейтинг: 0Ответов: 0Опубликовано: 26.06.2023

Доброе время суток.

Вопрос описанию функций.

Есть фукция, которая делает запрос и возвращает объект типа

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

Добавлю больше информации, если потребуется

Ответы

Ответов пока нет.