File tree Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -2112,7 +2112,9 @@ def is_view(self) -> bool:
2112
2112
2113
2113
@property
2114
2114
def array_values (self ) -> ExtensionArray :
2115
- return NumpyExtensionArray (self .values )
2115
+ values = self .values .view ()
2116
+ values .flags .writeable = False
2117
+ return NumpyExtensionArray (values )
2116
2118
2117
2119
def get_values (self , dtype : DtypeObj | None = None ) -> np .ndarray :
2118
2120
if dtype == _dtype_obj :
@@ -2364,6 +2366,4 @@ def external_values(values: ArrayLike) -> ArrayLike:
2364
2366
values = values .view ()
2365
2367
values .flags .writeable = False
2366
2368
2367
- # TODO(CoW) we should also mark our ExtensionArrays as read-only
2368
-
2369
2369
return values
Original file line number Diff line number Diff line change @@ -141,3 +141,10 @@ def test_empty_dataframe():
141
141
df = DataFrame ()
142
142
arr = np .asarray (df )
143
143
assert arr .flags .writeable is True
144
+
145
+
146
+ def test_series_array_not_writable ():
147
+ # GH 58007
148
+ ser = Series ([1 , 2 ])
149
+ with pytest .raises (ValueError , match = "assignment destination is read-only" ):
150
+ ser .array [0 ] = 2
You can’t perform that action at this time.
0 commit comments