On 13/12/2011 21:10, Terry Reedy wrote:
On 12/13/2011 2:02 PM, PJ Eby wrote:
On Tue, Dec 13, 2011 at 11:24 AM, Antoine Pitrou <solip...@pitrou.net
<mailto:solip...@pitrou.net>> wrote:

    On Tue, 13 Dec 2011 15:28:31 +0100
    "Laurence Rowe" <l...@lrowe.co.uk <mailto:l...@lrowe.co.uk>> wrote:
>
> The approach that most people seem to have settled on for porting
> libraries to Python 3 is to make a single codebase that is
    compatible with
> both Python 2 and Python 3, perhaps making use of the six library.

Do you have evidence that "most" people have settled on that approach?
    (besides the couple of library writers who have commented on this
    thread)

I think there is clearly enough 'some' people to justify official support of a 2to23 (or more obscurely, 2to6, but I just got the point that 6=2*3).

More specifically "six" [1] is the name of Benjamin Peterson's support package to help write code that works on both 2 and 3. So the idea is that the conversion isn't just a straight syntax conversion - but that it [could] generate code using this library.

All the best,

Michael

[1] http://packages.python.org/six/
Beyond that, we don't know and don't need to know.

I've seen more projects doing it that way than maintaining dual code
bases.  In retrospect, it seems way more attractive than having to run a
converter all the time, especially if I could run a "2to6" tool *once*
and then simply write new code using six-isms

Among other things, it means that:

* There's only one codebase
* If the conversion isn't perfect, you only have to fix it once
* Line numbers are the same
* There's no conversion step slowing down development

So, I expect that if the approach is at all viable, it'll quickly become
the One Obvious Way to do it.  In effect, 2to3 is a "purity" solution,
but six is more like a "practicality" solution.

2to3 is the practical solution for someone converting private Python 2 code to run on Python 3 *instead* of Python 2, without looking back. By the nature of things, such conversions will be private and scattered over the next decade or so. If 2to3 works well, we will never hear about them, except for the rare praise. Ditto for public code whose author wishes to abandon Py 2. But that seems to rare so far.

So we are really talking about upgrading public libraries and apps to work with Python 3 *as well as* 'recent' Python 2 versions. For that, a 'Python23' bridge seems to work for some.

Looking ahead, there will in the future be a need for a 23to3 converter to remove the then extraneous bridge code. But that will need a semi-standard 'Python23' to work from.



--
http://www.voidspace.org.uk/

May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html

_______________________________________________
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