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.
diff --git a/Python/_warnings.c b/Python/_warnings.c
index d0f3941..8cfae76 100644
--- a/Python/_warnings.c
+++ b/Python/_warnings.c
@@ -1196,7 +1196,11 @@
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 @@
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)