[Python-modules-team] Bug#919929: python-scipy: autopkgtest fails (Re: bug#919929)

Drew Parsons dparsons at debian.org
Sun Mar 10 07:46:23 GMT 2019


On 2019-03-10 03:51, Paul Gevers wrote:
> Hi Drew,
> 
> On 08-03-2019 03:08, Drew Parsons wrote:
>> On 2019-03-07 20:46, Paul Gevers wrote:
>>> If you upload now, your package will not migrate to testing before 
>>> the
>>> full freeze becomes effective so it would need an unblock. If you 
>>> want
>>> to fix this issue with the three lines I saw in the bug report, you 
>>> can
>>> go ahead. However, it is probably worth waiting for a resolution of 
>>> bug
>>> 915738 and combine it with that.
>>> 
>> 
>> Alas, the deprecation patch (in python-scipy 1.1.0-3) doesn't actually
>> prevent emission of the deprecation warnings, so they're still 
>> spamming
>> the debci log.
> 
> Do you have evidence they did anything at all? If not, please revert
> this if we get to a new upload.

It would seem it did not help.  In any case, the upstream patches 
supercede this patch, so it will be removed naturally.

>> To remove the deprecation warnings we'd need to deal with them at the
>> source. Upstream has patches
>> https://github.com/scipy/scipy/commit/614847c5fc8d5f8a618980df3c1b93540428ae46
>> 
>> https://github.com/scipy/scipy/commit/e0cfa29e2fbe86f994924c0c7514ff5bbfffd514
>> 
>> and for completeness
>> https://github.com/scipy/scipy/commit/87e48c3c54d7a85bc6628c88c1de98ac0469b6fa
>> 
>> 
>> The deprecation problem (matrix API) appears in many places, but the 
>> fix
>> is straightfoward: replace np.matrix with matrix from from
>> scipy.sparse.sputils
>> 
>> Can you authorise an unblock to apply these 3 upstream patches to
>> python-scipy 1.1.0 ?
>> That won't necessarily fix the debci failure, but it will make it a 
>> lot
>> easier to see what's actually failing.
> 
> I am slightly unhappy with the second patch, as it seems to be doing
> more than you describe above in a few places. This may be correct but
> that is difficult to quickly judge.

The patches as they are don't apply cleanly to the 1.1.0 source, so I'll 
need to adapt them anyway.  I can retain only the ones relevant to 
updating the matrix API.


> Also, what is the general documented way that these wrappers can be
> used? scipy is sort of taking over the maintenanceship of these
> functions in this way if we're not careful.


It's a good question that the other scipy maintainers might have thought 
more about.  As far as I can tell, the scipy tests affected here involve 
sparse matrices.  The trouble arises from an "inadequacy" in the core 
numpy API, with numpy.matrix only being suitable for dense matrices.  
scipy could be described as "numpy+algorithms", with additional 
algorithms required to handle sparse matrices, provided in 
scipy.sparse.sputils.matrix.

numpy.matrix is documented at 
https://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.html

The scipy sparse matrix API is at 
https://docs.scipy.org/doc/scipy/reference/sparse.html, but that's 
specifically for scipy.sparse.spmatrix

There is discussion of the distinction between numpy.matrix and 
numpy.ndarray (which is at the heart of the deeprecation warning) at 
https://docs.scipy.org/doc/scipy/reference/tutorial/linalg.html#numpy-matrix-vs-2d-numpy-ndarray

The utility class scipy.sparse.sputils itself is apparently 
undocumented, by which I infer it's intended for internal use only, not 
a public API. I guess it's reasonable for a package to be testing it's 
own internal functions.  Strange thing is, scipy.sparse.sputils.matrix 
is not actually defined in scipy/sparse/sputils.py. Must be inherited or 
defined in some deep pythonfu that I haven't mastered yet.

I'll check that I can adapt those upstream patches to cleanly remove 
these deprecation warnings.

Drew



More information about the Python-modules-team mailing list