Commit a6ff6d19 authored by Guido van Rossum's avatar Guido van Rossum

Patch by Tommy Burnette to accept an arbitrary sequence when "(...)"

is used in the format string, instead of requiring a tuple.  This is
in line with the general trend towards accepting arbitrary sequences.
parent a0604f57
......@@ -357,18 +357,18 @@ converttuple(arg, p_format, p_va, levels, msgbuf, toplevel)
n++;
}
if (!PyTuple_Check(arg)) {
if (!PySequence_Check(arg)) {
levels[0] = 0;
sprintf(msgbuf,
toplevel ? "%d arguments, %s" : "%d-tuple, %s",
toplevel ? "%d arguments, %s" : "%d-sequence, %s",
n, arg == Py_None ? "None" : arg->ob_type->tp_name);
return msgbuf;
}
if ((i = PyTuple_Size(arg)) != n) {
if ((i = PySequence_Length(arg)) != n) {
levels[0] = 0;
sprintf(msgbuf,
toplevel ? "%d arguments, %d" : "%d-tuple, %d-tuple",
toplevel ? "%d arguments, %d" : "%d-sequence, %d-sequence",
n, i);
return msgbuf;
}
......@@ -376,8 +376,11 @@ converttuple(arg, p_format, p_va, levels, msgbuf, toplevel)
format = *p_format;
for (i = 0; i < n; i++) {
char *msg;
msg = convertitem(PyTuple_GetItem(arg, i), &format, p_va,
levels+1, msgbuf);
PyObject *item;
item = PySequence_GetItem(arg, i);
msg = convertitem(item, &format, p_va, levels+1, msgbuf);
/* PySequence_GetItem calls tp->sq_item, which INCREFs */
Py_XDECREF(item);
if (msg != NULL) {
levels[0] = i+1;
return msg;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment