diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-11-20 15:14:07 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-20 15:14:07 (GMT) |
commit | 44862df2eeec62adea20672b0fe2a5d3e160569e (patch) | |
tree | e8f66bbbd2b7769ca42a292f553a7ecacb29da57 /Lib/asyncio/coroutines.py | |
parent | 04dee2720851ec39e831beaa3edc0c59f228f461 (diff) | |
download | cpython-44862df2eeec62adea20672b0fe2a5d3e160569e.zip cpython-44862df2eeec62adea20672b0fe2a5d3e160569e.tar.gz cpython-44862df2eeec62adea20672b0fe2a5d3e160569e.tar.bz2 |
bpo-32047: -X dev enables asyncio debug mode (#4418)
The new -X dev command line option now also enables asyncio debug
mode.
Diffstat (limited to 'Lib/asyncio/coroutines.py')
-rw-r--r-- | Lib/asyncio/coroutines.py | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/Lib/asyncio/coroutines.py b/Lib/asyncio/coroutines.py index 520a309..a87c9f9 100644 --- a/Lib/asyncio/coroutines.py +++ b/Lib/asyncio/coroutines.py @@ -19,17 +19,25 @@ from .log import logger # Opcode of "yield from" instruction _YIELD_FROM = opcode.opmap['YIELD_FROM'] -# If you set _DEBUG to true, @coroutine will wrap the resulting -# generator objects in a CoroWrapper instance (defined below). That -# instance will log a message when the generator is never iterated -# over, which may happen when you forget to use "yield from" with a -# coroutine call. Note that the value of the _DEBUG flag is taken -# when the decorator is used, so to be of any use it must be set -# before you define your coroutines. A downside of using this feature -# is that tracebacks show entries for the CoroWrapper.__next__ method -# when _DEBUG is true. -_DEBUG = (not sys.flags.ignore_environment and - bool(os.environ.get('PYTHONASYNCIODEBUG'))) + +def _is_debug_mode(): + # If you set _DEBUG to true, @coroutine will wrap the resulting + # generator objects in a CoroWrapper instance (defined below). That + # instance will log a message when the generator is never iterated + # over, which may happen when you forget to use "yield from" with a + # coroutine call. Note that the value of the _DEBUG flag is taken + # when the decorator is used, so to be of any use it must be set + # before you define your coroutines. A downside of using this feature + # is that tracebacks show entries for the CoroWrapper.__next__ method + # when _DEBUG is true. + debug = (not sys.flags.ignore_environment and + bool(os.environ.get('PYTHONASYNCIODEBUG'))) + if hasattr(sys, '_xoptions') and 'dev' in sys._xoptions: + debug = True + return debug + + +_DEBUG = _is_debug_mode() try: |