Message 79907 - Python tracker (original) (raw)
On Thu, Jan 15, 2009 at 10:48 AM, Mark Dickinson <report@bugs.python.org> wrote:
Mark Dickinson <dickinsm@gmail.com> added the comment:
Thanks, Benjamin! Checked in in r68553, backported to 3.0 in r68556.
Here's the second patch, which fixes almost all remaining uses of nb_long but stops short of actually removing/renaming the nb_long slot.
Notes:
(1) I haven't tested the change to PC/winreg.c
This looks correct. In fact, I don't really see the point of having PyHKEY_unaryFailureFunc since a TypeError will automatically be raised if the slot is NULL, but that is certainly another issue.
(2) The Modules/_struct.c change does introduce a change in behaviour: for example, before the patch,
struct.pack('q', decimal.Decimal(1))
raises struct.error. After the patch, the packing succeeds. I think the patched behaviour is probably the right behaviour, since it agrees with 2.x, but it's not 100% clear to me what the intentions of the struct module are with respect to integer packing of non-integer types. This is probably a question for another issue.
Since Decimal implements int and that's what the struct module is converting with, I think this is fine.
Overall, the patch looks fine. I wonder if we should mark PyNumber_Long as deprecated in the docs, though.