diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2016-12-09 17:08:18 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2016-12-09 17:08:18 (GMT) |
commit | 22f18750a53b0f95b27c83c822ee2f44ea5f6495 (patch) | |
tree | ef8b76edcd20627b452421c220f2beb148876892 /Python/clinic | |
parent | 0ca246c5e7bc9a8c1886519f313a41334a60e011 (diff) | |
download | cpython-22f18750a53b0f95b27c83c822ee2f44ea5f6495.zip cpython-22f18750a53b0f95b27c83c822ee2f44ea5f6495.tar.gz cpython-22f18750a53b0f95b27c83c822ee2f44ea5f6495.tar.bz2 |
Issue #20185: Convert _warnings.warn() to Argument Clinic
Fix warn_explicit(): interpret source=None as source=NULL.
Diffstat (limited to 'Python/clinic')
-rw-r--r-- | Python/clinic/_warnings.c.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Python/clinic/_warnings.c.h b/Python/clinic/_warnings.c.h new file mode 100644 index 0000000..db2245c --- /dev/null +++ b/Python/clinic/_warnings.c.h @@ -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]*/ |