From be0f3222ef83fa8463392541818e466bdd211182 Mon Sep 17 00:00:00 2001 From: Richard Shadrach Date: Sat, 18 Oct 2025 11:55:28 -0400 Subject: [PATCH] TYP: Remove custom ellipsis class --- pandas/core/arrays/sparse/array.py | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/pandas/core/arrays/sparse/array.py b/pandas/core/arrays/sparse/array.py index e6ff67af78700..95e54c824617e 100644 --- a/pandas/core/arrays/sparse/array.py +++ b/pandas/core/arrays/sparse/array.py @@ -85,23 +85,17 @@ from pandas.io.formats import printing -# See https://github.com/python/typing/issues/684 if TYPE_CHECKING: from collections.abc import ( Callable, Sequence, ) - from enum import Enum + from types import EllipsisType from typing import ( Protocol, type_check_only, ) - class ellipsis(Enum): - Ellipsis = "..." - - Ellipsis = ellipsis.Ellipsis - from scipy.sparse import ( csc_array, csc_matrix, @@ -134,10 +128,6 @@ def tocsc(self, /) -> csc_array | csc_matrix: ... from pandas import Series -else: - ellipsis = type(Ellipsis) - - # ---------------------------------------------------------------------------- # Array @@ -974,31 +964,22 @@ def __getitem__(self, key: ScalarIndexer) -> Any: ... @overload def __getitem__( self, - key: SequenceIndexer | tuple[int | ellipsis, ...], + key: SequenceIndexer | tuple[int | EllipsisType, ...], ) -> Self: ... def __getitem__( self, - key: PositionalIndexer | tuple[int | ellipsis, ...], + key: PositionalIndexer | tuple[int | EllipsisType, ...], ) -> Self | Any: if isinstance(key, tuple): key = unpack_tuple_and_ellipses(key) - if key is Ellipsis: + if key is ...: raise ValueError("Cannot slice with Ellipsis") if is_integer(key): return self._get_val_at(key) elif isinstance(key, tuple): - # error: Invalid index type "Tuple[Union[int, ellipsis], ...]" - # for "ndarray[Any, Any]"; expected type - # "Union[SupportsIndex, _SupportsArray[dtype[Union[bool_, - # integer[Any]]]], _NestedSequence[_SupportsArray[dtype[ - # Union[bool_, integer[Any]]]]], _NestedSequence[Union[ - # bool, int]], Tuple[Union[SupportsIndex, _SupportsArray[ - # dtype[Union[bool_, integer[Any]]]], _NestedSequence[ - # _SupportsArray[dtype[Union[bool_, integer[Any]]]]], - # _NestedSequence[Union[bool, int]]], ...]]" - data_slice = self.to_dense()[key] # type: ignore[index] + data_slice = self.to_dense()[key] elif isinstance(key, slice): # Avoid densifying when handling contiguous slices if key.step is None or key.step == 1: