New submission from David M. Beazley <beaz...@users.sourceforge.net>:
See Issue 4869 for a related bug. Most of the functions in binascii are meant to go from binary data to textual representations (hex digits, base64, binhex, etc.). There are numerous problems: 1. Misleading error messages. For example: >>> binascii.b2a_base64("Some text") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: b2a_base64() argument 1 must be string or buffer, not str >>> binascii.crc32("Some text") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: crc32() argument 1 must be string or buffer, not str >>> Huh? Didn't I just pass a string? Error message should say "argument 1 must be bytes or buffer, not str". This problem shows up with most of the other encoding functions too (i.e., b2a_uu). 2. Expected behavior with encoding/decoding. The functions in this module are going from binary to text. To be consistent, I think the result of encoding operations such as b2a_uu(), b2a_base64(), should be strings, not bytes. Similarly, decoding operations are going from text back to bytes. I think the input arguments should be allowed to be str (in addition to bytes if you want). ---------- components: Library (Lib) messages: 78470 nosy: beazley severity: normal status: open title: binascii module, crazy error messages, unexpected behavior type: behavior versions: Python 3.0 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue4770> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com