Oren Milman added the comment: Ah, I should have read more about __int__ and __index__ before writing my last reply. So IIUC, this is a somewhat painful issue, which could be resolved by: * #20092 * replacing _PyLong_FromNbInt with PyNumber_Index in: - Objects/longobject.c (as you suggested in https://bugs.python.org/issue12965#msg146252) - Modules/zlibmodule.c in ssize_t_converter I didn't find any issue for the second one. If there is really no such issue, why is that? (I am sorry if I am the thousandth one to ask) The first paragraph of your comment in https://bugs.python.org/issue21111#msg215660 suggests it might break a lot of code in the wild, but shouldn't we start with raising a deprecation warning?
With regard to my patch - should I make the following changes? 1. in Modules/arraymodule.c - add a call to PyNumber_Index before the call to _PyLong_FromNbInt (and move them into a helper function, as done in Modules/_struct.c) 2. in Lib/test/test_array.py: * replace the name 'LikeInt' with 'IntCompatible' (I am not sure this is an appropriate name either. If you have a better name in mind, please share :) ) * add tests for LikeInt (this time, a class with a __index__ method) 3. In Doc/library/array.rst: * add a note saying that setting int-like objects (i.e. objects with __index__) to items in an integers array is possible * while we are here, remove the note about the availability of 'q' and 'Q' only in certain platforms ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28298> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com