New submission from Allan Feldman <allan.d.feld...@gmail.com>:

This code behaves differently when PYTHONASYNCIODEBUG=1

import asyncio
import inspect


@asyncio.coroutine
def foo():
    yield from asyncio.sleep(0)


print("isgeneratorfunction:", inspect.isgeneratorfunction(foo))


PYTHONASYNCIODEBUG:
isgeneratorfunction: False

non-debug mode:
isgeneratorfunction: True


When in debug mode, the `asyncio.coroutine` decorator returns a function that 
is not a generator function 
(https://github.com/python/cpython/blob/bd4a3f21454a6012f4353e2255837561fc9f0e6a/Lib/asyncio/coroutines.py#L144)

The result is that introspection of functions is changed when 
PYTHONASYNCIODEBUG is enabled.

----------
components: asyncio
messages: 372706
nosy: a-feld, asvetlov, yselivanov
priority: normal
severity: normal
status: open
title: asyncio.coroutine decorator returns a non-generator function when using 
PYTHONASYNCIODEBUG
type: behavior
versions: Python 3.10, Python 3.5, Python 3.6, Python 3.7, Python 3.8, Python 
3.9

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue41174>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to