[Numpy-discussion] compatibility for supporting more than 2 versions of numpy
bsouthey at gmail.com
Mon Jan 17 12:18:14 EST 2011
On 01/17/2011 10:32 AM, josef.pktd at gmail.com wrote:
> On Mon, Jan 17, 2011 at 11:28 AM,<josef.pktd at gmail.com> wrote:
>> On Sat, Jan 15, 2011 at 3:27 PM,<josef.pktd at gmail.com> wrote:
>>> After upgrading to numpy 1.5.1 I got caught by some depreciated
>>> features. Given the depreciation policy of numpy, if we want to
>>> support more than two versions of numpy, then we need some conditional
>>> Does anyone have any compatibility functions?
>>> I haven't looked at it carefully yet, but statsmodels might need
>>> things like the following if we want to support numpy 1.3
>>> if np.__version__< '1.5':
>>> freq,hsupp = np.histogram(rvs, histsupp, new=True)
>>> freq,hsupp = np.histogram(rvs,histsupp)
>>> matplotlib says it supports numpy>=1.1 but I didn't see any
>>> compatibility code that I could "borrow".
>>> Or do I worry for nothing? The compatibility.py in statsmodels is
>>> still almost empty.
>> for scipy.linalg, in numdifftools, I changed this in core (in my copy)
>> if numpy.__version__< '1.5':
>> [qromb,rromb] = linalg.qr(rmat, econ=True)
>> [qromb,rromb] = linalg.qr(rmat, mode='economic')
> which is of course silly, since this is for the scipy update
Scipy release notes usually state the supported numpy version eg from
the current 0.8.0 release notes
"This release requires Python 2.4 - 2.6 and NumPy 1.4.1 or greater."
Consequently if you want to support different numpy versions, then you
will need to maintain your own branch with that type of patch. That can
get rather complex to maintain.
It would be better that you change the code calling numpy/scipy
functions rather than the functions themselves such as passing the
appropriate *args and **kwargs to the function.
I would expect that a try/except block would be more general as well as
numpy.__version__ being a str.
More information about the NumPy-Discussion