[Python-Dev] test_gzip/test_tarfile failure om AMD64 (original) (raw)

Bob Ippolito bob at redivi.com
Tue May 30 11:16:09 CEST 2006


On May 29, 2006, at 8:00 PM, Tim Peters wrote:

[Bob Ippolito]

... Actually, should this be a FutureWarning or a DeprecationWarning? Since it was never documented, UndocumentedBugGoingAwayError ;-) Short of that, yes, DeprecationWarning. FutureWarning is for changes in non-exceptional behavior (.e.g, if we swapped the meanings of "<"_ _and ">" in struct format codes, that would rate a FutureWarning subclass, line InsaneFutureWarning). OK, this behavior is implemented in revision 46537:

(this is from ./python.exe -Wall) >>> import struct ... >>> struct.pack('<B', -1) /Users/bob/src/python/Lib/struct.py:63: DeprecationWarning: struct integer wrapping is deprecated return o.pack(*args) /Users/bob/src/python/Lib/struct.py:63: DeprecationWarning: 'B' format requires 0 <= number <= 255 return o.pack(*args) '\xff' We certainly don't want to see two deprecation warnings for a single deprecated behavior. I suggest eliminating the "struct integer wrapping" warning, mostly because I had no idea what it meant before reading the comments in struct.c ("wrapping" is used most often in a proxy or delegation context in Python these days). "'B' format requires 0 <= number <= 255" is perfectly clear all by itself.

What should it be called instead of wrapping? When it says it's
wrapping, it means that it's doing x &= (2 ^ (8 * n)) - 1 to force a
number into meeting the expected range.

Reducing it to one warning instead of two is kinda difficult. Is it
worth the trouble?

-bob



More information about the Python-Dev mailing list