Author ncoghlan
Recipients barry, ezio.melotti, flox, ncoghlan
Date 2013-11-04.13:00:07
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1383570008.89.0.743487195803.issue17828@psf.upfronthosting.co.za>
In-reply-to
Content
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)
History
Date User Action Args
2013-11-04 13:00:08ncoghlansetrecipients: + ncoghlan, barry, ezio.melotti, flox
2013-11-04 13:00:08ncoghlansetmessageid: <1383570008.89.0.743487195803.issue17828@psf.upfronthosting.co.za>
2013-11-04 13:00:08ncoghlanlinkissue17828 messages
2013-11-04 13:00:08ncoghlancreate