Thomas Wouters wrote: > On Fri, Feb 17, 2006 at 05:29:32PM +0100, Armin Rigo wrote: > >>> Where obj must be either an int or a long or another object that has >>> the >>> __index__ special method (but not self). > > >>The "anything but not self" rule is not consistent with any other >>special method's behavior. IMHO we should just do the same as >>__nonzero__():
Agreed. I implemented the code, then realized this possible recursion problem while writing the specification. I didn't know how it would be viewed. It is easy enough to require __index__ to return an actual Python integer because for anything that has the nb_index slot you would just return obj.__index__() instead of obj. I'll change the PEP and the implementation. I have an updated implementation that uses the ssize_t patch instead. There seem to be some issues with the ssize_t patch still, though. Shouldn't a lot of checks for INT_MAX be replaced with PY_SSIZE_T_MAX. But, I noticed that PY_SSIZE_T_MAX definition in pyport.h raises errors. I don't think it even makes sense. -Travis _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com