New submission from Jim Fasarakis-Hilliard: Currently, there's a discrepancy in the exception reporting for the `.index` and `.remove` methods of many objects:
For arrays: array.remove(val) -> ValueError: array.remove(x): x not in list array.index(val) -> ValueError: array.index(x): x not in list not only is always printing `x` not in list not informative, it's wrong since it isn't a list. For tuples: tuple.index(val) -> ValueError: tuple.index(x): x not in tuple For lists: list.remove(val) -> ValueError: list.remove(x): x not in list list.index(val) produces a more informative message: ValueError: <val> is not in list For deques: deque.remove(val) -> ValueError: deque.remove(x): x not in deque similarly to lists, `deque.index(val)` prints the actual argument supplied. I'm not sure if there's valid reasoning behind not providing the repr of the arguments in all `remove` methods but, if there isn't, I'd like to suggest changing all of them to use PyErr_Format and produce more informative messages: array.remove(val) -> ValueError: <val> is not in array array.index(val) -> ValueError: <val> is not in array tuple.index(val) -> ValueError: <val> is not in tuple list.remove(val) -> ValueError: <val> is not in list deque.remove(val) -> ValueError: <val> is not in deque ---------- messages: 289854 nosy: Jim Fasarakis-Hilliard priority: normal severity: normal status: open title: Improve exception messages for remove and index methods type: enhancement versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue29853> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com