[Python-Dev] 2to3 and print function
Guido van Rossum
guido at python.org
Thu Mar 20 07:15:20 CET 2008
On Wed, Mar 19, 2008 at 10:27 PM, David Wolever <wolever at cs.toronto.edu> wrote:
> On 19-Mar-08, at 6:44 PM, Collin Winter wrote:
> > You can pass -p to refactor.py to fix this on a per-run basis. See
> > r58002 (and the revisions it mentions) for a failed attempt to do this
> > automatically.
>
> So, correct me if I'm wrong, but the relevant code is this:
> - try:
> - tree = self.driver.parse_string(data)
> - except parse.ParseError, e:
> - if e.type == token.EQUAL:
> - tree = self.printless_driver.parse_string(data)
> - else:
> - raise
>
> Why not, instead of trying both parsers, scan for a __future__
> import, then do the Right Thing based on that?
Different use cases.
Auto-detection based on __future__ would be a good thing to have
(assuming that __future__ statement has actually been implemented :-).
But the -p lag is for code that has already been converted to 3.0 (as
far as print statements are concerned anyway) and hence doesn't have
__future__ statements. This is mostly used in the standard library,
where sometimes it is useful to run selected fixers again after a
merge. :-)
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list