Bug#906207: skimage FTBFS on 32bit: ValueError: Unexpected warning: overflow encountered in long_scalars

Adrian Bunk bunk at debian.org
Wed Aug 15 15:13:09 BST 2018


Source: skimage
Version: 0.14.0-1
Severity: serious

https://buildd.debian.org/status/package.php?p=skimage

...
=================================== FAILURES ===================================
________________________________ test_spacing_1 ________________________________

    def test_spacing_1():
        n = 30
        lx, ly, lz = n, n, n
        data, _ = make_3d_syntheticdata(lx, ly, lz)
    
        # Rescale `data` along Y axis
        # `resize` is not yet 3D capable, so this must be done by looping in 2D.
        data_aniso = np.zeros((n, n * 2, n))
        for i, yz in enumerate(data):
            data_aniso[i, :, :] = resize(yz, (n * 2, n),
                                         mode='constant',
                                         anti_aliasing=False)
    
        # Generate new labels
        small_l = int(lx // 5)
        labels_aniso = np.zeros_like(data_aniso)
        labels_aniso[lx // 5, ly // 5, lz // 5] = 1
        labels_aniso[lx // 2 + small_l // 4,
                     ly - small_l // 2,
                     lz // 2 - small_l // 4] = 2
    
        # Test with `spacing` kwarg
        # First, anisotropic along Y
        with expected_warnings(['"cg" mode' + '|' + SCIPY_EXPECTED]):
            labels_aniso = random_walker(data_aniso, labels_aniso, mode='cg',
>                                        spacing=(1., 2., 1.))

../debian/tmp/usr/lib/python2.7/dist-packages/skimage/segmentation/tests/test_random_walker.py:263: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python2.7/contextlib.py:24: in __exit__
    self.gen.next()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

matching = ['"cg" mode|numpy.linalg.matrix_rank|\\A\\Z']

    @contextmanager
    def expected_warnings(matching):
        """Context for use in testing to catch known warnings matching regexes
    
        Parameters
        ----------
        matching : list of strings or compiled regexes
            Regexes for the desired warning to catch
    
        Examples
        --------
        >>> from skimage import data, img_as_ubyte, img_as_float
        >>> with expected_warnings(['precision loss']):
        ...     d = img_as_ubyte(img_as_float(data.coins()))
    
        Notes
        -----
        Uses `all_warnings` to ensure all warnings are raised.
        Upon exiting, it checks the recorded warnings for the desired matching
        pattern(s).
        Raises a ValueError if any match was not found or an unexpected
        warning was raised.
        Allows for three types of behaviors: `and`, `or`, and `optional` matches.
        This is done to accomodate different build enviroments or loop conditions
        that may produce different warnings.  The behaviors can be combined.
        If you pass multiple patterns, you get an orderless `and`, where all of the
        warnings must be raised.
        If you use the `|` operator in a pattern, you can catch one of several
        warnings.
        Finally, you can use `|\A\Z` in a pattern to signify it as optional.
    
        """
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            remaining = [m for m in matching if '\A\Z' not in m.split('|')]
            for warn in w:
                found = False
                for match in matching:
                    if re.search(match, str(warn.message)) is not None:
                        found = True
                        if match in remaining:
                            remaining.remove(match)
                if not found:
>                   raise ValueError('Unexpected warning: %s' % str(warn.message))
E                   ValueError: Unexpected warning: overflow encountered in long_scalars

../debian/tmp/usr/lib/python2.7/dist-packages/skimage/_shared/_warnings.py:121: ValueError
=============================== warnings summary ===============================
restoration/tests/test_denoise.py::test_cycle_spinning_multichannel
  /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python2.7/dist-packages/skimage/restoration/_cycle_spin.py:154: UserWarning: dask is required for parallel computation, but it is not available.  Computation will be performed serially.
    "dask is required for parallel computation, but it is "

-- Docs: http://doc.pytest.org/en/latest/warnings.html
======= 1 failed, 1545 passed, 52 skipped, 1 warnings in 125.25 seconds ========
debian/rules:61: recipe for target 'python-test2' failed
make[1]: *** [python-test2] Error 1



More information about the debian-science-maintainers mailing list