2to3 is a tool that automatically translates 2.x code to 3.x code.
Overview: Fun with 2to3 by Benjamin Peterson
The code is located at http://svn.python.org/view/sandbox/trunk/2to3. At the moment, it is principally maintained by BenjaminPeterson. Since Python 2.6, it has been included in the standard library. http://docs.python.org/library/2to3.html
- Some people have expressed interest in adding directives in the source to 2to3. So you could write:
# 2to3: strings-are-bytes x = "hi" # 2to3: endand that would get translated to
x = b"hi"
Last year there was a project to add confidence rankings to 2to3 changes. People could configure them to a certain level and deal with low confidence refactoring manually (or interactively). For some reason, the project was never finished. If you want to find more out about that, I suggest you contact the student or his mentor, Collin Winter.
Some people have expressed an interest in seeing a 3to2 tool which would make 3.x code valid for ~2.5. Work is in progress, see 3to2