[Python-Dev] readd u'' literal support in 3.3? (original) (raw)

Terry Reedy tjreedy at udel.edu
Tue Dec 13 22:10:27 CET 2011


On 12/13/2011 2:02 PM, PJ Eby wrote:

On Tue, Dec 13, 2011 at 11:24 AM, Antoine Pitrou <solipsis at pitrou.net_ _<mailto:solipsis at pitrou.net>> wrote:

On Tue, 13 Dec 2011 15:28:31 +0100 "Laurence Rowe" <l at lrowe.co.uk <mailto:l at 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). 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.

-- Terry Jan Reedy



More information about the Python-Dev mailing list