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 <[email protected]>
<http://bugs.python.org/issue29853>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com