|
85 | 85 | from pandas.core.internals.blocks import (
|
86 | 86 | ensure_block_shape,
|
87 | 87 | external_values,
|
| 88 | + maybe_coerce_values, |
88 | 89 | new_block,
|
89 | 90 | to_native_types,
|
90 | 91 | )
|
@@ -701,7 +702,7 @@ def __init__(
|
701 | 702 |
|
702 | 703 | if verify_integrity:
|
703 | 704 | self._axes = [ensure_index(ax) for ax in axes]
|
704 |
| - self.arrays = [ensure_wrapped_if_datetimelike(arr) for arr in arrays] |
| 705 | + self.arrays = [maybe_coerce_values(arr) for arr in arrays] |
705 | 706 | self._verify_integrity()
|
706 | 707 |
|
707 | 708 | def _verify_integrity(self) -> None:
|
@@ -814,7 +815,7 @@ def iset(self, loc: int | slice | np.ndarray, value: ArrayLike):
|
814 | 815 |
|
815 | 816 | # TODO we receive a datetime/timedelta64 ndarray from DataFrame._iset_item
|
816 | 817 | # but we should avoid that and pass directly the proper array
|
817 |
| - value = ensure_wrapped_if_datetimelike(value) |
| 818 | + value = maybe_coerce_values(value) |
818 | 819 |
|
819 | 820 | assert isinstance(value, (np.ndarray, ExtensionArray))
|
820 | 821 | assert value.ndim == 1
|
@@ -873,7 +874,7 @@ def insert(self, loc: int, item: Hashable, value: ArrayLike) -> None:
|
873 | 874 | raise ValueError(
|
874 | 875 | f"Expected a 1D array, got an array with shape {value.shape}"
|
875 | 876 | )
|
876 |
| - value = ensure_wrapped_if_datetimelike(value) |
| 877 | + value = maybe_coerce_values(value) |
877 | 878 |
|
878 | 879 | # TODO self.arrays can be empty
|
879 | 880 | # assert len(value) == len(self.arrays[0])
|
@@ -1188,7 +1189,7 @@ def __init__(
|
1188 | 1189 | assert len(arrays) == 1
|
1189 | 1190 | self._axes = [ensure_index(ax) for ax in self._axes]
|
1190 | 1191 | arr = arrays[0]
|
1191 |
| - arr = ensure_wrapped_if_datetimelike(arr) |
| 1192 | + arr = maybe_coerce_values(arr) |
1192 | 1193 | if isinstance(arr, ABCPandasArray):
|
1193 | 1194 | arr = arr.to_numpy()
|
1194 | 1195 | self.arrays = [arr]
|
|
0 commit comments