22
22
TypeVar ,
23
23
Union ,
24
24
cast ,
25
+ overload ,
25
26
)
26
27
27
28
import numpy as np
@@ -287,8 +288,20 @@ def _from_factorized(cls, values, original):
287
288
# Must be a Sequence
288
289
# ------------------------------------------------------------------------
289
290
291
+ @overload
292
+ def __getitem__ (self : ExtensionArrayT , item : int ) -> Any :
293
+ ...
294
+
295
+ @overload
296
+ def __getitem__ (self : ExtensionArrayT , item : slice ) -> ExtensionArrayT :
297
+ ...
298
+
299
+ @overload
300
+ def __getitem__ (self : ExtensionArrayT , item : np .ndarray ) -> ExtensionArrayT :
301
+ ...
302
+
290
303
def __getitem__ (
291
- self , item : Union [int , slice , np .ndarray ]
304
+ self : ExtensionArrayT , item : Union [int , slice , np .ndarray ]
292
305
) -> Union [ExtensionArray , Any ]:
293
306
"""
294
307
Select a subset of self.
@@ -673,11 +686,11 @@ def argmax(self, skipna: bool = True) -> int:
673
686
return nargminmax (self , "argmax" )
674
687
675
688
def fillna (
676
- self ,
689
+ self : ExtensionArrayT ,
677
690
value : Optional [Union [Any , ArrayLike ]] = None ,
678
691
method : Optional [Literal ["backfill" , "bfill" , "ffill" , "pad" ]] = None ,
679
692
limit : Optional [int ] = None ,
680
- ) -> ExtensionArray :
693
+ ) -> ExtensionArrayT :
681
694
"""
682
695
Fill NA/NaN values using the specified method.
683
696
@@ -722,7 +735,7 @@ def fillna(
722
735
new_values = self .copy ()
723
736
return new_values
724
737
725
- def dropna (self ) -> ExtensionArray :
738
+ def dropna (self ) -> ExtensionArrayT :
726
739
"""
727
740
Return ExtensionArray without NA values.
728
741
@@ -732,7 +745,9 @@ def dropna(self) -> ExtensionArray:
732
745
"""
733
746
return self [~ self .isna ()]
734
747
735
- def shift (self , periods : int = 1 , fill_value : object = None ) -> ExtensionArray :
748
+ def shift (
749
+ self : ExtensionArrayT , periods : int = 1 , fill_value : object = None
750
+ ) -> ExtensionArrayT :
736
751
"""
737
752
Shift values by desired number.
738
753
@@ -780,13 +795,13 @@ def shift(self, periods: int = 1, fill_value: object = None) -> ExtensionArray:
780
795
)
781
796
if periods > 0 :
782
797
a = empty
783
- b = self [:- periods ]
798
+ b : ExtensionArrayT = self [:- periods ]
784
799
else :
785
800
a = self [abs (periods ) :]
786
801
b = empty
787
802
return self ._concat_same_type ([a , b ])
788
803
789
- def unique (self ) -> ExtensionArray :
804
+ def unique (self : ExtensionArrayT ) -> ExtensionArrayT :
790
805
"""
791
806
Compute the ExtensionArray of unique values.
792
807
@@ -1018,8 +1033,10 @@ def factorize(self, na_sentinel: int = -1) -> Tuple[np.ndarray, ExtensionArray]:
1018
1033
@Substitution (klass = "ExtensionArray" )
1019
1034
@Appender (_extension_array_shared_docs ["repeat" ])
1020
1035
def repeat (
1021
- self , repeats : Union [int , Sequence [int ]], axis : Literal [None ] = None
1022
- ) -> ExtensionArray :
1036
+ self : ExtensionArrayT ,
1037
+ repeats : Union [int , Sequence [int ]],
1038
+ axis : Literal [None ] = None ,
1039
+ ) -> ExtensionArrayT :
1023
1040
nv .validate_repeat ((), {"axis" : axis })
1024
1041
ind = np .arange (len (self )).repeat (repeats )
1025
1042
return self .take (ind )
@@ -1203,7 +1220,7 @@ def _formatter(self, boxed: bool = False) -> Callable[[Any], Optional[str]]:
1203
1220
# Reshaping
1204
1221
# ------------------------------------------------------------------------
1205
1222
1206
- def transpose (self , * axes : int ) -> ExtensionArray :
1223
+ def transpose (self : ExtensionArrayT , * axes : int ) -> ExtensionArrayT :
1207
1224
"""
1208
1225
Return a transposed view on this array.
1209
1226
@@ -1213,12 +1230,12 @@ def transpose(self, *axes: int) -> ExtensionArray:
1213
1230
return self [:]
1214
1231
1215
1232
@property
1216
- def T (self ) -> ExtensionArray :
1233
+ def T (self : ExtensionArrayT ) -> ExtensionArrayT :
1217
1234
return self .transpose ()
1218
1235
1219
1236
def ravel (
1220
- self , order : Optional [Literal ["C" , "F" , "A" , "K" ]] = "C"
1221
- ) -> ExtensionArray :
1237
+ self : ExtensionArrayT , order : Optional [Literal ["C" , "F" , "A" , "K" ]] = "C"
1238
+ ) -> ExtensionArrayT :
1222
1239
"""
1223
1240
Return a flattened view on this array.
1224
1241
@@ -1240,7 +1257,7 @@ def ravel(
1240
1257
@classmethod
1241
1258
def _concat_same_type (
1242
1259
cls : Type [ExtensionArrayT ], to_concat : Sequence [ExtensionArrayT ]
1243
- ) -> ExtensionArrayT :
1260
+ ):
1244
1261
"""
1245
1262
Concatenate multiple array of this dtype.
1246
1263
0 commit comments