]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-121288: Make error message for index() methods consistent (GH-121395)
authorSerhiy Storchaka <storchaka@gmail.com>
Fri, 5 Jul 2024 17:50:45 +0000 (20:50 +0300)
committerGitHub <noreply@github.com>
Fri, 5 Jul 2024 17:50:45 +0000 (10:50 -0700)
Make error message for index() methods consistent

Remove the repr of the searched value (which can be arbitrary large)
from ValueError messages for list.index(), range.index(), deque.index(),
deque.remove() and ShareableList.index().  Make the error messages
consistent with error messages for other index() and remove()
methods.

Lib/multiprocessing/shared_memory.py
Misc/NEWS.d/next/Core and Builtins/2024-07-05-11-29-27.gh-issue-121288.lYKYYP.rst [new file with mode: 0644]
Modules/_collectionsmodule.c
Objects/listobject.c
Objects/rangeobject.c

index 67e70fdc27cf31d27401d934af19065d5dc4ecd4..99a8ce3320ad4ee9e6e47e8a3972116acb3de3d7 100644 (file)
@@ -539,6 +539,6 @@ class ShareableList:
             if value == entry:
                 return position
         else:
-            raise ValueError(f"{value!r} not in this container")
+            raise ValueError("ShareableList.index(x): x not in list")
 
     __class_getitem__ = classmethod(types.GenericAlias)
diff --git a/Misc/NEWS.d/next/Core and Builtins/2024-07-05-11-29-27.gh-issue-121288.lYKYYP.rst b/Misc/NEWS.d/next/Core and Builtins/2024-07-05-11-29-27.gh-issue-121288.lYKYYP.rst
new file mode 100644 (file)
index 0000000..bd3e20b
--- /dev/null
@@ -0,0 +1,5 @@
+:exc:`ValueError` messages for :meth:`!list.index()`, :meth:`!range.index()`,
+:meth:`!deque.index()`, :meth:`!deque.remove()` and
+:meth:`!ShareableList.index()` no longer contain the repr of the searched
+value (which can be arbitrary large) and are consistent with error messages
+for other :meth:`!index()` and :meth:`!remove()` methods.
index 0bc61db4117c5d608ba15accd086f0cd8524af0c..fbfed59995c21e41d1d7ad172bf2bb3b2cc023b1 100644 (file)
@@ -1293,7 +1293,7 @@ deque_index_impl(dequeobject *deque, PyObject *v, Py_ssize_t start,
             index = 0;
         }
     }
-    PyErr_Format(PyExc_ValueError, "%R is not in deque", v);
+    PyErr_SetString(PyExc_ValueError, "deque.index(x): x not in deque");
     return NULL;
 }
 
@@ -1462,7 +1462,7 @@ deque_remove_impl(dequeobject *deque, PyObject *value)
         }
     }
     if (i == n) {
-        PyErr_Format(PyExc_ValueError, "%R is not in deque", value);
+        PyErr_SetString(PyExc_ValueError, "deque.remove(x): x not in deque");
         return NULL;
     }
     rv = deque_del_item(deque, i);
index 9eae9626f7c1f160e8436b06566142db68ae0b01..f29f58dc25be040deb859d118bf0a2f5f5728584 100644 (file)
@@ -3244,7 +3244,7 @@ list_index_impl(PyListObject *self, PyObject *value, Py_ssize_t start,
         else if (cmp < 0)
             return NULL;
     }
-    PyErr_Format(PyExc_ValueError, "%R is not in list", value);
+    PyErr_SetString(PyExc_ValueError, "list.index(x): x not in list");
     return NULL;
 }
 
index d5db48c143324fff193ad9f586107465920e8b23..9727b4f47b53a16426298f508055cd2c016ab3fe 100644 (file)
@@ -655,7 +655,7 @@ range_index(rangeobject *r, PyObject *ob)
     }
 
     /* object is not in the range */
-    PyErr_Format(PyExc_ValueError, "%R is not in range", ob);
+    PyErr_SetString(PyExc_ValueError, "range.index(x): x not in range");
     return NULL;
 }