]> granicus.if.org Git - python/commitdiff
SF bug [#466173] unpack TypeError unclear
authorTim Peters <tim.peters@gmail.com>
Sun, 30 Sep 2001 05:58:42 +0000 (05:58 +0000)
committerTim Peters <tim.peters@gmail.com>
Sun, 30 Sep 2001 05:58:42 +0000 (05:58 +0000)
Replaced 3 instances of "iter() of non-sequence" with
"iteration over non-sequence".
Restored "unpack non-sequence" for stuff like "a, b = 1".

Objects/abstract.c
Objects/classobject.c
Objects/typeobject.c
Python/ceval.c

index ac951238f35044d40cc3da712195c1c745c48807..7a5305ad892dbb5c58483db370e6c102cac0b6f1 100644 (file)
@@ -1859,7 +1859,7 @@ PyObject_GetIter(PyObject *o)
        if (f == NULL) {
                if (PySequence_Check(o))
                        return PySeqIter_New(o);
-               PyErr_SetString(PyExc_TypeError, "iter() of non-sequence");
+               PyErr_SetString(PyExc_TypeError, "iteration over non-sequence");
                return NULL;
        }
        else {
index df10aa20ee573c7be42ae1e7848567850c58f1ec..cef1894737e6f4ee2415d72fac14a60fd1dcdde2 100644 (file)
@@ -1839,7 +1839,7 @@ instance_getiter(PyInstanceObject *self)
        }
        PyErr_Clear();
        if ((func = instance_getattr(self, getitemstr)) == NULL) {
-               PyErr_SetString(PyExc_TypeError, "iter() of non-sequence");
+               PyErr_SetString(PyExc_TypeError, "iteration over non-sequence");
                return NULL;
        }
        Py_DECREF(func);
index b8a459302cd0e4b10da24bbc1e179f99a1e51b9a..e5e7dcd6f427b9f8b4ac61614126fa3bad31a483 100644 (file)
@@ -3261,7 +3261,7 @@ slot_tp_iter(PyObject *self)
        PyErr_Clear();
        func = lookup_method(self, "__getitem__", &getitem_str);
        if (func == NULL) {
-               PyErr_SetString(PyExc_TypeError, "iter() of non-sequence");
+               PyErr_SetString(PyExc_TypeError, "iteration over non-sequence");
                return NULL;
        }
        Py_DECREF(func);
index 731e93fa834ccc1759f128f765e81609661470d5..132fb726a606b74f9ea729f97f06ee75ff7e5cdc 100644 (file)
@@ -1556,8 +1556,12 @@ eval_frame(PyFrameObject *f)
                        else if (unpack_iterable(v, oparg,
                                                 stack_pointer + oparg))
                                stack_pointer += oparg;
-                       else
+                       else {
+                               if (PyErr_ExceptionMatches(PyExc_TypeError))
+                                       PyErr_SetString(PyExc_TypeError,
+                                               "unpack non-sequence");
                                why = WHY_EXCEPTION;
+                       }
                        Py_DECREF(v);
                        break;