[Python-Dev] [Python-3000] Python 3000 Status Update (Long!) (original) (raw)

M.-A. Lemburg mal at egenix.com
Tue Jun 19 15:19:50 CEST 2007


On 2007-06-19 14:40, Walter Dörwald wrote:

Georg Brandl wrote:

A minuscule nit: the rot13 codec has no library equivalent, so it won't be supported anymore :) Given that there are valid use cases for bytes-to-bytes translations, and a common API for them would be nice, does it make sense to have an additional category of codec that is invoked via specific recoding methods on bytes objects? For example:

encoded = data.encodebytes('bz2') decoded = encoded.decodebytes('bz2') assert data == decoded This is exactly what I proposed a while before under the name bytes.transform(). IMO it would make a common use pattern much more convenient and should be given thought. If a PEP is called for, I'd be happy to at least co-author it. Codecs are a major exception to Guido's law: Never have a parameter whose value switches between completely unrelated algorithms.

I don't see much of a problem with that. Parameters are per-se intended to change the behavior of a function or method.

Note that you are referring to the .encode() and .decode() methods - these are just easy to use interfaces to the codecs registered in the system.

The codec design allows for different input and output types as it doesn't impose restrictions on these. Codecs are more general in that respect: they don't just deal with Unicode encodings, it's a more general approach that also works with other kinds of data types.

The access methods, OTOH, can impose restrictions and probably should to restrict the return types to a predicable set.

Why don't we put all string transformation functions into a common module (the string module might be a good place):

import string string.rot13('abc')

I think the string module will have to go away. It doesn't really separate between text and bytes data.

Adding more confusion will not really help with making this distinction clear, either, I'm afraid.

-- Marc-Andre Lemburg eGenix.com

Professional Python Services directly from the Source (#1, Jun 19 2007)

Python/Zope Consulting and Support ... http://www.egenix.com/ mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/


2007-07-09: EuroPython 2007, Vilnius, Lithuania 19 days to go

:::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX 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



More information about the Python-Dev mailing list