Your message dated Thu, 14 Mar 2019 22:34:05 +0000
with message-id <[email protected]>
and subject line Bug#924606: fixed in skimage 0.14.2-2
has caused the Debian Bug report #924606,
regarding skimage: autopkgtest needs update for new version of python-scipy: 
ValueError: No warning raised matching: matrix subclass
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
924606: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=924606
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: skimage
Version: 0.14.2-1
Severity: important
User: [email protected]
Usertags: needs-update
Control: affects -1 src:python-scipy

[X-Debbugs-CC: [email protected],
[email protected], [email protected]]

Dear maintainers,

With a recent upload of python-scipy the autopkgtest of skimage fails in
testing when that autopkgtest is run with the binary packages of
python-scipy from unstable. It passes when run with only packages from
testing. In tabular form:
                       pass            fail
python-scipy           from testing    1.1.0-4
skimage                from testing    0.14.2-1
all others             from testing    from testing

The latest upload of python-scipy was an effort to fix the autopkgtest
of python-scipy (see bug 919929 for background info), which was blurred
by loads of deprecation warnings from python-numpy. As part of the
solution, python-scipy was patched to prevent specific deprecation
warnings, but apparently the autopkgtest of skimage relies on these
warnings. I copied some of the output at the bottom of this report.

If I read the text in your error log correctly, you can mark the check
for these warnings as optional. Can you please do that? Or discuss with
the python-scipy maintainers how to resolve this issue.

Paul

https://ci.debian.net/data/autopkgtest/testing/amd64/s/skimage/2107462/log.gz

=================================== FAILURES
===================================
__________________________________ test_2d_bf
__________________________________

    def test_2d_bf():
        lx = 70
        ly = 100
        data, labels = make_2d_syntheticdata(lx, ly)
        with expected_warnings([NUMPY_MATRIX_WARNING]):
>           labels_bf = random_walker(data, labels, beta=90, mode='bf')

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:74:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

matching = ['matrix subclass']

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
__________________________________ test_2d_cg
__________________________________

    def test_2d_cg():
        lx = 70
        ly = 100
        data, labels = make_2d_syntheticdata(lx, ly)
        with expected_warnings(['"cg" mode' + '|' + SCIPY_RANK_WARNING,
                                NUMPY_MATRIX_WARNING]):
>           labels_cg = random_walker(data, labels, beta=90, mode='cg')

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:100:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

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

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
________________________________ test_2d_cg_mg
_________________________________

    def test_2d_cg_mg():
        lx = 70
        ly = 100
        data, labels = make_2d_syntheticdata(lx, ly)
        anticipated_warnings = [
            'scipy.sparse.sparsetools|%s' % PYAMG_OR_SCIPY_WARNING,
            NUMPY_MATRIX_WARNING]
        with expected_warnings(anticipated_warnings):
>           labels_cg_mg = random_walker(data, labels, beta=90,
mode='cg_mg')

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:121:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

matching =
['scipy.sparse.sparsetools|numpy.linalg.matrix_rank|\\A\\Z|pyamg|\\A\\Z',
'matrix subclass']

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
__________________________________ test_types
__________________________________

    def test_types():
        lx = 70
        ly = 100
        data, labels = make_2d_syntheticdata(lx, ly)
        data = 255 * (data - data.min()) // (data.max() - data.min())
        data = data.astype(np.uint8)
        with expected_warnings([PYAMG_OR_SCIPY_WARNING,
NUMPY_MATRIX_WARNING]):
>           labels_cg_mg = random_walker(data, labels, beta=90,
mode='cg_mg')

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:140:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

matching = ['numpy.linalg.matrix_rank|\\A\\Z|pyamg|\\A\\Z', 'matrix
subclass']

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
_____________________________ test_reorder_labels
______________________________

    def test_reorder_labels():
        lx = 70
        ly = 100
        data, labels = make_2d_syntheticdata(lx, ly)
        labels[labels == 2] = 4
        with expected_warnings([NUMPY_MATRIX_WARNING]):
>           labels_bf = random_walker(data, labels, beta=90, mode='bf')

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:152:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

matching = ['matrix subclass']

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
_______________________________ test_2d_inactive
_______________________________

    def test_2d_inactive():
        lx = 70
        ly = 100
        data, labels = make_2d_syntheticdata(lx, ly)
        labels[10:20, 10:20] = -1
        labels[46:50, 33:38] = -2
        with expected_warnings([NUMPY_MATRIX_WARNING]):
>           labels = random_walker(data, labels, beta=90)

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:165:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

matching = ['matrix subclass']

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
___________________________________ test_3d
____________________________________

    def test_3d():
        n = 30
        lx, ly, lz = n, n, n
        data, labels = make_3d_syntheticdata(lx, ly, lz)
        with expected_warnings(['"cg" mode' + '|' + SCIPY_RANK_WARNING,
                                NUMPY_MATRIX_WARNING]):
>           labels = random_walker(data, labels, mode='cg')

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:177:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

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

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
_______________________________ test_3d_inactive
_______________________________

    def test_3d_inactive():
        n = 30
        lx, ly, lz = n, n, n
        data, labels = make_3d_syntheticdata(lx, ly, lz)
        old_labels = np.copy(labels)
        labels[5:25, 26:29, 26:29] = -1
        after_labels = np.copy(labels)
        with expected_warnings(['"cg" mode|CObject type' + '|'
                                + SCIPY_RANK_WARNING,
NUMPY_MATRIX_WARNING]):
>           labels = random_walker(data, labels, mode='cg')

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:192:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

matching = ['"cg" mode|CObject type|numpy.linalg.matrix_rank|\\A\\Z',
'matrix subclass']

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
____________________________ test_multispectral_2d
_____________________________

    def test_multispectral_2d():
        lx, ly = 70, 100
        data, labels = make_2d_syntheticdata(lx, ly)
        data = data[..., np.newaxis].repeat(2, axis=-1)  # Expect
identical output
        with expected_warnings(['"cg" mode' + '|' + SCIPY_RANK_WARNING,
                                NUMPY_MATRIX_WARNING]):
            multi_labels = random_walker(data, labels, mode='cg',
>                                        multichannel=True)

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:205:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

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

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
____________________________ test_multispectral_3d
_____________________________

    def test_multispectral_3d():
        n = 30
        lx, ly, lz = n, n, n
        data, labels = make_3d_syntheticdata(lx, ly, lz)
        data = data[..., np.newaxis].repeat(2, axis=-1)  # Expect
identical output
        with expected_warnings(['"cg" mode' + '|' + SCIPY_RANK_WARNING,
                                NUMPY_MATRIX_WARNING]):
            multi_labels = random_walker(data, labels, mode='cg',
>                                        multichannel=True)

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:223:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

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

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
________________________________ test_spacing_0
________________________________

    def test_spacing_0():
        n = 30
        lx, ly, lz = n, n, n
        data, _ = make_3d_syntheticdata(lx, ly, lz)

        # Rescale `data` along Z axis
        data_aniso = np.zeros((n, n, n // 2))
        for i, yz in enumerate(data):
            data_aniso[i, :, :] = resize(yz, (n, n // 2),
                                         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 // 2 - small_l // 4,
                     lz // 4 - small_l // 8] = 2

        # Test with `spacing` kwarg
        with expected_warnings(['"cg" mode' + '|' + SCIPY_RANK_WARNING,
                                NUMPY_MATRIX_WARNING]):
            labels_aniso = random_walker(data_aniso, labels_aniso,
mode='cg',
>                                        spacing=(1., 1., 0.5))

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:258:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

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

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
________________________________ test_spacing_1
________________________________

    @xfail(condition=arch32,
           reason=('Known test failure on 32-bit platforms. See links for '
                   'details: '

'https://github.com/scikit-image/scikit-image/issues/3091 '

'https://github.com/scikit-image/scikit-image/issues/3092'))
    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_RANK_WARNING,
                                NUMPY_MATRIX_WARNING]):
            labels_aniso = random_walker(data_aniso, labels_aniso,
mode='cg',
>                                        spacing=(1., 2., 1.))

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:294:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

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

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
_____________________________ test_length2_spacing
_____________________________

    def test_length2_spacing():
        # If this passes without raising an exception (warnings OK), the new
        #   spacing code is working properly.
        np.random.seed(42)
        img = np.ones((10, 10)) + 0.2 * np.random.normal(size=(10, 10))
        labels = np.zeros((10, 10), dtype=np.uint8)
        labels[2, 4] = 1
        labels[6, 8] = 4
        with expected_warnings([NUMPY_MATRIX_WARNING]):
>           random_walker(img, labels, spacing=(1., 2.))

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:349:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

matching = ['matrix subclass']

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError
_____________________________ test_isolated_seeds
______________________________

    def test_isolated_seeds():
        np.random.seed(0)
        a = np.random.random((7, 7))
        mask = - np.ones(a.shape)
        # This pixel is an isolated seed
        mask[1, 1] = 1
        # Unlabeled pixels
        mask[3:, 3:] = 0
        # Seeds connected to unlabeled pixels
        mask[4, 4] = 2
        mask[6, 6] = 1

        # Test that no error is raised, and that labels of isolated
seeds are OK
        with expected_warnings([NUMPY_MATRIX_WARNING]):
>           res = random_walker(a, mask)

/usr/lib/python3/dist-packages/skimage/segmentation/tests/test_random_walker.py:399:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

matching = ['matrix subclass']

    @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.

        """
        if isinstance(matching, str):
            raise ValueError('``matching`` should be a list of strings
and not '
                             'a string itself.')
        with all_warnings() as w:
            # enter context
            yield w
            # exited user context, check the recorded warnings
            # Allow users to provide None
            while None in matching:
                matching.remove(None)
            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))
            if len(remaining) > 0:
                msg = 'No warning raised matching:\n%s' %
'\n'.join(remaining)
>               raise ValueError(msg)
E               ValueError: No warning raised matching:
E               matrix subclass

/usr/lib/python3/dist-packages/skimage/_shared/_warnings.py:130: ValueError

Attachment: signature.asc
Description: OpenPGP digital signature


--- End Message ---
--- Begin Message ---
Source: skimage
Source-Version: 0.14.2-2

We believe that the bug you reported is fixed in the latest version of
skimage, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Ole Streicher <[email protected]> (supplier of updated skimage package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Thu, 14 Mar 2019 22:58:01 +0100
Source: skimage
Architecture: source
Version: 0.14.2-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Science Maintainers 
<[email protected]>
Changed-By: Ole Streicher <[email protected]>
Closes: 924606
Changes:
 skimage (0.14.2-2) unstable; urgency=medium
 .
   * Team upload
   * Disable numpy matrix deprecation warnings (Closes: #924606)
Checksums-Sha1:
 e2c8747389a2c8e7a8f4875858365f4ae3c9410e 3168 skimage_0.14.2-2.dsc
 e622752c7e10953861d9b5ec126fcd1b7b9f4e90 23680 skimage_0.14.2-2.debian.tar.xz
Checksums-Sha256:
 d7ff1be3f21d18264092a06af721497cdc49992f81f98f72c2933be6e5ab2fff 3168 
skimage_0.14.2-2.dsc
 a77efd8013eca5cc60327f875b3c67c8bcc0496a5e08e770365432e61843e24b 23680 
skimage_0.14.2-2.debian.tar.xz
Files:
 512084bb0beda00219e5a49f576437c4 3168 python optional skimage_0.14.2-2.dsc
 c1a174f2d91cef370e3bc18076b3123d 23680 python optional 
skimage_0.14.2-2.debian.tar.xz

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE7/BpV0Ra2/h0L3qtmk9WvbkOGL0FAlyK0sEACgkQmk9WvbkO
GL0UAg/9EOlroqk7pjJ6tNwPji0z9j3YCi6niCY3wdT/vjwuhpyVYaKw+/dBRjZn
+WsGhPsV241a7JVVKnT2iGK7Pc1hN3Z7F/DD/QtkvQ+rv1c0qrrNMplp4kBHW0Yr
FxA1f0gPE9WjHas1oMCcq0JAGzI1vMWY+OvCg9YeyCv0BcamPn5Gya1QQ9PSVJdp
YtAzen8mrIybsEL+qX6avgcKqiOpEqDUMs1doCQAxp6WJApNcizwqab7LBW9mSBZ
yfEK9uxTgO2tkfPNq783JXYxB/3+Da1hvAR5X9tt3FwcXaiEJaMS5A0CUDn+BXN6
s/y9jmxHUnFMuH6ATzQQ6HFOUGOPIyBM4hHtQavK80wanfPi4BIq0zUliro6c76a
dU07K+GFL5hUTArYBAO9Fz6LJzD/BlSOk5PGtMitY89BuwfSNUc9VoOPzU26xaD3
iiNAWOn/1pUwGYPKeB5JcQDwhfTMtt7sbKNiArFKOlPaQJkmYHe13EEmDtaA8Zwz
Ha+5U5jEOqyM1xiNyms1Kc4LOzztfg+Dx+rxyYXs0gxRkhNPjdIKUXaOhpaUTLVE
2soIOCuBNgYRv971Y4IU6MTXKZvIsqi5aQKMQirEtNjMCdOib0uQoSAaKR/IpP4W
Ud5bfjUKgU5A93whYmLfa5GrbaiXuGKJLOotyLj+vGu5ZaG2YMs=
=yGnl
-----END PGP SIGNATURE-----

--- End Message ---
-- 
debian-science-maintainers mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-science-maintainers

Reply via email to