Add a source parameter to warnings.warn()

Issue #26604:

* Add a new optional source parameter to _warnings.warn() and warnings.warn()
* Modify asyncore, asyncio and _pyio modules to set the source parameter when
  logging a ResourceWarning warning
This commit is contained in:
Victor Stinner 2016-03-23 00:28:08 +01:00
parent 060f9bb602
commit e19558af1b
13 changed files with 34 additions and 19 deletions

View file

@ -787,18 +787,19 @@ do_warn(PyObject *message, PyObject *category, Py_ssize_t stack_level,
static PyObject *
warnings_warn(PyObject *self, PyObject *args, PyObject *kwds)
{
static char *kw_list[] = { "message", "category", "stacklevel", 0 };
PyObject *message, *category = NULL;
static char *kw_list[] = {"message", "category", "stacklevel",
"source", NULL};
PyObject *message, *category = NULL, *source = NULL;
Py_ssize_t stack_level = 1;
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|On:warn", kw_list,
&message, &category, &stack_level))
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|OnO:warn", kw_list,
&message, &category, &stack_level, &source))
return NULL;
category = get_category(message, category);
if (category == NULL)
return NULL;
return do_warn(message, category, stack_level, NULL);
return do_warn(message, category, stack_level, source);
}
static PyObject *