[Python-Dev] [Python-3000] Betas today - I hope

Walter Dörwald walter at livinglogic.de
Thu Jun 12 16:59:54 CEST 2008


M.-A. Lemburg wrote:
> On 2008-06-11 17:15, Walter Dörwald wrote:
>> M.-A. Lemburg wrote:
>>> On 2008-06-11 13:35, Barry Warsaw wrote:
>>>> So I had planned to do a bunch of work last night looking at the 
>>>> release blocker issues, but nature intervened.  A bunch of severe 
>>>> thunderstorms knock out my 'net access until this morning.
>>>>
>>>> I'll try to find some time during the day to look at the RB issues.  
>>>> Hopefully we can get Guido to look at them too and Pronounce on some 
>>>> of them.  Guido please start with:
>>>>
>>>> http://bugs.python.org/issue643841
>>>>
>>>> My plan is to begin building the betas tonight, at around 9 or 10pm 
>>>> EDT (0100 to 0200 UTC Thursday).  If a showstopper comes up before 
>>>> then, I'll email the list.  If you think we really aren't ready for 
>>>> beta, then I would still like to get a release out today.  In that 
>>>> case, we'll call it alpha and delay the betas.
>>>
>>> There are two things I'd like to get in to 3.0:
>>>
>>>  * .transform()/.untransform() methods (this is mostly done, just need
>>>    to add the methods to PyUnicode, PyBytes and PyByteArray)
>>
>> What would these methods do? Use the codec machinery without any type 
>> checks?
> 
> As discussed in another thread some weeks ago:
> 
> .transform() and .untransform() use the codecs to apply same-type
> conversions. They do apply type checks to make sure that the
> codec does indeed return the same type.
> 
> E.g. text.transform('xml-escape') or data.transform('base64').

So what would a base64 codec do with the errors argument?

>> I think for transformations we don't need the full codec machinery:
>  > ...
> 
> No need to invent another wheel :-) The codecs already exist for
> Py2.x and can be used by the .encode()/.decode() methods in Py2.x
> (where no type checks occur).

By using a new API we could get rid of old warts. For example: Why does 
the stateless encoder/decoder return how many input characters/bytes it 
has consumed? It must consume *all* bytes anyway!

> In Py3.x, .encode()/.decode() only allow conversions of the type
> unicode <-> bytes. .transform()/.untransform() add conversions
> of the type unicode <-> unicode or bytes <-> bytes.
> 
> All other conversions in Py3.x have to go through codecs.encode() and
> codecs.decode() which are the generic codec access functions from
> the codec registry.

Servus,
    Walter



More information about the Python-Dev mailing list