aiogram/aiogram/utils/mypy_hacks.py
darksidecat 714ac8896c
Move update type detecting from Dispatcher to Update (#669)
* move update type detecting to Update

* requested changes

* fix typo

* requested changes

* add docstring

* Update CHANGES/669.misc

Co-authored-by: Alex Root Junior <jroot.junior@gmail.com>

* move mypy hack to utils, add lru_cache configuration

* More accurate description of the exception, thanks @uwinx

* Update CHANGES/669.misc

Co-authored-by: evgfilim1 <evgfilim1@yandex.ru>

* Callable import fix

Co-authored-by: evgfilim1 <evgfilim1@yandex.ru>

Co-authored-by: Alex Root Junior <jroot.junior@gmail.com>
Co-authored-by: evgfilim1 <evgfilim1@yandex.ru>
2021-09-05 23:49:23 +03:00

16 lines
433 B
Python

import functools
from typing import Callable, TypeVar
T = TypeVar("T")
def lru_cache(maxsize: int = 128, typed: bool = False) -> Callable[[T], T]:
"""
fix: lru_cache annotation doesn't work with a property
this hack is only needed for the property, so type annotations are as they are
"""
def wrapper(func: T) -> T:
return functools.lru_cache(maxsize, typed)(func) # type: ignore
return wrapper