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

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



More information about the Python-Dev mailing list