Skip to content

Commit 6a4dfd8

Browse files
jbrockmendelfeefladder
authored andcommitted
BUG: enable test_numpy tests with ArrayManager (pandas-dev#42780)
1 parent 88c999c commit 6a4dfd8

File tree

3 files changed

+9
-28
lines changed

3 files changed

+9
-28
lines changed

pandas/core/indexing.py

+4
Original file line numberDiff line numberDiff line change
@@ -1697,6 +1697,10 @@ def _setitem_with_indexer_split_path(self, indexer, value, name: str):
16971697
# We get here in one case via .loc with a all-False mask
16981698
pass
16991699

1700+
elif self._is_scalar_access(indexer):
1701+
# We are setting nested data
1702+
self._setitem_single_column(indexer[1], value, pi)
1703+
17001704
elif len(ilocs) == len(value):
17011705
# We are setting multiple columns in a single row.
17021706
for loc, v in zip(ilocs, value):

pandas/core/internals/array_manager.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
)
4545
from pandas.core.dtypes.generic import (
4646
ABCDataFrame,
47-
ABCPandasArray,
4847
ABCSeries,
4948
)
5049
from pandas.core.dtypes.inference import is_inferred_bool_dtype
@@ -85,6 +84,7 @@
8584
from pandas.core.internals.blocks import (
8685
ensure_block_shape,
8786
external_values,
87+
extract_pandas_array,
8888
maybe_coerce_values,
8989
new_block,
9090
to_native_types,
@@ -399,6 +399,8 @@ def convert(
399399
) -> T:
400400
def _convert(arr):
401401
if is_object_dtype(arr.dtype):
402+
# extract PandasArray for tests that patch PandasArray._typ
403+
arr = np.asarray(arr)
402404
return soft_convert_objects(
403405
arr,
404406
datetime=datetime,
@@ -699,6 +701,7 @@ def __init__(
699701

700702
if verify_integrity:
701703
self._axes = [ensure_index(ax) for ax in axes]
704+
arrays = [extract_pandas_array(x, None, 1)[0] for x in arrays]
702705
self.arrays = [maybe_coerce_values(arr) for arr in arrays]
703706
self._verify_integrity()
704707

@@ -1185,8 +1188,7 @@ def __init__(
11851188
self._axes = [ensure_index(ax) for ax in self._axes]
11861189
arr = arrays[0]
11871190
arr = maybe_coerce_values(arr)
1188-
if isinstance(arr, ABCPandasArray):
1189-
arr = arr.to_numpy()
1191+
arr = extract_pandas_array(arr, None, 1)[0]
11901192
self.arrays = [arr]
11911193
self._verify_integrity()
11921194

pandas/tests/extension/test_numpy.py

-25
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
import numpy as np
1717
import pytest
1818

19-
import pandas.util._test_decorators as td
20-
2119
from pandas.core.dtypes.cast import can_hold_element
2220
from pandas.core.dtypes.dtypes import (
2321
ExtensionDtype,
@@ -30,9 +28,6 @@
3028
from pandas.core.internals import blocks
3129
from pandas.tests.extension import base
3230

33-
# TODO(ArrayManager) PandasArray
34-
pytestmark = td.skip_array_manager_not_yet_implemented
35-
3631

3732
def _can_hold_element_patched(obj, element) -> bool:
3833
if isinstance(element, PandasArray):
@@ -349,26 +344,6 @@ def test_setitem_sequence_broadcasts(self, data, box_in_series):
349344
# length than the value
350345
super().test_setitem_sequence_broadcasts(data, box_in_series)
351346

352-
@skip_nested
353-
def test_setitem_loc_scalar_mixed(self, data):
354-
# AssertionError
355-
super().test_setitem_loc_scalar_mixed(data)
356-
357-
@skip_nested
358-
def test_setitem_loc_scalar_multiple_homogoneous(self, data):
359-
# AssertionError
360-
super().test_setitem_loc_scalar_multiple_homogoneous(data)
361-
362-
@skip_nested
363-
def test_setitem_iloc_scalar_mixed(self, data):
364-
# AssertionError
365-
super().test_setitem_iloc_scalar_mixed(data)
366-
367-
@skip_nested
368-
def test_setitem_iloc_scalar_multiple_homogoneous(self, data):
369-
# AssertionError
370-
super().test_setitem_iloc_scalar_multiple_homogoneous(data)
371-
372347
@skip_nested
373348
@pytest.mark.parametrize("setter", ["loc", None])
374349
def test_setitem_mask_broadcast(self, data, setter):

0 commit comments

Comments
 (0)