summaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2017-01-21 23:05:00 +0200
committerSerhiy Storchaka <storchaka@gmail.com>2017-01-21 23:05:00 +0200
commit8f993e3ac6565928b14ffc0fcef23775f1b1e3f5 (patch)
tree8bdcb193c6f78fa2dbe1939869907d7d03eb370d /Python
parent15a9df1f32c007a211dc165b26c189153feec4ca (diff)
downloadcpython-8f993e3ac6565928b14ffc0fcef23775f1b1e3f5.tar.gz
Issue #29331: Simplified argument parsing in sorted() and list.sort().
Diffstat (limited to 'Python')
-rw-r--r--Python/bltinmodule.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 6df8af4733..3473cc322c 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -2126,15 +2126,11 @@ PyDoc_STRVAR(builtin_sorted__doc__,
static PyObject *
builtin_sorted(PyObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
- PyObject *newlist, *v, *seq, *keyfunc=NULL;
- PyObject *callable;
- static const char * const kwlist[] = {"", "key", "reverse", 0};
- /* args 1-3 should match listsort in Objects/listobject.c */
- static _PyArg_Parser parser = {"O|Oi:sorted", kwlist, 0};
- int reverse;
-
- if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &parser,
- &seq, &keyfunc, &reverse))
+ PyObject *newlist, *v, *seq, *callable;
+
+ /* Keyword arguments are passed through list.sort() which will check
+ them. */
+ if (!_PyArg_UnpackStack(args, nargs, "sorted", 1, 1, &seq))
return NULL;
newlist = PySequence_List(seq);