diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f4f5d0f72e8d8..11cb98ed97602 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -165,9 +165,7 @@ jobs: pytest pandas/tests/groupby/ pytest pandas/tests/resample/ pytest pandas/tests/reshape/merge - - pytest pandas/tests/series/methods - pytest pandas/tests/series/test_* + pytest pandas/tests/series/ # indexing subset (temporary since other tests don't pass yet) pytest pandas/tests/frame/indexing/test_indexing.py::TestDataFrameIndexing::test_setitem_boolean diff --git a/pandas/core/internals/array_manager.py b/pandas/core/internals/array_manager.py index 5987fdf956b68..bce364f2be4af 100644 --- a/pandas/core/internals/array_manager.py +++ b/pandas/core/internals/array_manager.py @@ -202,7 +202,7 @@ def get_dtypes(self): def __repr__(self) -> str: output = type(self).__name__ output += f"\nIndex: {self._axes[0]}" - if self.ndim == 1: + if self.ndim == 2: output += f"\nColumns: {self._axes[1]}" output += f"\n{len(self.arrays)} arrays:" for arr in self.arrays: @@ -1143,7 +1143,13 @@ def __init__( def _verify_integrity(self) -> None: (n_rows,) = self.shape assert len(self.arrays) == 1 - assert len(self.arrays[0]) == n_rows + arr = self.arrays[0] + assert len(arr) == n_rows + if not arr.ndim == 1: + raise ValueError( + "Passed array should be 1-dimensional, got array with " + f"{arr.ndim} dimensions instead." + ) @staticmethod def _normalize_axis(axis): diff --git a/pandas/tests/series/indexing/test_getitem.py b/pandas/tests/series/indexing/test_getitem.py index 7642ccff31c6a..9a166fc8057ed 100644 --- a/pandas/tests/series/indexing/test_getitem.py +++ b/pandas/tests/series/indexing/test_getitem.py @@ -234,10 +234,12 @@ def test_getitem_partial_str_slice_high_reso_with_timedeltaindex(self): result = ser["1 days, 10:11:12.001001"] assert result == ser.iloc[1001] - def test_getitem_slice_2d(self, datetime_series): + def test_getitem_slice_2d(self, datetime_series, using_array_manager): # GH#30588 multi-dimensional indexing deprecated - with tm.assert_produces_warning(FutureWarning): + with tm.assert_produces_warning( + FutureWarning, check_stacklevel=not using_array_manager + ): # GH#30867 Don't want to support this long-term, but # for now ensure that the warning from Index # doesn't comes through via Series.__getitem__. @@ -518,9 +520,11 @@ def test_getitem_generator(string_series): Series(date_range("2012-01-01", periods=2, tz="CET")), ], ) -def test_getitem_ndim_deprecated(series): +def test_getitem_ndim_deprecated(series, using_array_manager): with tm.assert_produces_warning( - FutureWarning, match="Support for multi-dimensional indexing" + FutureWarning, + match="Support for multi-dimensional indexing", + check_stacklevel=not using_array_manager, ): result = series[:, None] diff --git a/pandas/tests/series/indexing/test_setitem.py b/pandas/tests/series/indexing/test_setitem.py index 36ade2c8b8b43..88e6f0aa0b887 100644 --- a/pandas/tests/series/indexing/test_setitem.py +++ b/pandas/tests/series/indexing/test_setitem.py @@ -306,8 +306,8 @@ def test_dt64tz_setitem_does_not_mutate_dti(self): ser = Series(dti) assert ser._values is not dti assert ser._values._data.base is not dti._data._data.base - assert ser._mgr.blocks[0].values is not dti - assert ser._mgr.blocks[0].values._data.base is not dti._data._data.base + assert ser._mgr.arrays[0] is not dti + assert ser._mgr.arrays[0]._data.base is not dti._data._data.base ser[::3] = NaT assert ser[0] is NaT diff --git a/pandas/tests/series/indexing/test_where.py b/pandas/tests/series/indexing/test_where.py index 799f3d257434d..b13fd18405839 100644 --- a/pandas/tests/series/indexing/test_where.py +++ b/pandas/tests/series/indexing/test_where.py @@ -1,6 +1,8 @@ import numpy as np import pytest +import pandas.util._test_decorators as td + from pandas.core.dtypes.common import is_integer import pandas as pd @@ -471,6 +473,9 @@ def test_where_categorical(klass): tm.assert_equal(exp, res) +# TODO(ArrayManager) DataFrame.values not yet correctly returning datetime array +# for categorical with datetime categories +@td.skip_array_manager_not_yet_implemented def test_where_datetimelike_categorical(tz_naive_fixture): # GH#37682 tz = tz_naive_fixture