Skip to content

Commit bd70a19

Browse files
committed
fixup
1 parent d38fd19 commit bd70a19

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

pandas/core/arrays/numpy_.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44

55
from pandas._libs import lib
66
from pandas.compat.numpy import function as nv
7+
from pandas.util._validators import validate_fillna_kwargs
78

89
from pandas.core.dtypes.dtypes import ExtensionDtype
910
from pandas.core.dtypes.generic import ABCIndexClass, ABCSeries
10-
from pandas.core.dtypes.inference import is_list_like
11+
from pandas.core.dtypes.inference import is_array_like, is_list_like
1112

1213
from pandas import compat
1314
from pandas.core import nanops
15+
from pandas.core.missing import backfill_1d, pad_1d
1416

1517
from .base import ExtensionArray, ExtensionOpsMixin
1618

@@ -114,7 +116,9 @@ class PandasArray(ExtensionArray, ExtensionOpsMixin, NDArrayOperatorsMixin):
114116
def __init__(self, values):
115117
if isinstance(values, type(self)):
116118
values = values._ndarray
117-
values = np.asarray(values)
119+
if not isinstance(values, np.ndarray):
120+
raise ValueError("'values' must be a NumPy array.")
121+
118122
if values.ndim != 1:
119123
raise ValueError("PandasArray must be 1-dimensional.")
120124

@@ -242,10 +246,6 @@ def isna(self):
242246
return isna(self._ndarray)
243247

244248
def fillna(self, value=None, method=None, limit=None):
245-
from pandas.api.types import is_array_like
246-
from pandas.util._validators import validate_fillna_kwargs
247-
from pandas.core.missing import pad_1d, backfill_1d
248-
249249
# TODO(_values_for_fillna): remove this
250250
value, method = validate_fillna_kwargs(value, method)
251251

pandas/tests/arrays/test_numpy.py

+8-3
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def test_validate_reduction_keyword_args():
5656

5757
@td.skip_if_no("numpy", min_version="1.13.0")
5858
def test_ufunc():
59-
arr = PandasArray([-1.0, 0.0, 1.0])
59+
arr = PandasArray(np.array([-1.0, 0.0, 1.0]))
6060
result = np.abs(arr)
6161
expected = PandasArray(np.abs(arr._ndarray))
6262
tm.assert_extension_array_equal(result, expected)
@@ -73,12 +73,17 @@ def test_ufunc():
7373
def test_basic_binop():
7474
# Just a basic smoke test. The EA interface tests exercise this
7575
# more thoroughly.
76-
x = PandasArray([1, 2, 3])
76+
x = PandasArray(np.array([1, 2, 3]))
7777
result = x + x
78-
expected = PandasArray([2, 4, 6])
78+
expected = PandasArray(np.array([2, 4, 6]))
7979
tm.assert_extension_array_equal(result, expected)
8080

8181

82+
def test_constructor_no_coercion():
83+
with pytest.raises(ValueError, match='NumPy array'):
84+
PandasArray([1, 2, 3])
85+
86+
8287
def test_series_constructor_with_copy():
8388
ndarray = np.array([1, 2, 3])
8489
ser = pd.Series(PandasArray(ndarray), copy=True)

0 commit comments

Comments
 (0)