Ezio Melotti added the comment: The attached patch changes the error message of str.encode/bytes.decode when the codec returns the wrong type:
>>> import codecs >>> 'example'.encode('rot_13') TypeError: encoder returned 'str' instead of 'bytes', use codecs.decode for str->str conversions >>> codecs.encode('example', 'rot_13') 'rknzcyr' >>> >>> b'000102'.decode('hex_codec') TypeError: decoder returned 'bytes' instead of 'str', use codecs.encode for bytes->bytes conversions >>> codecs.decode(b'000102', 'hex_codec') b'\x00\x01\x02' This only solves part of the problem though, because individual codecs might raise other errors if the input type is wrong: >>> 'example'.encode('hex_codec') Traceback (most recent call last): File "/home/wolf/dev/py/py3k/Lib/encodings/hex_codec.py", line 16, in hex_encode return (binascii.b2a_hex(input), len(input)) TypeError: 'str' does not support the buffer interface ---------- keywords: +patch Added file: http://bugs.python.org/file30189/issue17828-1.diff _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue17828> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com