Skip to content

Commit dbb1735

Browse files
committed
ENH: Further refinements of interval
1 parent 977f98f commit dbb1735

File tree

6 files changed

+283
-112
lines changed

6 files changed

+283
-112
lines changed

.flake8

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[flake8]
2+
per-file-ignores =
3+
tests/test_scalars.py: W503

pandas-stubs/_libs/interval.pyi

+1-3
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,7 @@ class Interval(IntervalMixin, Generic[_OrderableT]):
133133
@overload
134134
def __rmul__(self: Interval[Timedelta], y: float) -> Interval[Timedelta]: ...
135135
@overload
136-
def __truediv__(
137-
self: Interval[int], y: _OrderableScalarT
138-
) -> Interval[_OrderableScalarT]: ...
136+
def __truediv__(self: Interval[int], y: _OrderableScalarT) -> Interval[float]: ...
139137
@overload
140138
def __truediv__(self: Interval[float], y: float) -> Interval[float]: ...
141139
@overload

pandas-stubs/_typing.pyi

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ from pandas.core.indexes.base import Index
2626
from pandas.core.series import Series
2727
from typing_extensions import TypeAlias
2828

29+
from pandas._libs.interval import Interval
2930
from pandas._libs.tslibs import (
3031
Period,
3132
Timedelta,
@@ -196,6 +197,7 @@ S1 = TypeVar(
196197
Timedelta,
197198
np.datetime64,
198199
Period,
200+
Interval,
199201
)
200202
T1 = TypeVar(
201203
"T1", str, int, np.int64, np.uint64, np.float64, float, np.dtype[np.generic]

pandas-stubs/core/indexes/interval.pyi

+25
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ from pandas._typing import (
2525
FillnaOptions,
2626
IntervalClosedType,
2727
Label,
28+
np_ndarray_bool,
2829
npt,
2930
)
3031

@@ -122,6 +123,30 @@ class IntervalIndex(IntervalMixin, ExtensionIndex):
122123
def get_value(self, series: ABCSeries, key): ...
123124
@property
124125
def is_all_dates(self) -> bool: ...
126+
@overload # type: ignore[override]
127+
def __gt__(self, other: Interval | IntervalIndex) -> np_ndarray_bool: ... # type: ignore[misc]
128+
@overload
129+
def __gt__(self, other: object) -> bool: ...
130+
@overload # type: ignore[override]
131+
def __ge__(self, other: Interval | IntervalIndex) -> np_ndarray_bool: ... # type: ignore[misc]
132+
@overload
133+
def __ge__(self, other: object) -> bool: ...
134+
@overload # type: ignore[override]
135+
def __le__(self, other: Interval | IntervalIndex) -> np_ndarray_bool: ... # type: ignore[misc]
136+
@overload
137+
def __le__(self, other: object) -> bool: ...
138+
@overload # type: ignore[override]
139+
def __lt__(self, other: Interval | IntervalIndex) -> np_ndarray_bool: ... # type: ignore[misc]
140+
@overload
141+
def __lt__(self, other: object) -> bool: ...
142+
@overload # type: ignore[override]
143+
def __eq__(self, other: Interval | IntervalIndex) -> np_ndarray_bool: ... # type: ignore[misc]
144+
@overload
145+
def __eq__(self, other: object) -> bool: ...
146+
@overload # type: ignore[override]
147+
def __ne__(self, other: Interval | IntervalIndex) -> np_ndarray_bool: ... # type: ignore[misc]
148+
@overload
149+
def __ne__(self, other: object) -> bool: ...
125150

126151
@overload
127152
def interval_range(

pandas-stubs/core/series.pyi

+12
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ from matplotlib.axes import (
2424
)
2525
import numpy as np
2626
from pandas import (
27+
Interval,
2728
Period,
2829
Timedelta,
2930
Timestamp,
@@ -43,6 +44,7 @@ from pandas.core.indexes.accessors import (
4344
)
4445
from pandas.core.indexes.base import Index
4546
from pandas.core.indexes.datetimes import DatetimeIndex
47+
from pandas.core.indexes.interval import IntervalIndex
4648
from pandas.core.indexes.period import PeriodIndex
4749
from pandas.core.indexes.timedeltas import TimedeltaIndex
4850
from pandas.core.indexing import (
@@ -196,6 +198,16 @@ class Series(IndexOpsMixin, NDFrame, Generic[S1]):
196198
fastpath: bool = ...,
197199
) -> Series[Period]: ...
198200
@overload
201+
def __new__(
202+
cls,
203+
data: IntervalIndex,
204+
index: Axes | None = ...,
205+
dtype=...,
206+
name: Hashable | None = ...,
207+
copy: bool = ...,
208+
fastpath: bool = ...,
209+
) -> Series[Interval]: ...
210+
@overload
199211
def __new__(
200212
cls,
201213
data: object | _ListLike | Series[S1] | dict[int, S1] | dict[_str, S1] | None,

0 commit comments

Comments
 (0)