Source: sasview Version: 5.0.5-3 Severity: serious X-Debbugs-CC: nu...@packages.debian.org Tags: sid bookworm User: debian...@lists.debian.org Usertags: needs-update Control: affects -1 src:numpy
Dear maintainer(s),With a recent upload of numpy the autopkgtest of sasview fails in testing when that autopkgtest is run with the binary packages of numpy from unstable. It passes when run with only packages from testing. In tabular form:
pass fail numpy from testing 1:1.23.5-2 sasview from testing 5.0.5-3 all others from testing from testing I copied some of the output at the bottom of this report.Currently this regression is blocking the migration of numpy to testing [1]. Of course, numpy shouldn't just break your autopkgtest (or even worse, your package), but it seems to me that the change in numpy was intended and your package needs to update to the new situation.
If this is a real problem in your package (and not only in your autopkgtest), the right binary package(s) from numpy should really add a versioned Breaks on the unfixed version of (one of your) package(s). Note: the Breaks is nice even if the issue is only in the autopkgtest as it helps the migration software to figure out the right versions to combine in the tests.
More information about this bug and the reason for filing it can be found on https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation Paul [1] https://qa.debian.org/excuses.php?package=numpy https://ci.debian.net/data/autopkgtest/testing/amd64/s/sasview/29465796/log.gz=================================== FAILURES =================================== __________________________ TestBasicComponent.test_iq __________________________
self = <test.pr_inversion.utest_invertor.TestBasicComponent testMethod=test_iq>
def test_iq(self): """ Test iq calculation """ q = 0.11v1 = 8.0*math.pi**2/q * self.invertor.d_max *math.sin(q*self.invertor.d_max)
v1 /= ( math.pi**2 - (q*self.invertor.d_max)**2.0 ) pars = numpy.ones(1)
self.assertAlmostEqual(self.invertor.iq(pars, q), v1, 2)
test/pr_inversion/utest_invertor.py:171: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/sas/sascalc/pr/invertor.py:315: in iq
return Pinvertor.iq(self, out, q) + self.background /usr/lib/python3/dist-packages/sas/sascalc/pr/p_invertor.py:339: in iq return np.asscalar(iq_val)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
attr = 'asscalar' def __getattr__(attr): # Warn for expired attributes, and return a dummy function # that always raises an exception. try: msg = __expired_functions__[attr] except KeyError: pass else: warnings.warn(msg, DeprecationWarning, stacklevel=2) def _expired(*args, **kwds): raise RuntimeError(msg) return _expired # Emit warnings for deprecated attributes try: val, msg = __deprecated_attrs__[attr] except KeyError: pass else: warnings.warn(msg, DeprecationWarning, stacklevel=2) return val# Importing Tester requires importing all of UnitTest which is not a # cheap import Since it is mainly used in test suits, we lazy import it
# here to save on the order of 10 ms of import time for most users ## The previous way Tester was imported also had a side effect of adding
# the full `numpy.testing` namespace if attr == 'testing': import numpy.testing as testing return testing elif attr == 'Tester': from .testing import Tester return Tester > raise AttributeError("module {!r} has no attribute " "{!r}".format(__name__, attr)) E AttributeError: module 'numpy' has no attribute 'asscalar' /usr/lib/python3/dist-packages/numpy/__init__.py:311: AttributeError__________________________ TestBasicComponent.test_pr __________________________
self = <test.pr_inversion.utest_invertor.TestBasicComponent testMethod=test_pr>
def test_pr(self): """ Test pr calculation """ r = 10.0 v1 = 2.0*r*math.sin(math.pi*r/self.invertor.d_max) pars = numpy.ones(1)
self.assertAlmostEqual(self.invertor.pr(pars, r), v1, 2)
test/pr_inversion/utest_invertor.py:180: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/sas/sascalc/pr/p_invertor.py:380: in pr
return np.asscalar(pr_val)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
attr = 'asscalar' def __getattr__(attr): # Warn for expired attributes, and return a dummy function # that always raises an exception. try: msg = __expired_functions__[attr] except KeyError: pass else: warnings.warn(msg, DeprecationWarning, stacklevel=2) def _expired(*args, **kwds): raise RuntimeError(msg) return _expired # Emit warnings for deprecated attributes try: val, msg = __deprecated_attrs__[attr] except KeyError: pass else: warnings.warn(msg, DeprecationWarning, stacklevel=2) return val# Importing Tester requires importing all of UnitTest which is not a # cheap import Since it is mainly used in test suits, we lazy import it
# here to save on the order of 10 ms of import time for most users ## The previous way Tester was imported also had a side effect of adding
# the full `numpy.testing` namespace if attr == 'testing': import numpy.testing as testing return testing elif attr == 'Tester': from .testing import Tester return Tester > raise AttributeError("module {!r} has no attribute " "{!r}".format(__name__, attr)) E AttributeError: module 'numpy' has no attribute 'asscalar' /usr/lib/python3/dist-packages/numpy/__init__.py:311: AttributeError_________________________ TestBasicComponent.test_save _________________________
self = <test.pr_inversion.utest_invertor.TestBasicComponent testMethod=test_save>
def test_save(self): x, y, err = load(find("sphere_80.txt")) # Choose the right d_max... self.invertor.d_max = 160.0 # Set a small alpha self.invertor.alpha = .0007 # Set data self.invertor.x = x self.invertor.y = y self.invertor.err = err # Perform inversion out, cov = self.invertor.lstsq(10) # Save f_name = "test_output.txt" self.invertor.to_file(f_name) # Load self.invertor.from_file(f_name) self.assertEqual(self.invertor.d_max, 160.0) self.assertEqual(self.invertor.alpha, 0.0007) self.assertEqual(self.invertor.chi2, 836.797)
self.assertAlmostEqual(self.invertor.pr(self.invertor.out, 10.0), 903.30597721, 4)
test/pr_inversion/utest_invertor.py:436: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/sas/sascalc/pr/p_invertor.py:380: in pr
return np.asscalar(pr_val)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
attr = 'asscalar' def __getattr__(attr): # Warn for expired attributes, and return a dummy function # that always raises an exception. try: msg = __expired_functions__[attr] except KeyError: pass else: warnings.warn(msg, DeprecationWarning, stacklevel=2) def _expired(*args, **kwds): raise RuntimeError(msg) return _expired # Emit warnings for deprecated attributes try: val, msg = __deprecated_attrs__[attr] except KeyError: pass else: warnings.warn(msg, DeprecationWarning, stacklevel=2) return val# Importing Tester requires importing all of UnitTest which is not a # cheap import Since it is mainly used in test suits, we lazy import it
# here to save on the order of 10 ms of import time for most users ## The previous way Tester was imported also had a side effect of adding
# the full `numpy.testing` namespace if attr == 'testing': import numpy.testing as testing return testing elif attr == 'Tester': from .testing import Tester return Tester > raise AttributeError("module {!r} has no attribute " "{!r}".format(__name__, attr)) E AttributeError: module 'numpy' has no attribute 'asscalar' /usr/lib/python3/dist-packages/numpy/__init__.py:311: AttributeError=============================== warnings summary ===============================
test/pr_inversion/utest_invertor.py::TestBasicComponent::test_save/tmp/autopkgtest-lxc.s3tk5hb8/downtmp/autopkgtest_tmp/test/pr_inversion/utest_invertor.py:432: ResourceWarning: unclosed file <_io.TextIOWrapper name='test_output.txt' mode='r' encoding='UTF-8'>
self.invertor.from_file(f_name) Enable tracemalloc to get traceback where the object was allocated.See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html=========================== short test summary info ============================ FAILED test/pr_inversion/utest_invertor.py::TestBasicComponent::test_iq - Att... FAILED test/pr_inversion/utest_invertor.py::TestBasicComponent::test_pr - Att... FAILED test/pr_inversion/utest_invertor.py::TestBasicComponent::test_save - A... =================== 3 failed, 171 passed, 1 warning in 5.68s ===================
autopkgtest [09:26:45]: test python3-sasview
OpenPGP_signature
Description: OpenPGP digital signature