diff --git a/pandas/core/arrays/_mixins.py b/pandas/core/arrays/_mixins.py index 5fb5874371120..0c2ef797ff044 100644 --- a/pandas/core/arrays/_mixins.py +++ b/pandas/core/arrays/_mixins.py @@ -113,6 +113,12 @@ def _validate_scalar(self, value): # ------------------------------------------------------------------------ + @overload + def view(self) -> Self: ... + + @overload + def view(self, dtype: Dtype | None = ...) -> ArrayLike: ... + def view(self, dtype: Dtype | None = None) -> ArrayLike: # We handle datetime64, datetime64tz, timedelta64, and period # dtypes here. Everything else we pass through to the underlying diff --git a/pandas/core/arrays/base.py b/pandas/core/arrays/base.py index 1cd10a9eef9d1..07c297b2c15ff 100644 --- a/pandas/core/arrays/base.py +++ b/pandas/core/arrays/base.py @@ -1804,6 +1804,12 @@ def copy(self) -> Self: """ raise AbstractMethodError(self) + @overload + def view(self) -> Self: ... + + @overload + def view(self, dtype: Dtype | None = ...) -> ArrayLike: ... + def view(self, dtype: Dtype | None = None) -> ArrayLike: """ Return a view on the array. diff --git a/pandas/core/arrays/datetimelike.py b/pandas/core/arrays/datetimelike.py index 3a2a6c1dde7c8..561bf7d42d289 100644 --- a/pandas/core/arrays/datetimelike.py +++ b/pandas/core/arrays/datetimelike.py @@ -508,7 +508,7 @@ def astype(self, dtype, copy: bool = True): else: return np.asarray(self, dtype=dtype) - @overload + @overload # type: ignore[override] def view(self) -> Self: ... @overload diff --git a/pandas/core/arrays/string_.py b/pandas/core/arrays/string_.py index f58d0b1c0b948..14fcd4eb79a31 100644 --- a/pandas/core/arrays/string_.py +++ b/pandas/core/arrays/string_.py @@ -546,10 +546,10 @@ def _str_map_nan_semantics( else: return self._str_map_str_or_object(dtype, na_value, arr, f, mask) - def view(self, dtype: Dtype | None = None) -> ArrayLike: + def view(self, dtype: Dtype | None = None) -> Self: if dtype is not None: raise TypeError("Cannot change data-type for string array.") - return super().view(dtype=dtype) + return super().view() # error: Definition of "_concat_same_type" in base class "NDArrayBacked" is