Author vstinner
Recipients belopolsky, benjamin.peterson, cben, eric.araujo, flox, georg.brandl, gvanrossum, lemburg, loewis, ssbarnea, vstinner
Date 2011-10-17.00:53:28
SpamBayes Score 1.1241e-13
Marked as misclassified No
Message-id <1318812809.87.0.402559707949.issue7475@psf.upfronthosting.co.za>
In-reply-to
Content
What is the status of this issue?

rot13 codecs & friends were added back to Python 3.2 with {bytes,str}.(un)transform() methods: commit 7e4833764c88. Codecs were disabled because of surprising error messages before the release of Python 3.2 final: issue #10807, commit ff1261a14573. transform() and untransform() methods were also removed, I don't remember why/how exactly, maybe because new codecs were disabled.

So we have rot13 & friends in Python 3.2 and 3.3, but they cannot be used with the regular str.encode('rot13'), you have to write (for example):

>>> codecs.getdecoder('rot_13')('rot13')
('ebg13', 5)
>>> codecs.getencoder('rot_13')('ebg13')
('rot13', 5)

The major issue with {bytes,str}.(un)transform() is that we have only one registry for all codecs, and the registry was changed in Python 3 to ensure:
 * encode: str->bytes
 * decode: bytes->str

To implement str.transform(), we need another register. Marc-Andre suggested (msg96374) to add tags to codecs:
"""
.encode_input_types = (str,)
.encode_output_types = (bytes,)
.decode_input_types = (bytes,)
.decode_output_types = (str,)
"""

I'm still opposed to str->str (rot13) and bytes->bytes (hex, gzip, ...) operations using the codecs API. Developers have to use the right module. If the API of these modules is too complex, we should add helpers to these modules, but not to builtin types. Builtin types have to be and stay simple and well defined.
History
Date User Action Args
2011-10-17 00:53:30vstinnersetrecipients: + vstinner, lemburg, gvanrossum, loewis, georg.brandl, cben, belopolsky, benjamin.peterson, eric.araujo, ssbarnea, flox
2011-10-17 00:53:29vstinnersetmessageid: <1318812809.87.0.402559707949.issue7475@psf.upfronthosting.co.za>
2011-10-17 00:53:29vstinnerlinkissue7475 messages
2011-10-17 00:53:28vstinnercreate