On Sun, May 16, 2010 at 11:17 PM, Aaron S. Meurer <[email protected]> wrote: > Python 2.4 incompatibilities have kind of annoyed me recently, so I am sort > of resurrecting this thread: > http://groups.google.com/group/sympy/browse_thread/thread/6fd82f6a77c24f63 > > How much longer should we support Python 2.4? That thread was written almost > a year ago (a year minus one month), and I think it was mentioned that we > should keep support at least for a year. I am of the opinion that the 0.7.0 > release should drop Python 2.4 support. It will be a point release, with big > changes anyway. > > The main annoyance is that there were many nice syntactical and standard > library additions to Python 2.5 that we have to either not use or create work > arounds for. Here are some examples. Everything that I list here I have > either personally run into as a problem, or have seen other people run into: > > - any() and all() built-in functions. Right now, we have our own versions of > these functions for use in Python 2.4. > > - min(x, y, key=func). The key argument was not introduced until Python 2.5, > meaning that finding the minimum of a list with respect to a custom key > function must be done manually. > > - with statements. These are supported in Python 2.5 with the from > __future__ import with_statement directive. These are currently unused > (because we can't), but they could be very useful with the new assumptions, > and probably in other places too. > > - finally. Use of finally blocks with except blocks using try was introduced > in Python 2.5. > > - conditional expressions. true_value if condition else false_value. > Currently emulated with the iff() function. > > - functools. There are some useful things here, such as wraps(), which can > clean up our decorators a bit. See > http://groups.google.com/group/sympy/browse_thread/thread/bfc8509a39e1c296/427bbd6c314231a5 > and issue 1843. > > - SKIP in doctests. We have to use >> instead. > > - Python 3 style relative imports. This was mentioned by Frederick in the > thread last year as a potential problem for supporting both Python 3 and > Python 2.4. > > - func(1, *args, key=value). You have to use func(1, *args, **{key:value}). > This wasn't added until Python 2.6, so we still wouldn't be able to use it, > but still I wanted to add it here because it annoys me :) > > In addition to these, .txt doctests don't work in Python 2.4. And speaking > of tests, when Python 2.7 comes out very soon, we will have to either drop > Python 2.4 or support 4 Python versions, which is additionally complicated by > the fact that we should be testing all the combinations of the various ground > types for the new polys, as well as -Qnew, and in 32 and 64 bits. > > So what are people's opinions on this? If we decide to drop support in sympy > 0.7.0, we can drop support now, since that will be the next version.
Well I think that we need to fix our tests anyway, so that they work with any hashing. As to python2.4, I don't use it anymore, but let's see what people think. Ondrej -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
