[Python-Dev] readd u'' literal support in 3.3? (original) (raw)
Michael Foord fuzzyman at voidspace.org.uk
Tue Dec 13 23:17:16 CET 2011
- Previous message: [Python-Dev] readd u'' literal support in 3.3?
- Next message: [Python-Dev] readd u'' literal support in 3.3?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: [Python-Dev] readd u'' literal support in 3.3?
- Next message: [Python-Dev] readd u'' literal support in 3.3?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]