[Python-Dev] rationale for the no-new-features approach
Bob Ippolito
bob at redivi.com
Fri Mar 11 05:57:56 CET 2005
On Mar 10, 2005, at 11:46 PM, Glyph Lefkowitz wrote:
> Bob Ippolito wrote:
>> try:
>> set
>> except NameError:
>> from sets import Set as set
>
> Syntactical variations notwithstanding, I think it's a common desire
> to want to run on at least the last few versions of Python, but take
> advantage of improvements and not emit deprecation warnings on the
> latest and greatest.
>
> I am considering releasing a forward-compatibility library for
> installation alongside applications that need to use multiple versions
> of Twisted, so they can do it in a style which is closer to the new
> versions than the old ones: perhaps it might be good practice to start
> doing this for Python as well?
>
> That way instead of multi-line "except NameError" tests all over the
> place you can simply have one-liner boilerplate for every module in
> your project:
>
> 'from py24compat import *'
>
> Easy to grep/sed for when you're ready to stop supporting old
> versions, too, for those of you without a copy of the refactoring
> editor from the 2009 release of PyDev/Eclipse.
>
> The only problem with this idea is that the 2.3 -> 2.4 transition has
> been extremely smooth for me - there are no new features I desperately
> want to use, and there are no old features that were deprecated or
> altered (that I've found yet - knock on wood). Still, future
> incompatibilties are inevitable.
>
> Of course I'd also like to echo the thanks to Anthony for having
> relegated this problem to major releases.
I'm definitely +1 on such a library. I've cobbled together something
like it myself:
http://svn.red-bean.com/bob/py2app/trunk/src/altgraph/compat.py
And this monkey-patches readline support in for UTF-16 streams:
http://svn.red-bean.com/bob/unicode/trunk/utf16reader.py
-bob
More information about the Python-Dev
mailing list