mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Issue #20185: Convert _warnings.warn() to Argument Clinic
Fix warn_explicit(): interpret source=None as source=NULL.
This commit is contained in:
parent
0ca246c5e7
commit
22f18750a5
2 changed files with 59 additions and 16 deletions
38
Python/clinic/_warnings.c.h
Normal file
38
Python/clinic/_warnings.c.h
Normal file
|
@ -0,0 +1,38 @@
|
|||
/*[clinic input]
|
||||
preserve
|
||||
[clinic start generated code]*/
|
||||
|
||||
PyDoc_STRVAR(warnings_warn__doc__,
|
||||
"warn($module, /, message, category=None, stacklevel=1, source=None)\n"
|
||||
"--\n"
|
||||
"\n"
|
||||
"Issue a warning, or maybe ignore it or raise an exception.");
|
||||
|
||||
#define WARNINGS_WARN_METHODDEF \
|
||||
{"warn", (PyCFunction)warnings_warn, METH_FASTCALL, warnings_warn__doc__},
|
||||
|
||||
static PyObject *
|
||||
warnings_warn_impl(PyObject *module, PyObject *message, PyObject *category,
|
||||
Py_ssize_t stacklevel, PyObject *source);
|
||||
|
||||
static PyObject *
|
||||
warnings_warn(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"message", "category", "stacklevel", "source", NULL};
|
||||
static _PyArg_Parser _parser = {"O|OnO:warn", _keywords, 0};
|
||||
PyObject *message;
|
||||
PyObject *category = Py_None;
|
||||
Py_ssize_t stacklevel = 1;
|
||||
PyObject *source = Py_None;
|
||||
|
||||
if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
|
||||
&message, &category, &stacklevel, &source)) {
|
||||
goto exit;
|
||||
}
|
||||
return_value = warnings_warn_impl(module, message, category, stacklevel, source);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
}
|
||||
/*[clinic end generated code: output=b3c5297c2c55778c input=a9049054013a1b77]*/
|
Loading…
Add table
Add a link
Reference in a new issue