On 12/13/2011 10:54 AM, Vinay Sajip wrote:

I started writing a tool today, tentatively called '2to23', which aims to do
this. It's basically 2to3, but with a package of custom fixers in a package
'lib2to23.fixers' adapted from the corresponding fixers in lib2to3.

When, some year in the future, people want to drop Python 2 compatibility from their Python23 code, they will need a 23to3 tool. You might keep this in mind when designing and documenting a bridge language. For each 2to23 fixer, is there a 23to3 fixer so that 23to3(2to23(code)) == 2to3(code) or close enough. (23to3 can and should assume that its input is the output of 2to23, and only look to convert the ultimately temporary scaffolding inserted by 2to23.)

The point about documentation is to list the names that 2to23 introduces (with its special meanings) and that 23to3 will remove (assuming the special meanings). So these names should neither be in the 2 code before running 2to23 nor added to 23 code (with a different meaning) before running 23to3.

If 2to23 were paired with a 23to3, so people knew that its output is not a deadend cul-de-sac, but a stepping stone to the future, it would be even more attractive.

--
Terry Jan Reedy

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to