[Python-3000] PEP 3137 plan of attack (stage 3)

Guido van Rossum guido at python.org
Fri Oct 26 21:18:13 CEST 2007


2007/10/19, Guido van Rossum <guido at python.org>:
> On 10/7/07, Guido van Rossum <guido at python.org> wrote:
> > I'd like to make complete implementation of PEP 3137 the goal for the
> > 3.0a2 release. It should be doable to do this release by the end of
> > October. I don't think anything else *needs* to be done to have a
> > successful a2 release.
>
> I'm still hopeful, though realistically we may not quite make it.

Mid November sounds more like it.

Below is a full updated status update; here's a short list of the
tasks that remain to be done:

- remove compatibility with PyString from PyUnicode
- change lots of places (e.g. encoders) to return PyString instead of PyBytes
- change PyString's repr() to return "b'...'" (1)
- change PyBytes's repr() to return "buffer(b'...')" (1)
- change parser so that b"..." returns PyString, not PyBytes (1)
- rename bytes -> buffer, str8 -> bytes (1)
- change PyBytes so that its str() is the same as its repr().
- change PyString so that its str() is the same as its repr().

(1) see http://bugs.python.org/issue1247

I'll be working on all of these together; they're hard to separate out.

Here's the full list:

> > - remove locale support from PyString
>
> Done.
>
> > - remove compatibility with PyUnicode from PyString

Done.

> > - remove compatibility with PyString from PyUnicode
>
> Not done yet.
>
> > - add missing methods to PyBytes (for list, see the PEP and compare to
> > what's already there)
>
> Done (Gregory P. Smith)
>
> > - remove buffer API from PyUnicode
>
> Done.
>
> > - make == and != between PyBytes and PyUnicode return False instead of
> > raising TypeError
>
> Done.
>
> > - make == and != between PyString and Pyunicode return False instead
> > of converting
>
> A patch by Thomas Lee exists: http://bugs.python.org/issue1263
> However it breaks some unit tests.

Done.

> > - make comparisons between PyString and PyBytes work (these are
> > properly ordered)
>
> Already works.
>
> > - change lots of places (e.g. encoders) to return PyString instead of PyBytes
>
> Not done.
>
> > - change indexing and iteration over PyString to return ints, not
> > 1-char PyStrings
>
> A patch by Alexandre Vassalotti exists but breaks some unit tests:
> http://bugs.python.org/issue1280

Done.

> > - change PyString's repr() to return "b'...'"
> > - change PyBytes's repr() to return "buffer(b'...')"
> > - change parser so that b"..." returns PyString, not PyBytes
> > - rename bytes -> buffer, str8 -> bytes
>
> A patch by Alexandre Vassolotti and Christian Heimes exists for these 4 items:
> http://bugs.python.org/issue1247
> However it breaks too many tests to be applied right now.

Still pending.

> > - change the constructor for PyString to match the one for PyBytes
>
> Not done.

Done.

> > - change PyBytes so that its str() is the same as its repr().
> > - change PyString so that its str() is the same as its repr().
>
> Not done.
>
> > - add an iteration view over PyBytes (optional)
>
> Not yet done (Christian Heimes offered).

Done.

> > - kill basestring.
>
> Done (Christian Heimes).
>
> > - move initialization of sys.std{in,out,err} into C code and do it earlier.
>
> A patch by Christian Heimes exists: http://bugs.python.org/issue1267
> However it still breaks some unit tests...

Done.

> There are also some issues that mainly crop up in non-English locales.
> We will try to get to the bottom of those before releasing 3.0a2, but
> I need help as I'm myself absolutely unable to work with locales (and
> I don't have access to a Windows box).

I think Christian and a few others are making progress here.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-3000 mailing list