forked from python/cpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,6525…
…5-65256 via svnmerge from svn+ssh://[email protected]/python/trunk ........ r65209 | raymond.hettinger | 2008-07-23 19:08:18 -0500 (Wed, 23 Jul 2008) | 1 line Finish-up the partial conversion from int to Py_ssize_t for deque indices and length. ........ r65210 | raymond.hettinger | 2008-07-23 19:53:49 -0500 (Wed, 23 Jul 2008) | 1 line Parse to the correct datatype. ........ r65211 | benjamin.peterson | 2008-07-23 21:27:46 -0500 (Wed, 23 Jul 2008) | 1 line fix spacing ........ r65212 | benjamin.peterson | 2008-07-23 21:31:28 -0500 (Wed, 23 Jul 2008) | 1 line fix markup ........ r65213 | benjamin.peterson | 2008-07-23 21:45:37 -0500 (Wed, 23 Jul 2008) | 1 line add some documentation for 2to3 ........ r65214 | raymond.hettinger | 2008-07-24 00:38:48 -0500 (Thu, 24 Jul 2008) | 1 line Finish conversion from int to Py_ssize_t. ........ r65215 | raymond.hettinger | 2008-07-24 02:04:55 -0500 (Thu, 24 Jul 2008) | 1 line Convert from long to Py_ssize_t. ........ r65216 | georg.brandl | 2008-07-24 02:09:21 -0500 (Thu, 24 Jul 2008) | 2 lines Fix indentation. ........ r65225 | benjamin.peterson | 2008-07-25 11:55:37 -0500 (Fri, 25 Jul 2008) | 1 line teach .bzrignore about doc tools ........ r65226 | benjamin.peterson | 2008-07-25 12:02:11 -0500 (Fri, 25 Jul 2008) | 1 line document default value for fillvalue ........ r65233 | raymond.hettinger | 2008-07-25 13:43:33 -0500 (Fri, 25 Jul 2008) | 1 line Issue 1592: Better error reporting for operations on closed shelves. ........ r65239 | benjamin.peterson | 2008-07-25 16:59:53 -0500 (Fri, 25 Jul 2008) | 1 line fix indentation ........ r65246 | andrew.kuchling | 2008-07-26 08:08:19 -0500 (Sat, 26 Jul 2008) | 1 line This sentence continues to bug me; rewrite it for the second time ........ r65247 | andrew.kuchling | 2008-07-26 08:09:06 -0500 (Sat, 26 Jul 2008) | 1 line Remove extra words ........ r65255 | skip.montanaro | 2008-07-26 19:49:02 -0500 (Sat, 26 Jul 2008) | 3 lines Close issue 3437 - missing state change when Allow lines are processed. Adds test cases which use Allow: as well. ........ r65256 | skip.montanaro | 2008-07-26 19:50:41 -0500 (Sat, 26 Jul 2008) | 2 lines note robotparser bug fix. ........
- Loading branch information
Showing
14 changed files
with
246 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
.. _2to3-reference: | ||
|
||
2to3 - Automated Python 2 to 3 code translation | ||
=============================================== | ||
|
||
.. sectionauthor:: Benjamin Peterson | ||
|
||
2to3 is a Python program that reads your Python 2.x source code and applies a | ||
series of *fixers* to transform it into valid Python 3.x code. | ||
|
||
|
||
Using 2to3 | ||
---------- | ||
|
||
2to3 can be run with a list of files to transform or a directory to recursively | ||
traverse looking for files with the ``.py`` extension. | ||
|
||
Here is a sample Python 2.x source file, :file:`example.py`:: | ||
|
||
def greet(name): | ||
print "Hello, {0}!".format(name) | ||
print "What's your name?" | ||
name = raw_input() | ||
greet(name) | ||
|
||
It can be converted to Python 3.x code via 2to3 on the command line:: | ||
|
||
$ 2to3 example.py | ||
|
||
A diff against the original source file will be printed. 2to3 can also write | ||
the needed modifications right back to the source file. (A backup of the | ||
original file will also be made.) This is done with the :option:`-w` flag:: | ||
|
||
$ 2to3 -w example.py | ||
|
||
:file:`example.py` will now look like this:: | ||
|
||
def greet(name): | ||
print("Hello, {0}!".format(name)) | ||
print("What's your name?") | ||
name = input() | ||
greet(name) | ||
|
||
Comments and and exact indentation will be preserved throughout the translation | ||
process. | ||
|
||
By default, 2to3 will run a set of predefined fixers. The :option:`-l` flag | ||
lists all avaible fixers. An explicit set of fixers to run can be given by use | ||
of the :option:`-f` flag. The following example runs only the ``imports`` and | ||
``has_key`` fixers:: | ||
|
||
$ 2to3 -f imports -f has_key example.py | ||
|
||
Some fixers are *explicit*, meaning they aren't run be default and must be | ||
listed on the command line. Here, in addition to the default fixers, the | ||
``idioms`` fixer is run:: | ||
|
||
$ 2to3 -f all -f idioms example.py | ||
|
||
Notice how ``all`` enables all default fixers. | ||
|
||
Sometimes 2to3 will find will find a place in your source code that needs to be | ||
changed, but 2to3 cannot fix automatically. In this case, 2to3 will print a | ||
warning beneath the diff for a file. | ||
|
||
|
||
:mod:`lib2to3` - 2to3's library | ||
------------------------------- | ||
|
||
.. module:: lib2to3 | ||
:synopsis: the 2to3 library | ||
.. moduleauthor:: Guido van Rossum | ||
.. moduleauthor:: Collin Winter | ||
|
||
.. XXX What is the public interface anyway? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.