[Python-Dev] Bad interaction of __index__ and sequence repeat
Nick Coghlan
ncoghlan at gmail.com
Sat Jul 29 05:49:51 CEST 2006
Martin v. Löwis wrote:
> Travis Oliphant wrote:
>> I say it's a bug that should be fixed. Don't clear the error, raise it.
>
> Several people have said this, but I don't think it can work.
>
> If you raise an OverflowError in __index__, the slicing code cannot know
> whether this meant as overflow or underflow (in a signed sense).
It can actually, but you have to allow 3 possible error return values from
nb_index (-1, PY_SSIZE_T_MIN and PY_SSIZE_T_MAX).
This is ugly as hell [1], so I'm going to try to work out a patch that changes
the signature of nb_index to return PyObject * (leaving the client code in the
core to decide whether to clip, overflow, or leave the result alone).
Cheers,
Nick.
[1] http://www.python.org/sf/1530738
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
http://www.boredomandlaziness.org
More information about the Python-Dev
mailing list