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

@ -1196,7 +1196,11 @@ create_filter(PyObject *category, const char *action)
static PyObject *
init_filters(void)
{
#ifndef Py_DEBUG
PyObject *filters = PyList_New(5);
#else
PyObject *filters = PyList_New(2);
#endif
unsigned int pos = 0; /* Post-incremented in each use. */
unsigned int x;
const char *bytes_action, *resource_action;
@ -1204,12 +1208,15 @@ init_filters(void)
if (filters == NULL)
return NULL;
#ifndef Py_DEBUG
PyList_SET_ITEM(filters, pos++,
create_filter(PyExc_DeprecationWarning, "ignore"));
PyList_SET_ITEM(filters, pos++,
create_filter(PyExc_PendingDeprecationWarning, "ignore"));
PyList_SET_ITEM(filters, pos++,
create_filter(PyExc_ImportWarning, "ignore"));
#endif
if (Py_BytesWarningFlag > 1)
bytes_action = "error";
else if (Py_BytesWarningFlag)