-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
Closed as not planned
Closed as not planned
Copy link
Labels
stdlibPython modules in the Lib dirPython modules in the Lib dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
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
Metadata
Metadata
Assignees
Labels
stdlibPython modules in the Lib dirPython modules in the Lib dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error