Skip to content

Commit 657c1d2

Browse files
committed
CLN: Final clean ups
1 parent af44ad4 commit 657c1d2

File tree

3 files changed

+52
-59
lines changed

3 files changed

+52
-59
lines changed

pandas-stubs/_libs/interval.pyi

+7-53
Original file line numberDiff line numberDiff line change
@@ -158,71 +158,31 @@ class Interval(IntervalMixin, Generic[_OrderableT]):
158158
@overload
159159
def overlaps(self: Interval[float], other: Interval[int]) -> bool: ...
160160
@overload
161-
def __gt__(self, other: Interval[_OrderableT]) -> bool: ... # type: ignore[misc]
161+
def __gt__(self, other: Interval[_OrderableT]) -> bool: ...
162162
@overload
163163
def __gt__(self: IntervalT, other: IntervalIndex[IntervalT]) -> np_ndarray_bool: ... # type: ignore[misc]
164-
# @overload
165-
# def __gt__(self:Interval[float], other: IntervalIndex[Interval[float]]) -> np_ndarray_bool: ...
166-
# @overload
167-
# def __gt__(self:Interval[Timestamp], other: IntervalIndex[Interval[Timestamp]]) -> np_ndarray_bool: ...
168-
# @overload
169-
# def __gt__(self:Interval[Timedelta], other: IntervalIndex[Interval[Timedelta]]) -> np_ndarray_bool: ...
170164
@overload
171-
def __gt__(self, other: Series[_OrderableT]) -> Series[bool]: ... # type: ignore[misc]
165+
def __gt__(self, other: Series[_OrderableT]) -> Series[bool]: ...
172166
@overload
173-
def __gt__(self, other: object) -> Literal[False]: ...
174-
@overload
175-
def __lt__(self, other: Interval[_OrderableT]) -> bool: ... # type: ignore[misc]
167+
def __lt__(self, other: Interval[_OrderableT]) -> bool: ...
176168
@overload
177169
def __lt__(self: IntervalT, other: IntervalIndex[IntervalT]) -> np_ndarray_bool: ... # type: ignore[misc]
178-
# @overload
179-
# def __lt__(self:Interval[float], other: IntervalIndex[Interval[float]]) -> np_ndarray_bool: ...
180-
# @overload
181-
# def __lt__(self:Interval[Timestamp], other: IntervalIndex[Interval[Timestamp]]) -> np_ndarray_bool: ...
182-
# @overload
183-
# def __lt__(self:Interval[Timedelta], other: IntervalIndex[Interval[Timedelta]]) -> np_ndarray_bool: ...
184-
@overload
185-
def __lt__(self, other: Series[_OrderableT]) -> Series[bool]: ... # type: ignore[misc]
186170
@overload
187-
def __lt__(self, other: object) -> Literal[False]: ...
171+
def __lt__(self, other: Series[_OrderableT]) -> Series[bool]: ...
188172
@overload
189-
def __ge__(self, other: Interval[_OrderableT]) -> bool: ... # type: ignore[misc]
173+
def __ge__(self, other: Interval[_OrderableT]) -> bool: ...
190174
@overload
191175
def __ge__(self: IntervalT, other: IntervalIndex[IntervalT]) -> np_ndarray_bool: ... # type: ignore[misc]
192-
# @overload
193-
# def __ge__(self:Interval[float], other: IntervalIndex[Interval[float]]) -> np_ndarray_bool: ...
194-
# @overload
195-
# def __ge__(self:Interval[Timestamp], other: IntervalIndex[Interval[Timestamp]]) -> np_ndarray_bool: ...
196-
# @overload
197-
# def __ge__(self:Interval[Timedelta], other: IntervalIndex[Interval[Timedelta]]) -> np_ndarray_bool: ...
198176
@overload
199-
def __ge__(self, other: Series[_OrderableT]) -> Series[bool]: ... # type: ignore[misc]
177+
def __ge__(self, other: Series[_OrderableT]) -> Series[bool]: ...
200178
@overload
201-
def __ge__(self, other: object) -> Literal[False]: ...
202-
@overload
203-
def __le__(self, other: Interval[_OrderableT]) -> bool: ... # type: ignore[misc]
179+
def __le__(self, other: Interval[_OrderableT]) -> bool: ...
204180
@overload
205181
def __le__(self: IntervalT, other: IntervalIndex[IntervalT]) -> np_ndarray_bool: ... # type: ignore[misc]
206-
# @overload
207-
# def __le__(self:Interval[float], other: IntervalIndex[Interval[float]]) -> np_ndarray_bool: ...
208-
# @overload
209-
# def __le__(self:Interval[Timestamp], other: IntervalIndex[Interval[Timestamp]]) -> np_ndarray_bool: ...
210-
# @overload
211-
# def __le__(self:Interval[Timedelta], other: IntervalIndex[Interval[Timedelta]]) -> np_ndarray_bool: ...
212-
# @overload
213-
# def __le__(self, other: Series[_OrderableT]) -> Series[bool]: ...
214-
@overload
215-
def __le__(self, other: object) -> Literal[False]: ...
216182
@overload
217183
def __eq__(self, other: Interval[_OrderableT]) -> bool: ... # type: ignore[misc]
218184
@overload
219185
def __eq__(self: IntervalT, other: IntervalIndex[IntervalT]) -> np_ndarray_bool: ... # type: ignore[misc]
220-
# @overload
221-
# def __eq__(self:Interval[float], other: IntervalIndex[Interval[float]]) -> np_ndarray_bool: ...
222-
# @overload
223-
# def __eq__(self:Interval[Timestamp], other: IntervalIndex[Interval[Timestamp]]) -> np_ndarray_bool: ...
224-
# @overload
225-
# def __eq__(self:Interval[Timedelta], other: IntervalIndex[Interval[Timedelta]]) -> np_ndarray_bool: ...
226186
@overload
227187
def __eq__(self, other: Series[_OrderableT]) -> Series[bool]: ... # type: ignore[misc]
228188
@overload
@@ -231,12 +191,6 @@ class Interval(IntervalMixin, Generic[_OrderableT]):
231191
def __ne__(self, other: Interval[_OrderableT]) -> bool: ... # type: ignore[misc]
232192
@overload
233193
def __ne__(self: IntervalT, other: IntervalIndex[IntervalT]) -> np_ndarray_bool: ... # type: ignore[misc]
234-
# @overload
235-
# def __ne__(self:Interval[float], other: IntervalIndex[Interval[float]]) -> np_ndarray_bool: ...
236-
# @overload
237-
# def __ne__(self:Interval[Timestamp], other: IntervalIndex[Interval[Timestamp]]) -> np_ndarray_bool: ...
238-
# @overload
239-
# def __ne__(self:Interval[Timedelta], other: IntervalIndex[Interval[Timedelta]]) -> np_ndarray_bool: ...
240194
@overload
241195
def __ne__(self, other: Series[_OrderableT]) -> Series[bool]: ... # type: ignore[misc]
242196
@overload

pandas-stubs/core/indexes/interval.pyi

+1-1
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ class IntervalIndex(IntervalMixin, ExtensionIndex, Generic[IntervalT]):
167167
) -> IntervalIndex[Interval[pd.Timedelta]]: ...
168168
@overload
169169
@classmethod
170-
def from_tuples( # type:ignore[misc]
170+
def from_tuples(
171171
cls,
172172
data: Sequence[tuple[int, int]],
173173
closed: IntervalClosedType = ...,

tests/test_scalars.py

+44-5
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,17 @@ def test_interval() -> None:
152152
bool,
153153
)
154154

155+
156+
def test_interval_math() -> None:
157+
interval_i = pd.Interval(0, 1, closed="left")
158+
interval_f = pd.Interval(0.0, 1.0, closed="right")
159+
interval_ts = pd.Interval(
160+
pd.Timestamp("2017-01-01"), pd.Timestamp("2017-01-02"), closed="both"
161+
)
162+
interval_td = pd.Interval(
163+
pd.Timedelta("1 days"), pd.Timedelta("2 days"), closed="neither"
164+
)
165+
155166
check(assert_type(interval_i * 3, "pd.Interval[int]"), pd.Interval, int)
156167
check(assert_type(interval_f * 3, "pd.Interval[float]"), pd.Interval, float)
157168
check(
@@ -216,6 +227,7 @@ def test_interval() -> None:
216227
pd.Timedelta,
217228
)
218229

230+
# Subtraction
219231
check(assert_type(interval_i - 1, "pd.Interval[int]"), pd.Interval, int)
220232
check(assert_type(interval_f - 1, "pd.Interval[float]"), pd.Interval, float)
221233
check(
@@ -240,39 +252,66 @@ def test_interval() -> None:
240252
pd.Interval,
241253
)
242254

255+
# Addition
243256
check(assert_type(interval_i + 1, "pd.Interval[int]"), pd.Interval)
257+
check(assert_type(1 + interval_i, "pd.Interval[int]"), pd.Interval)
244258
check(assert_type(interval_f + 1, "pd.Interval[float]"), pd.Interval)
259+
check(assert_type(1 + interval_f, "pd.Interval[float]"), pd.Interval)
245260
check(
246261
assert_type(interval_ts + pd.Timedelta(days=1), "pd.Interval[pd.Timestamp]"),
247262
pd.Interval,
248263
)
264+
check(
265+
assert_type(pd.Timedelta(days=1) + interval_ts, "pd.Interval[pd.Timestamp]"),
266+
pd.Interval,
267+
)
249268
check(
250269
assert_type(interval_td + pd.Timedelta(days=1), "pd.Interval[pd.Timedelta]"),
251270
pd.Interval,
252271
)
272+
check(
273+
assert_type(pd.Timedelta(days=1) + interval_td, "pd.Interval[pd.Timedelta]"),
274+
pd.Interval,
275+
)
253276

254277
check(assert_type(interval_i + 1.5, "pd.Interval[float]"), pd.Interval)
278+
check(assert_type(1.5 + interval_i, "pd.Interval[float]"), pd.Interval)
255279
check(assert_type(interval_f + 1.5, "pd.Interval[float]"), pd.Interval)
280+
check(assert_type(1.5 + interval_f, "pd.Interval[float]"), pd.Interval)
256281
check(
257282
assert_type(interval_ts + pd.Timedelta(days=1), "pd.Interval[pd.Timestamp]"),
258283
pd.Interval,
259284
)
285+
check(
286+
assert_type(pd.Timedelta(days=1) + interval_ts, "pd.Interval[pd.Timestamp]"),
287+
pd.Interval,
288+
)
260289
check(
261290
assert_type(interval_td + pd.Timedelta(days=1), "pd.Interval[pd.Timedelta]"),
262291
pd.Interval,
263292
)
293+
check(
294+
assert_type(pd.Timedelta(days=1) + interval_td, "pd.Interval[pd.Timedelta]"),
295+
pd.Interval,
296+
)
297+
298+
299+
def test_interval_cmp():
300+
interval_i = pd.Interval(0, 1, closed="left")
301+
interval_f = pd.Interval(0.0, 1.0, closed="right")
302+
interval_ts = pd.Interval(
303+
pd.Timestamp("2017-01-01"), pd.Timestamp("2017-01-02"), closed="both"
304+
)
305+
interval_td = pd.Interval(
306+
pd.Timedelta("1 days"), pd.Timedelta("2 days"), closed="neither"
307+
)
264308

265309
check(assert_type(0.5 in interval_i, bool), bool)
266310
check(assert_type(1 in interval_i, bool), bool)
267311
check(assert_type(1 in interval_f, bool), bool)
268312
check(assert_type(pd.Timestamp("2000-1-1") in interval_ts, bool), bool)
269313
check(assert_type(pd.Timedelta(days=1) in interval_td, bool), bool)
270314

271-
check(assert_type(hash(interval_i), int), int)
272-
check(assert_type(hash(interval_f), int), int)
273-
check(assert_type(hash(interval_ts), int), int)
274-
check(assert_type(hash(interval_td), int), int)
275-
276315
interval_index_int = pd.IntervalIndex([interval_i])
277316
check(
278317
assert_type(interval_index_int >= interval_i, np_ndarray_bool),

0 commit comments

Comments
 (0)