[Twisted-Python] Python 2.2 Support

Jonathan Lange jml at mumak.net
Mon Nov 7 08:47:49 EST 2005

On 06/11/05, Jean-Paul Calderone <exarkun at divmod.com> wrote:
> >You are confused. At least two people were *for* dropping 2.2 support
> >in this thread, and nobody was against it. I'm pretty sure several
> >others have been for dropping it on IRC, as well.
> Confused, perhaps.  Or perhaps their positions were voiced with such limited enthusiasm I just forgot about them :)

My apologies.  I often try to restrain my enthusiasm for fear that
excess emotion will sidetrack rational discussion.  I am very keen to
ditch Python 2.2 support.

> It's a pretty good list, I must admit.  But I wonder what the specific gains to Twisted will be.  Just having a list of things Python 2.3 can do that Python 2.2 cannot does not seem compelling to me.

One specific gain already mentioned is that we get to remove a bunch
of code. Less code means fewer bugs and less work. It might even
improve our test coverage.

Here's a list of stuff (shamelessly grepped) that could probably be
simplified if we dropped 2.2 support:

twisted/conch/test/test_filetransfer.py:        # XXX: Remove 'uid'
and 'gid', because python 2.2 doesn't have os.lchown, so we just skip
that bit (dodgy!)
twisted/conch/unix.py:            # XXX: Python 2.2 doesn't have os.lchown!
twisted/internet/error.py:        # only works in 2.2
twisted/python/dist.py:    Python 2.2's distutils. Pretty similar
arguments to getDataFiles,
twisted/python/dist.py:# Apple distributes a nasty version of Python
2.2 w/ all release builds of
twisted/python/dist.py:    Changes behavior in Python 2.2 to support
simultaneous specification twisted/python/reflect.py:    This is a
2.2-only alternative to the Accessor mixin - just set in your
twisted/python/zshcomp.py:# in case of python2.2 ...
twisted/test/test_compat.py:        # without replacing isinstance on
2.2 as well :(
twisted/topfiles/setup.py:# 2.2 doesn't have __file__ in main-scripts.
twisted/trial/unittest.py:        # only overriding this because
Python 2.2's unittest has a broken
twisted/trial/unittest.py:        """a python2.2 friendly test to
assert that substring is found in astring
twisted/trial/unittest.py:        """a python2.2 friendly test to
assert that substring is not found in
twisted/trial/unittest.py:        # FIXME: when we drop support for
python 2.2 and start to require 2.3,
twisted/conch/ssh/filetransfer.py:        isFile, name =
self.wasAFile[d] # replace with get when we're at 2.3
twisted/lore/lint.py:# parser.suite in Python 2.3 raises SyntaxError,
<2.3 raises parser.ParserError
twisted/scripts/trial.py:        (relative to _trial_temp). Requires
Python 2.3.3."""
twisted/spread/jelly.py:            raise
NotImplementedError("Datetime unserializing not supported in Python <
twisted/trial/runner.py:                          "python 2.3 or
later, not running doctests")
twisted/trial/runner.py:                          "python 2.3 or
later, not running doctests")
twisted/trial/test/test_doctest.py:    skip = 'doctest support only
works on 2.3 or later'
twisted/trial/test/test_doctest.py:        # doctest reports failures
as errors in 2.3
twisted/trial/test/test_failure_formatting.py:                'doctest
support only works in Python 2.3 or later')
"recommended you upgrade to Python 2.3.2 or newer if you "

Plus the modules in twisted/python/pymodules.

As you can see, Trial carries a fair part of the 2.2 support burden. 
I'm eager to be rid of it.


More information about the Twisted-Python mailing list