Nick Coghlan added the comment:

+1 for someone stepping up to write a PEP on this if they would like to see the 
situation improved in 3.4.

transform/untransform has at least one core developer with an explicit -1 on 
the proposal at the moment (me).

We *definitely* need a generic object->object convenience API in the codecs 
module (codecs.decode, codecs.encode). I even accept that those two functions 
could be worthy of elevation to be new builtin functions.

I'm *far* from convinced that awkwardly named methods that only handle 
str->object, bytes->object and bytearray->object are a good idea. Should 
memoryview gain transform/untransform methods as well?

transform/untransform as proposed aren't even inverse operations, since they 
don't swap the valid input and output types (that is, transform is 
str/bytes/bytearray to arbitrary objects, while untransform is *also* 
str/bytes/bytearray to arbitrary objects. Inverses can't have a domain/range 
mismatch like that).

Those names are also ambiguous about which one corresponds to "encoding" and 
which to "decoding". encode() and decode(), whether as functions in the codecs 
module or as builtins, have no such issue.

Personally, the more I think about it, the more I'm in favour of adding encode 
and decode as builtin functions for 3.4. If you want arbitrary object->object 
conversions, use the builtins, if you want strict str->bytes or 
bytes/bytearray->str use the methods. Python 3 has been around long enough now, 
and Python 3.2 and 3.3 are sufficiently well known that I think we can add the 
full power builtins without people getting confused.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue7475>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to