@@ -4,22 +4,21 @@ from typing import (
44 Literal ,
55 TypeVar ,
66 overload ,
7+ type_check_only ,
78)
89
9- import numpy as np
1010from pandas import (
1111 IntervalIndex ,
1212 Series ,
1313 Timedelta ,
1414 Timestamp ,
1515)
16- from pandas .core .series import TimedeltaSeries
1716
1817from pandas ._typing import (
1918 IntervalClosedType ,
2019 IntervalT ,
21- np_1darray ,
22- npt ,
20+ np_1darray_bool ,
21+ np_ndarray ,
2322)
2423
2524VALID_CLOSED : frozenset [str ]
@@ -28,6 +27,7 @@ _OrderableScalarT = TypeVar("_OrderableScalarT", bound=int | float)
2827_OrderableTimesT = TypeVar ("_OrderableTimesT" , bound = Timestamp | Timedelta )
2928_OrderableT = TypeVar ("_OrderableT" , bound = int | float | Timestamp | Timedelta )
3029
30+ @type_check_only
3131class _LengthDescriptor :
3232 @overload
3333 def __get__ (
@@ -38,8 +38,9 @@ class _LengthDescriptor:
3838 self , instance : Interval [_OrderableTimesT ], owner : Any
3939 ) -> Timedelta : ...
4040 @overload
41- def __get__ (self , instance : IntervalTree , owner : Any ) -> np . ndarray : ...
41+ def __get__ (self , instance : IntervalMixin , owner : Any ) -> np_ndarray : ...
4242
43+ @type_check_only
4344class _MidDescriptor :
4445 @overload
4546 def __get__ (self , instance : Interval [_OrderableScalarT ], owner : Any ) -> float : ...
@@ -48,7 +49,7 @@ class _MidDescriptor:
4849 self , instance : Interval [_OrderableTimesT ], owner : Any
4950 ) -> _OrderableTimesT : ...
5051 @overload
51- def __get__ (self , instance : IntervalTree , owner : Any ) -> np . ndarray : ...
52+ def __get__ (self , instance : IntervalMixin , owner : Any ) -> np_ndarray : ...
5253
5354class IntervalMixin :
5455 @property
@@ -69,8 +70,8 @@ class Interval(IntervalMixin, Generic[_OrderableT]):
6970 def right (self : Interval [_OrderableT ]) -> _OrderableT : ...
7071 @property
7172 def closed (self ) -> IntervalClosedType : ...
72- mid : _MidDescriptor
73- length : _LengthDescriptor
73+ mid = _MidDescriptor ()
74+ length = _LengthDescriptor ()
7475 def __init__ (
7576 self ,
7677 left : _OrderableT ,
@@ -167,78 +168,47 @@ class Interval(IntervalMixin, Generic[_OrderableT]):
167168 @overload
168169 def __gt__ (self , other : Interval [_OrderableT ]) -> bool : ...
169170 @overload
170- def __gt__ (
171- self : IntervalT , other : IntervalIndex [IntervalT ]
172- ) -> np_1darray [np .bool ]: ...
171+ def __gt__ (self : IntervalT , other : IntervalIndex [IntervalT ]) -> np_1darray_bool : ...
173172 @overload
174173 def __gt__ (
175174 self ,
176- other : Series [int ] | Series [float ] | Series [Timestamp ] | TimedeltaSeries ,
175+ other : Series [int ] | Series [float ] | Series [Timestamp ] | Series [ Timedelta ] ,
177176 ) -> Series [bool ]: ...
178177 @overload
179178 def __lt__ (self , other : Interval [_OrderableT ]) -> bool : ...
180179 @overload
181- def __lt__ (
182- self : IntervalT , other : IntervalIndex [IntervalT ]
183- ) -> np_1darray [np .bool ]: ...
180+ def __lt__ (self : IntervalT , other : IntervalIndex [IntervalT ]) -> np_1darray_bool : ...
184181 @overload
185182 def __lt__ (
186183 self ,
187- other : Series [int ] | Series [float ] | Series [Timestamp ] | TimedeltaSeries ,
184+ other : Series [int ] | Series [float ] | Series [Timestamp ] | Series [ Timedelta ] ,
188185 ) -> Series [bool ]: ...
189186 @overload
190187 def __ge__ (self , other : Interval [_OrderableT ]) -> bool : ...
191188 @overload
192- def __ge__ (
193- self : IntervalT , other : IntervalIndex [IntervalT ]
194- ) -> np_1darray [np .bool ]: ...
189+ def __ge__ (self : IntervalT , other : IntervalIndex [IntervalT ]) -> np_1darray_bool : ...
195190 @overload
196191 def __ge__ (
197192 self ,
198- other : Series [int ] | Series [float ] | Series [Timestamp ] | TimedeltaSeries ,
193+ other : Series [int ] | Series [float ] | Series [Timestamp ] | Series [ Timedelta ] ,
199194 ) -> Series [bool ]: ...
200195 @overload
201196 def __le__ (self , other : Interval [_OrderableT ]) -> bool : ...
202197 @overload
203- def __le__ (
204- self : IntervalT , other : IntervalIndex [IntervalT ]
205- ) -> np_1darray [np .bool ]: ...
198+ def __le__ (self : IntervalT , other : IntervalIndex [IntervalT ]) -> np_1darray_bool : ...
206199 @overload
207200 def __eq__ (self , other : Interval [_OrderableT ]) -> bool : ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload]
208201 @overload
209- def __eq__ (
210- self : IntervalT , other : IntervalIndex [IntervalT ]
211- ) -> np_1darray [np .bool ]: ...
202+ def __eq__ (self : IntervalT , other : IntervalIndex [IntervalT ]) -> np_1darray_bool : ...
212203 @overload
213204 def __eq__ (self , other : Series [_OrderableT ]) -> Series [bool ]: ... # type: ignore[overload-overlap]
214205 @overload
215206 def __eq__ (self , other : object ) -> Literal [False ]: ...
216207 @overload
217208 def __ne__ (self , other : Interval [_OrderableT ]) -> bool : ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload]
218209 @overload
219- def __ne__ (
220- self : IntervalT , other : IntervalIndex [IntervalT ]
221- ) -> np_1darray [np .bool ]: ...
210+ def __ne__ (self : IntervalT , other : IntervalIndex [IntervalT ]) -> np_1darray_bool : ...
222211 @overload
223212 def __ne__ (self , other : Series [_OrderableT ]) -> Series [bool ]: ... # type: ignore[overload-overlap]
224213 @overload
225214 def __ne__ (self , other : object ) -> Literal [True ]: ...
226-
227- class IntervalTree (IntervalMixin ):
228- def __init__ (
229- self ,
230- left : np .ndarray ,
231- right : np .ndarray ,
232- closed : IntervalClosedType = ...,
233- leaf_size : int = ...,
234- ) -> None : ...
235- def get_indexer (self , target ) -> npt .NDArray [np .intp ]: ...
236- def get_indexer_non_unique (
237- self , target
238- ) -> tuple [npt .NDArray [np .intp ], npt .NDArray [np .intp ]]: ...
239- _na_count : int
240- @property
241- def is_overlapping (self ) -> bool : ...
242- @property
243- def is_monotonic_increasing (self ) -> bool : ...
244- def clear_mapping (self ) -> None : ...
0 commit comments