[Python-Dev] readd u'' literal support in 3.3?

Michael Foord fuzzyman at voidspace.org.uk
Tue Dec 13 23:17:16 CET 2011

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 <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).

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,


[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.


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

More information about the Python-Dev mailing list