With Python 3.10 (and earlier with typing_extensions), we now have access to allow decorators to properly forward type hints from the wrapped function.
More details can be found here
https://stackoverflow.com/questions/74074580/how-to-avoid-losing-type-hinting-of-decorated-function