[Python-Dev] Reintroduce or drop completly hex, bz2, rot13, ... codecs (original) (raw)
M.-A. Lemburg mal at egenix.com
Wed Jun 9 13:53:08 CEST 2010
- Previous message: [Python-Dev] Reintroduce or drop completly hex, bz2, rot13, ... codecs
- Next message: [Python-Dev] Reintroduce or drop completly hex, bz2, rot13, ... codecs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Antoine Pitrou wrote:
On Wed, 09 Jun 2010 10:41:29 +0200 "M.-A. Lemburg" <mal at egenix.com> wrote:
The above example will read: >>> b'abc'.transform("hex") b'616263' >>> b'616263'.untranform("hex") b'abc' This doesn't look right to me. Hex-encoded "data" is really text (it's a textual representation of binary, and isn't often used as an opaque binary transport encoding).
Then we'd need new .encode() and .decode() methods, so that we could write:
>>> b'abc'.encode("hex")
'616263'
>>> '616263'.decode("hex")
b'abc'
The reason is that we don't have helper methods for the directions encoding: bytes->str and decoding: str->bytes.
We do in Python2, so perhaps adding those back as well would be a possibility, but I don't want to strain all this too much.
It's always possible to use:
codecs.encode(b'abc') and codecs.decode('616263')
instead.
Of course, this is not necessarily so for all codecs. For base64-encoded data, for example, it is debatable whether you want it as ASCII bytes or unicode text.
Since there are multiple ways of choosing types, I would like to use the ones that Python2 already chose, if possible.
The only one I'm not sure about is 'rot13': this is an encoding that is only defined for text and works by creating mangled text, so str->str appears to be more correct than str->bytes (which we have in Python2).
-- Marc-Andre Lemburg eGenix.com
Professional Python Services directly from the Source (#1, Jun 09 2010)
Python/Zope Consulting and Support ... http://www.egenix.com/ mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
2010-07-19: EuroPython 2010, Birmingham, UK 39 days to go
::: Try our new mxODBC.Connect Python Database Interface for free ! ::::
eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/
- Previous message: [Python-Dev] Reintroduce or drop completly hex, bz2, rot13, ... codecs
- Next message: [Python-Dev] Reintroduce or drop completly hex, bz2, rot13, ... codecs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]