Skip to content

Commit 5fb4fcb

Browse files
committed
add test which uses unknown index
1 parent 4bf8eb7 commit 5fb4fcb

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

pandas-stubs/_libs/tslibs/timestamps.pyi

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ from _typing import TimeZones
2020
import numpy as np
2121
from pandas import (
2222
DatetimeIndex,
23-
Index,
2423
TimedeltaIndex,
2524
)
2625
from pandas.core.series import (
@@ -168,31 +167,31 @@ class Timestamp(datetime, SupportsIndex):
168167
def __le__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc]
169168
@overload
170169
def __le__(
171-
self, other: Index[Timestamp] | npt.NDArray[np.datetime64]
170+
self, other: DatetimeIndex | npt.NDArray[np.datetime64]
172171
) -> np_ndarray_bool: ...
173172
@overload
174173
def __le__(self, other: TimestampSeries) -> Series[bool]: ...
175174
@overload # type: ignore[override]
176175
def __lt__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc]
177176
@overload
178177
def __lt__(
179-
self, other: Index[Timestamp] | npt.NDArray[np.datetime64]
178+
self, other: DatetimeIndex | npt.NDArray[np.datetime64]
180179
) -> np_ndarray_bool: ...
181180
@overload
182181
def __lt__(self, other: TimestampSeries) -> Series[bool]: ...
183182
@overload # type: ignore[override]
184183
def __ge__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc]
185184
@overload
186185
def __ge__(
187-
self, other: Index[Timestamp] | npt.NDArray[np.datetime64]
186+
self, other: DatetimeIndex | npt.NDArray[np.datetime64]
188187
) -> np_ndarray_bool: ...
189188
@overload
190189
def __ge__(self, other: TimestampSeries) -> Series[bool]: ...
191190
@overload # type: ignore[override]
192191
def __gt__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc]
193192
@overload
194193
def __gt__(
195-
self, other: Index[Timestamp] | npt.NDArray[np.datetime64]
194+
self, other: DatetimeIndex | npt.NDArray[np.datetime64]
196195
) -> np_ndarray_bool: ...
197196
@overload
198197
def __gt__(self, other: TimestampSeries) -> Series[bool]: ...
@@ -233,15 +232,15 @@ class Timestamp(datetime, SupportsIndex):
233232
@overload
234233
def __eq__(self, other: TimestampSeries) -> Series[bool]: ... # type: ignore[overload-overlap]
235234
@overload
236-
def __eq__(self, other: npt.NDArray[np.datetime64] | Index[Timestamp]) -> np_ndarray_bool: ... # type: ignore[overload-overlap]
235+
def __eq__(self, other: npt.NDArray[np.datetime64] | DatetimeIndex) -> np_ndarray_bool: ... # type: ignore[overload-overlap]
237236
@overload
238237
def __eq__(self, other: object) -> Literal[False]: ...
239238
@overload
240239
def __ne__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload]
241240
@overload
242241
def __ne__(self, other: TimestampSeries) -> Series[bool]: ... # type: ignore[overload-overlap]
243242
@overload
244-
def __ne__(self, other: npt.NDArray[np.datetime64] | Index[Timestamp]) -> np_ndarray_bool: ... # type: ignore[overload-overlap]
243+
def __ne__(self, other: npt.NDArray[np.datetime64] | DatetimeIndex) -> np_ndarray_bool: ... # type: ignore[overload-overlap]
245244
@overload
246245
def __ne__(self, other: object) -> Literal[True]: ...
247246
def __hash__(self) -> int: ...

tests/test_scalars.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1261,6 +1261,8 @@ def test_timestamp_cmp() -> None:
12611261
c_np_dt64 = np.datetime64(1, "ns")
12621262
c_dt_datetime = dt.datetime(year=2000, month=1, day=1)
12631263
c_datetimeindex = pd.DatetimeIndex(["2000-1-1"])
1264+
# DatetimeIndex, but the type checker detects it to be Index[Unknown].
1265+
c_unknown_index = pd.DataFrame({"a": [1]}, index=c_datetimeindex).index
12641266
c_np_ndarray_dt64 = np_dt64_arr
12651267
c_series_dt64: TimestampSeries = pd.Series([1, 2, 3], dtype="datetime64[ns]")
12661268
c_series_timestamp = pd.Series(pd.DatetimeIndex(["2000-1-1"]))
@@ -1281,6 +1283,8 @@ def test_timestamp_cmp() -> None:
12811283

12821284
check(assert_type(ts > c_datetimeindex, np_ndarray_bool), np.ndarray, np.bool_)
12831285
check(assert_type(ts <= c_datetimeindex, np_ndarray_bool), np.ndarray, np.bool_)
1286+
check(assert_type(ts > c_unknown_index, np_ndarray_bool), np.ndarray, np.bool_)
1287+
check(assert_type(ts <= c_unknown_index, np_ndarray_bool), np.ndarray, np.bool_)
12841288

12851289
check(assert_type(ts > c_np_ndarray_dt64, np_ndarray_bool), np.ndarray, np.bool_)
12861290
check(assert_type(ts <= c_np_ndarray_dt64, np_ndarray_bool), np.ndarray, np.bool_)

0 commit comments

Comments
 (0)