diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index 83064fe22eaff..e130a6c6cb1b7 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -623,6 +623,12 @@ def ravel(self, order="C"): -------- numpy.ndarray.ravel """ + warnings.warn( + f"The behavior of Index.ravel for {self.dtype} is deprecated; " + "in a future version it will return the underlying ExtensionArray", + FutureWarning, + stacklevel=2, + ) values = self._get_engine_target() return values.ravel(order=order) diff --git a/pandas/tests/indexes/categorical/test_category.py b/pandas/tests/indexes/categorical/test_category.py index 9562582393235..3563eae267e70 100644 --- a/pandas/tests/indexes/categorical/test_category.py +++ b/pandas/tests/indexes/categorical/test_category.py @@ -645,3 +645,8 @@ def test_reindex_base(self): def test_map_str(self): # See test_map.py pass + + def test_ravel_deprecated(self): + idx = self.create_index() + with tm.assert_produces_warning(FutureWarning): + idx.ravel() diff --git a/pandas/tests/indexes/datetimelike.py b/pandas/tests/indexes/datetimelike.py index ba10976a67e9a..0655424d67f95 100644 --- a/pandas/tests/indexes/datetimelike.py +++ b/pandas/tests/indexes/datetimelike.py @@ -95,3 +95,8 @@ def test_map_dictlike(self, mapper): expected = pd.Index([np.nan] * len(index)) result = index.map(mapper([], [])) tm.assert_index_equal(result, expected) + + def test_ravel_deprecated(self): + idx = self.create_index() + with tm.assert_produces_warning(FutureWarning): + idx.ravel() diff --git a/pandas/tests/indexes/interval/test_interval.py b/pandas/tests/indexes/interval/test_interval.py index efdd3fc9907a2..d00bc5fdfa17a 100644 --- a/pandas/tests/indexes/interval/test_interval.py +++ b/pandas/tests/indexes/interval/test_interval.py @@ -857,6 +857,11 @@ def test_is_all_dates(self): year_2017_index = pd.IntervalIndex([year_2017]) assert not year_2017_index.is_all_dates + def test_ravel_deprecated(self): + idx = self.create_index() + with tm.assert_produces_warning(FutureWarning): + idx.ravel() + def test_dir(): # GH#27571 dir(interval_index) should not raise