text_combined: martin v löwis qpnyslvloewisde repeat patch django support versions python simultaneously 2x 30 find surprising two reasons 1 impression discussions past year fully automatic use 2to3 would presume use 26 backported 30 features __future__ imports really works ealier 2x code great please pardon initial surprise scepticism precisely started porting experiment still skeptic please substantiate skepticism facts run patch tell doesnt work couldnt completed merely surprised skeptic anymore pleasure believe must port 26 first widespread probably originates statement official porting strategy involves porting 26 first strategy however enable run 3 option find porting problems easily find porting problems hard way ie running software testing dont need 3 warnings started week ago essential 2to3 fixers exist particular one david wolever wrote make implicit relative imports explicit fixer really falls 2to25 category would possible change code use relative imports everywhere thereby breaking 23 compatibility possible examples like still exist ie 2to3 doesnt fix doesnt assume 25 im aware actually thats entirely true email module renaming kind however dealt importerror guards still fixer might useful 2 report caveats certainly large parts code base havent touched issues likely show true port attempts maintain compatibility older python versions single code base goal support versions django supports plus 30 current patch fails certain details due bugs 2to3 tool approach mostly works following flaws fixers work incorrectly bugs 2453 2446 2468 bugs really shallow fixed already worked sqlite3 databases tested true unqualified assertion seems like anticipated future certain maybe others present reality likewise statement cant possibly use code base 21 30 unfounded unlike claim doesnt kind proof behind 3 also said worked around 2to3 failings conditional blocks like presume following sysversion 300 else assume correctly rather 2to3 indeed 2to3 remove wrapper leave 30 code currently leaves code unchanged could fairly easily remove might shift line numbers turn undesirable 2to3 support optional fixers might use case would someone go thru hand get clean 30 code see writing fixer fairly easy somebody certainly would run using burn bridges run understand standard method multiple release code seems bit like cheating since point 2to3 converting typesclasstype types future fixer item sort change 2to3 cant right django would require python 25 conditional could go away appears context creating exception classes onthefly newstyle classes 25 however consider conditional code blocks cheating want provide backwards compatibility always compromise readability portability even case within 2x cant use true false want support python versions didnt use generators iterators older python versions need supported main point 2to3 3x code look nice fact many cases wont since 2to3 must make conservative assumptions cases break semantics program instead main point 2to3 replace syntax going away 3x equivalent syntax cases conventionalize python version syntax changed regards martin _______________________________________________ pythondev mailing list zvlllneumpythonorg httpmailpythonorgmailmanlistinfopythondev unsubscribe httpmailpythonorgmailmanoptionspythondevpythondev40tangomucom wed 06 aug 2008 233845 0100 pythondev proposal __future__import unicode_string_literals