Package: python3-seaborn
Version: 0.9.0-2
Control: tags -1 fixed-upstream
Control: block 950430 by -1

With pandas 1.0 from experimental, two more tests fail (in addition to the one in #950695).

This appears to be upstream bug https://github.com/mwaskom/seaborn/issues/1498, which is fixed in 0.9.1, but I have not explicitly tested this.

________________ TestClustermap.test_row_col_colors_df_missing _________________

self = <seaborn.tests.test_matrix.TestClustermap object at 0x7f9a4733f430>

    def test_row_col_colors_df_missing(self):
        kws = self.default_kws.copy()
        row_colors = pd.DataFrame({'row_annot': list(self.row_colors)},
                                  index=self.df_norm.index)
        kws['row_colors'] = row_colors.drop(self.df_norm.index[0])

        col_colors = pd.DataFrame({'col_annot': list(self.col_colors)},
                                  index=self.df_norm.columns)
        kws['col_colors'] = col_colors.drop(self.df_norm.columns[0])

>       cm = mat.clustermap(self.df_norm, **kws)

seaborn/tests/test_matrix.py:961:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
seaborn/matrix.py:1292: in clustermap
    plotter = ClusterGrid(data, pivot_kws=pivot_kws, figsize=figsize,
seaborn/matrix.py:774: in __init__
    self._preprocess_colors(data, row_colors, axis=0)
seaborn/matrix.py:823: in _preprocess_colors
    colors = colors.loc[data.index]
/usr/lib/python3/dist-packages/pandas/core/indexing.py:1766: in __getitem__
    return self._getitem_axis(maybe_callable, axis=axis)
/usr/lib/python3/dist-packages/pandas/core/indexing.py:1952: in _getitem_axis
    return self._getitem_iterable(key, axis=axis)
/usr/lib/python3/dist-packages/pandas/core/indexing.py:1593: in _getitem_iterable keyarr, indexer = self._get_listlike_indexer(key, axis, raise_missing=False) /usr/lib/python3/dist-packages/pandas/core/indexing.py:1550: in _get_listlike_indexer
    self._validate_read_indexer(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pandas.core.indexing._LocIndexer object at 0x7f9a46f2d8b0>
key = RangeIndex(start=0, stop=4, step=1), indexer = array([-1,  0,  1,  2])
axis = 0, raise_missing = False

    def _validate_read_indexer(
        self, key, indexer, axis: int, raise_missing: bool = False
    ):
        """
        Check that indexer can be used to return a result.

        e.g. at least one element was found,
        unless the list of keys was actually empty.

        Parameters
        ----------
        key : list-like
            Targeted labels (only used to show correct error message).
        indexer: array-like of booleans
            Indices corresponding to the key,
            (with -1 indicating not found).
        axis: int
            Dimension on which the indexing is being made.
        raise_missing: bool
Whether to raise a KeyError if some labels are not found. Will be removed in the future, and then this method will always behave as
            if raise_missing=True.

        Raises
        ------
        KeyError
            If at least one key was requested but none was found, and
            raise_missing=True.
        """
        ax = self.obj._get_axis(axis)

        if len(key) == 0:
            return

        # Count missing values:
        missing = (indexer < 0).sum()

        if missing:
            if missing == len(indexer):
                axis_name = self.obj._get_axis_name(axis)
                raise KeyError(f"None of [{key}] are in the [{axis_name}]")

# We (temporarily) allow for some missing keys with .loc, except in # some cases (e.g. setting) in which "raise_missing" will be False
            if not (self.name == "loc" and not raise_missing):
                not_found = list(set(key) - set(ax))
                raise KeyError(f"{not_found} not in index")

            # we skip the warning on Categorical/Interval
            # as this check is actually done (check for
            # non-missing values), but a bit later in the
            # code, so we want to avoid warning & then
            # just raising
            if not (ax.is_categorical() or ax.is_interval()):
>               raise KeyError(
"Passing list-likes to .loc or [] with any missing labels "
                    "is no longer supported, see "

"https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike"; # noqa:E501
                )
E KeyError: 'Passing list-likes to .loc or [] with any missing labels is no longer supported, see https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike'

/usr/lib/python3/dist-packages/pandas/core/indexing.py:1652: KeyError
______________ TestClustermap.test_row_col_colors_series_missing _______________

self = <seaborn.tests.test_matrix.TestClustermap object at 0x7f9a473131f0>

    def test_row_col_colors_series_missing(self):
        kws = self.default_kws.copy()
        row_colors = pd.Series(list(self.row_colors), name='row_annot',
                               index=self.df_norm.index)
        kws['row_colors'] = row_colors.drop(self.df_norm.index[0])

        col_colors = pd.Series(list(self.col_colors), name='col_annot',
                               index=self.df_norm.columns)
        kws['col_colors'] = col_colors.drop(self.df_norm.columns[0])

>       cm = mat.clustermap(self.df_norm, **kws)

seaborn/tests/test_matrix.py:1050:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
seaborn/matrix.py:1292: in clustermap
    plotter = ClusterGrid(data, pivot_kws=pivot_kws, figsize=figsize,
seaborn/matrix.py:774: in __init__
    self._preprocess_colors(data, row_colors, axis=0)
seaborn/matrix.py:823: in _preprocess_colors
    colors = colors.loc[data.index]
/usr/lib/python3/dist-packages/pandas/core/indexing.py:1766: in __getitem__
    return self._getitem_axis(maybe_callable, axis=axis)
/usr/lib/python3/dist-packages/pandas/core/indexing.py:1952: in _getitem_axis
    return self._getitem_iterable(key, axis=axis)
/usr/lib/python3/dist-packages/pandas/core/indexing.py:1593: in _getitem_iterable keyarr, indexer = self._get_listlike_indexer(key, axis, raise_missing=False) /usr/lib/python3/dist-packages/pandas/core/indexing.py:1550: in _get_listlike_indexer
    self._validate_read_indexer(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pandas.core.indexing._LocIndexer object at 0x7f9a476837c0>
key = RangeIndex(start=0, stop=4, step=1), indexer = array([-1,  0,  1,  2])
axis = 0, raise_missing = False

    def _validate_read_indexer(
        self, key, indexer, axis: int, raise_missing: bool = False
    ):
        """
        Check that indexer can be used to return a result.

        e.g. at least one element was found,
        unless the list of keys was actually empty.

        Parameters
        ----------
        key : list-like
            Targeted labels (only used to show correct error message).
        indexer: array-like of booleans
            Indices corresponding to the key,
            (with -1 indicating not found).
        axis: int
            Dimension on which the indexing is being made.
        raise_missing: bool
Whether to raise a KeyError if some labels are not found. Will be removed in the future, and then this method will always behave as
            if raise_missing=True.

        Raises
        ------
        KeyError
            If at least one key was requested but none was found, and
            raise_missing=True.
        """
        ax = self.obj._get_axis(axis)

        if len(key) == 0:
            return

        # Count missing values:
        missing = (indexer < 0).sum()

        if missing:
            if missing == len(indexer):
                axis_name = self.obj._get_axis_name(axis)
                raise KeyError(f"None of [{key}] are in the [{axis_name}]")

# We (temporarily) allow for some missing keys with .loc, except in # some cases (e.g. setting) in which "raise_missing" will be False
            if not (self.name == "loc" and not raise_missing):
                not_found = list(set(key) - set(ax))
                raise KeyError(f"{not_found} not in index")

            # we skip the warning on Categorical/Interval
            # as this check is actually done (check for
            # non-missing values), but a bit later in the
            # code, so we want to avoid warning & then
            # just raising
            if not (ax.is_categorical() or ax.is_interval()):
>               raise KeyError(
"Passing list-likes to .loc or [] with any missing labels "
                    "is no longer supported, see "

"https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike"; # noqa:E501
                )
E KeyError: 'Passing list-likes to .loc or [] with any missing labels is no longer supported, see https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike'

/usr/lib/python3/dist-packages/pandas/core/indexing.py:1652: KeyError

Reply via email to