bpo-32088: Display Deprecation in debug mode (#4474)

When Python is build is debug mode (Py_DEBUG), DeprecationWarning,
PendingDeprecationWarning and ImportWarning warnings are now
displayed by default.

test_venv: run "-m pip" and "-m ensurepip._uninstall" with -W
ignore::DeprecationWarning since pip code is not part of Python.
This commit is contained in:
Victor Stinner 2017-11-20 09:47:03 -08:00 committed by Łukasz Langa
parent c5a2071586
commit 895862aa01
4 changed files with 24 additions and 7 deletions

View file

@ -508,10 +508,13 @@ except ImportError:
# Module initialization
_processoptions(sys.warnoptions)
if not _warnings_defaults:
silence = [ImportWarning, PendingDeprecationWarning]
silence.append(DeprecationWarning)
for cls in silence:
simplefilter("ignore", category=cls)
py_debug = hasattr(sys, 'gettotalrefcount')
if not py_debug:
silence = [ImportWarning, PendingDeprecationWarning]
silence.append(DeprecationWarning)
for cls in silence:
simplefilter("ignore", category=cls)
bytes_warning = sys.flags.bytes_warning
if bytes_warning > 1:
bytes_action = "error"
@ -520,8 +523,9 @@ if not _warnings_defaults:
else:
bytes_action = "ignore"
simplefilter(bytes_action, category=BytesWarning, append=1)
# resource usage warnings are enabled by default in pydebug mode
if hasattr(sys, 'gettotalrefcount'):
if py_debug:
resource_action = "always"
else:
resource_action = "ignore"