mirror of https://github.com/python/cpython
parent
13a6ee0af4
commit
4171bbe687
|
@ -76,7 +76,7 @@ Unpacking sequence too short
|
|||
>>> a, b, c, d = Seq()
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: need more than 3 values to unpack
|
||||
ValueError: not enough values to unpack (expected 4, got 3)
|
||||
|
||||
Unpacking sequence too long
|
||||
|
||||
|
|
|
@ -85,7 +85,14 @@ Unpacking sequence too short
|
|||
>>> a, *b, c, d, e = Seq()
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: need more than 3 values to unpack
|
||||
ValueError: not enough values to unpack (expected at least 4, got 3)
|
||||
|
||||
Unpacking sequence too short and target appears last
|
||||
|
||||
>>> a, b, c, d, *e = Seq()
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: not enough values to unpack (expected at least 4, got 3)
|
||||
|
||||
Unpacking a sequence where the test for too long raises a different kind of
|
||||
error
|
||||
|
|
|
@ -3825,9 +3825,17 @@ unpack_iterable(PyObject *v, int argcnt, int argcntafter, PyObject **sp)
|
|||
if (w == NULL) {
|
||||
/* Iterator done, via error or exhaustion. */
|
||||
if (!PyErr_Occurred()) {
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
"need more than %d value%s to unpack",
|
||||
i, i == 1 ? "" : "s");
|
||||
if (argcntafter == -1) {
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
"not enough values to unpack (expected %d, got %d)",
|
||||
argcnt, i);
|
||||
}
|
||||
else {
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
"not enough values to unpack "
|
||||
"(expected at least %d, got %d)",
|
||||
argcnt + argcntafter, i);
|
||||
}
|
||||
}
|
||||
goto Error;
|
||||
}
|
||||
|
@ -3844,8 +3852,9 @@ unpack_iterable(PyObject *v, int argcnt, int argcntafter, PyObject **sp)
|
|||
return 1;
|
||||
}
|
||||
Py_DECREF(w);
|
||||
PyErr_Format(PyExc_ValueError, "too many values to unpack "
|
||||
"(expected %d)", argcnt);
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
"too many values to unpack (expected %d)",
|
||||
argcnt);
|
||||
goto Error;
|
||||
}
|
||||
|
||||
|
@ -3857,8 +3866,9 @@ unpack_iterable(PyObject *v, int argcnt, int argcntafter, PyObject **sp)
|
|||
|
||||
ll = PyList_GET_SIZE(l);
|
||||
if (ll < argcntafter) {
|
||||
PyErr_Format(PyExc_ValueError, "need more than %zd values to unpack",
|
||||
argcnt + ll);
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
"not enough values to unpack (expected at least %d, got %zd)",
|
||||
argcnt + argcntafter, argcnt + ll);
|
||||
goto Error;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue