mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
bpo-32230: Set sys.warnoptions with -X dev (#4820)
Rather than supporting dev mode directly in the warnings module, this instead adjusts the initialisation code to add an extra 'default' entry to sys.warnoptions when dev mode is enabled. This ensures that dev mode behaves *exactly* as if `-Wdefault` had been passed on the command line, including in the way it interacts with `sys.warnoptions`, and with other command line flags like `-bb`. Fix also bpo-20361: have -b & -bb options take precedence over any other warnings options. Patch written by Nick Coghlan, with minor modifications of Victor Stinner.
This commit is contained in:
parent
b748e3b258
commit
747f48e2e9
12 changed files with 224 additions and 124 deletions
|
@ -241,7 +241,7 @@ def _optim_args_from_interpreter_flags():
|
|||
|
||||
def _args_from_interpreter_flags():
|
||||
"""Return a list of command-line arguments reproducing the current
|
||||
settings in sys.flags and sys.warnoptions."""
|
||||
settings in sys.flags, sys.warnoptions and sys._xoptions."""
|
||||
flag_opt_map = {
|
||||
'debug': 'd',
|
||||
# 'inspect': 'i',
|
||||
|
@ -262,12 +262,22 @@ def _args_from_interpreter_flags():
|
|||
args.append('-' + opt * v)
|
||||
|
||||
# -W options
|
||||
for opt in sys.warnoptions:
|
||||
warnopts = sys.warnoptions[:]
|
||||
bytes_warning = sys.flags.bytes_warning
|
||||
xoptions = getattr(sys, '_xoptions', {})
|
||||
dev_mode = ('dev' in xoptions)
|
||||
|
||||
if bytes_warning > 1:
|
||||
warnopts.remove("error::BytesWarning")
|
||||
elif bytes_warning:
|
||||
warnopts.remove("default::BytesWarning")
|
||||
if dev_mode:
|
||||
warnopts.remove('default')
|
||||
for opt in warnopts:
|
||||
args.append('-W' + opt)
|
||||
|
||||
# -X options
|
||||
xoptions = getattr(sys, '_xoptions', {})
|
||||
if 'dev' in xoptions:
|
||||
if dev_mode:
|
||||
args.extend(('-X', 'dev'))
|
||||
for opt in ('faulthandler', 'tracemalloc', 'importtime',
|
||||
'showalloccount', 'showrefcount'):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue