Closed as not planned
Closed as not planned
Description
When decorating a async
function with a decorator that uses @functools.wraps
or update_wrapper
inspect.iscoroutinefunction
returns False.
The following code demonstrates this issue:
import functools
import inspect
async def fn():
pass
assert inspect.iscoroutinefunction(fn)
def decorator(fn):
def wrapper(*args, **kwargs):
return fn(*args, **kwargs)
return wrapper
assert not inspect.iscoroutinefunction(decorator(fn))
def signature_preserving_decorator(fn):
@functools.wraps(fn)
def wrapper(*args, **kwargs):
return fn(*args, **kwargs)
return wrapper
assert inspect.iscoroutinefunction(signature_preserving_decorator(fn))
# AssertionError
I would expect the last assert statement to pass
- CPython versions tested on: 3.10.8
- Operating system and architecture: Linux 5.19.17-2-MANJARO x86_64 GNU/Linux