Nick Coghlan added the comment:
Updated patch. The results of this suggests to me that the input wrappers are
likely infeasible at this point in time, but improving the errors for the wrong
*output* type is entirely feasible. Since the main conversion we need to prompt
is things like "binary_object.decode(binary_codec)" ->
"codecs.decode(binary_object, binary_codec)", I suggest we limit the scope of
this issue to that part of the problem.
>>> import codecs
>>> codecs.encode(b"hello", "bz2_codec").decode("bz2_codec")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'bz2_codec' decoder returned 'bytes' instead of 'str'; use
codecs.decode to decode to arbitrary types
>>> "hello".encode("bz2_codec")
TypeError: 'str' does not support the buffer interface
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: invalid input type for 'bz2_codec' codec (TypeError: 'str' does not
support the buffer interface)
>>> "hello".encode("rot_13")
TypeError: 'rot_13' encoder returned 'str' instead of 'bytes'; use
codecs.encode to encode to arbitrary types
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: invalid input type for 'rot_13' codec (TypeError: 'rot_13' encoder
returned 'str' instead of 'bytes'; use codecs.encode to encode to arbitrary
types)
----------
Added file:
http://bugs.python.org/file32496/issue17828_improved_codec_errors.diff
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue17828>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com