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