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

Michael Foord fuzzyman at voidspace.org.uk
Tue Dec 13 15:34:00 CET 2011

On 13/12/2011 14:28, Laurence Rowe wrote:
> On Tue, 13 Dec 2011 14:42:12 +0100, Michael Foord 
> <fuzzyman at voidspace.org.uk> wrote:
>> On 13/12/2011 13:33, Laurence Rowe wrote:
>>> On Mon, 12 Dec 2011 22:18:40 +0100, Chris McDonough 
>>> <chrism at plope.com> wrote:
>>>> On Mon, 2011-12-12 at 09:50 -0500, PJ Eby wrote:
>>>>>         As someone who ported WebOb and other stuff built on top 
>>>>> of it
>>>>>         to Python
>>>>>         3 without using "from __future__ import unicode_literals", 
>>>>> I'm
>>>>>         kinda sad
>>>>>         that to be using best practice I'll have to go back and flip
>>>>>         the
>>>>>         polarity on everything.
>>>>> Eh?  If you don't need unicode_literals, what's the problem?
>>>> Porting the WebOb code sucked.  It's only about 5K lines of code 
>>>> but the
>>>> porting effort took me about 80 hours.  Some of the problem is 
>>>> certainly
>>>> my own idiocy, but some of it is just because straddling code across
>>>> Python 2 and Python 3 currently requires that you change lots and lots
>>>> of code for suspect benefit.
>>> Could this manual work be cut down if there was a version of 2to3 
>>> that targeted the subset of the language that is compatible with 
>>> both 2 and 3? That would seem to avoid most of the drawbacks to the 
>>> current 2to3 approach.
>> I'm not sure what you mean, but it *reads* as if you mean "a version 
>> of 2to3 that only converts code that doesn't need converting". Could 
>> you clarify?
> 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. If I understand correctly, Chris' experience of porting WebOb 
> was that there is a large amount of manual work required in this 
> approach in part because of the many u'' strings in libraries that 
> extensively use unicode. It should be possible to automate this with 
> the same approach as 2to3, but instead of a transform from 2->3 it 
> would transform code from 2->(2 & 3). In this case the transform would 
> only have to be run once (rather than on every setup.py install) and 
> would avoid the difficulties of debugging with tracebacks that do not 
> exactly match the source code.

Ah, you mean a 2toPython3compatible2  converter. Not a bad idea.


> Laurence
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: 
> http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.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