[IPython-dev] Dropping 2.4 support

Darren Dale dsdale24 at gmail.com
Fri Aug 21 18:44:44 EDT 2009

On Fri, Aug 21, 2009 at 5:58 PM, Fernando Perez<fperez.net at gmail.com> wrote:
> On Fri, Aug 21, 2009 at 12:04 PM, Brian Granger<ellisonbg.net at gmail.com> wrote:
>>> - Specific things we gain from being 2.5-only (not the "what's new in
>>> 2.5" document, but which of those do *we* benefit from)
>> * Absolute imports would allow us to ship enthought.traits in externals and
>> avoid 1) the performance problems of namespace packages and 2) conflicting
>> with other installed versions of enthought.traits.
>> * Certain parts of twisted use the new generator features in 2.5.  Being
>> able to use these features of twisted would probably dramatically simplify
>> all of our twisted using test code.  This would be a *massive* improvement
>> in maintainability.
>> * Obviously there are all the other minor things like with and
>> try/except/else/finally, but these are convenience things.
>> * The faster we drop support for python 2.4 and 2.5, the easier moving to
>> py3k will be.  I am not yet proposing that we drop 2.5 support though.
> This is a good list for me.  Just to provide some context for the
> others, here at scipy we've been having extensive discussions with
> Enthought and the matplotlib team, on the possibility of using traits
> without making it an external dependency.  For now we'll continue with
> Brian's Traitlets work because:
> - it gives us a pure-python implementation
> - it serves as a 'review' of the Traits model, which is great in many
> ways, but has accumulated some things that can probably be looked at
> again with the benefit of hindsight.
> But we'll enable the running of  our test suite both agianst Traitlets
> AND against true Traits, to ensure we spot deviations in Traitlets
> from the Traits API.
> Once our own dust settles, we can revisit the question of whether to
> swap out Traitlets for Traits, especially if it becomes possible to
> remove the pure C dependencies in it after a cleanup and some possible
> Cython work.
> With this rationale, unless someone has a strong objection, I'm
> inclined to allow Trunk to move forward to 2.5.  We can always
> backport critical bugfixes to 0.10 and put out a 0.10.1 that would be
> 2.4-fixed, if such issues are reported (hopefully with patches).
> We don't have to make this decision *now* though, so let's wait for a
> few days in case someone has a valid objection that may force us to
> revisit the question, before making a final commitment.

The two reasons I suggested dropping 2.4 support were absolute imports
and py3 transition. I would like to know what Eric Jones and Robert
Kern think about the following: if enthought.traits imported
absolute_import, and used relative imports for all intra-traits
imports, it would allow ipython to include enthought_traits as a
(non-namespace) subpackage in ipython  with a simple patch to make it
pure python. Ipython would *not* install it as top level package, we
learned from our problems doing this in matplotlib. This could replace
Traitlets entirely, and Ipython could first try to import traits from
the top level, and fall back on the ipython.enthought_traits
subpackage if it fails. Ipython could still test using both the pure
python alternative and the full top-level traits package, and it would
be much easier (trivial) to track traits development and offer patches
for upstream.


More information about the IPython-dev mailing list