[Python-Dev] Reintroduce or drop completly hex, bz2, rot13, ... codecs

R. David Murray rdmurray at bitdance.com
Thu Jun 10 14:18:08 CEST 2010


On Thu, 10 Jun 2010 12:27:33 +0200, Baptiste Carvello <baptiste13z at free.fr> wrote:
> Victor Stinner wrote:
> 
> > I suppose that each codec will have a different list of accepted input and
> > output types. Example:
> 
> >    bz2: encode:bytes->bytes, decode:bytes->bytes
> >    rot13: encode:str->str, decode:str->str
> >    hex: encode:bytes->str, decode: str->bytes
> 
> A user point of view: please NO.
> 
> This might be more consistent with the semantics, but it forces users to sc=
> ratch =
> 
> their head each time to find out which types are involved. I'd rather all =
> 
> methods take and return the same types, independant of codec, that is:
> 
> .encode : str->bytes
> .decode : bytes->str
> .(un)transform : same type, str->str or bytes->bytes
> 
> All other uses can be trivially done with .encode('ascii')/.decode('ascii').
> 
> Changing the type of *ascii* text is easy, understanding bytes vs str semantics is not!

+1

Consistency in interface is more important in *this* context than the
sensibleness of any particular transform.

--
R. David Murray                                      www.bitdance.com


More information about the Python-Dev mailing list