Differences between revisions 4 and 5
Revision 4 as of 2009-04-02 12:41:43
Size: 1139
Editor: JoeAmenta
Revision 5 as of 2010-02-20 13:20:38
Size: 1372
Editor: JoeAmenta
Comment: Updating the status of 3to2... it's no longer just in-the-works :-)
Deletions are marked like this. Additions are marked like this.
Line 26: Line 26:

During the Google Summer of Code 2009, [[JoeAmenta|Joe Amenta]] wrote a more-or-less complete lib3to2. It is hosted on [[http://bitbucket.org/amentajo/lib3to2|bitbucket]] and has a [[http://pypi.python.org/pypi/3to2|PyPI page]].

3to2 is a project to convert cleaner 3.x code to 2.x.

3to2 started as a project idea to reuse the 2to3/lib2to3 codebase for converting 3.x code to 2.x. This creates a new package, 'refactor', which supports lib2to3 and (non-existent) lib3to2.

The following goals were targeted at the US PyCon 2009 sprint of Python Core:

  • retain lib2to3 API since it is in use (perhaps deprecate it later)
  • build a base package 'refactor' and port lib2to3 to it
  • package refactor with a 3to2 script
  • tackle high-priority conversions

The discussions at the sprint pointed to a handful of essential conversions to use as starting goals of 3to2:

  • from __future__ import * (2.6)

  • convert str or bytes to u'' or b'', respectively

  • convert print functions (2.5 and earlier)

  • convert exceptions (2.5 and earlier)

How far back into 2.x should 3to2 go?

Conversions from 3.x to 2.4 and earlier have a lot more work to do than those of 3.x to 2.6 and later. :-) During the sprint, we approached tackling major conversion items (see short list above) for 3.x to 2.6, then 2.5, then 2.4, ...

During the Google Summer of Code 2009, Joe Amenta wrote a more-or-less complete lib3to2. It is hosted on bitbucket and has a PyPI page.

3to2 (last edited 2010-02-20 13:20:38 by JoeAmenta)

Unable to edit the page? See the FrontPage for instructions.