1
+ from typing import (
2
+ Sequence ,
3
+ Union ,
4
+ overload ,
5
+ )
6
+
1
7
import numpy as np
2
8
from pandas .core .arrays import ExtensionArray
9
+ from typing_extensions import TypeAlias
3
10
11
+ from pandas ._libs .missing import NAType
4
12
from pandas ._typing import (
5
13
Scalar ,
14
+ npt ,
6
15
type_t ,
7
16
)
8
17
@@ -22,11 +31,29 @@ class BooleanDtype(ExtensionDtype):
22
31
def construct_array_type (cls ) -> type_t [BooleanArray ]: ...
23
32
def __from_arrow__ (self , array ): ...
24
33
34
+ _ScalarType : TypeAlias = Union [bool , np .bool_ , NAType , None ]
35
+ _ArrayKey : TypeAlias = Union [Sequence [int ], npt .NDArray [np .integer ], slice ]
36
+
25
37
class BooleanArray (BaseMaskedArray ):
26
38
def __init__ (
27
- self , values : np .ndarray , mask : np .ndarray , copy : bool = ...
39
+ self ,
40
+ values : npt .NDArray [np .bool_ ],
41
+ mask : npt .NDArray [np .bool_ ],
42
+ copy : bool = ...,
43
+ ) -> None : ...
44
+ # Ignore overrides since more specific than super type
45
+ @overload # type: ignore[override]
46
+ def __setitem__ (self , key : int , value : _ScalarType ) -> None : ...
47
+ @overload
48
+ def __setitem__ (
49
+ self ,
50
+ key : _ArrayKey ,
51
+ value : _ScalarType | Sequence [bool | NAType | None ] | npt .NDArray [np .bool_ ],
28
52
) -> None : ...
29
- def __setitem__ (self , key : int | np .ndarray | slice , value : object ) -> None : ...
53
+ @overload # type: ignore[override]
54
+ def __getitem__ (self , item : int ) -> bool | NAType : ...
55
+ @overload
56
+ def __getitem__ (self , item : _ArrayKey ) -> BooleanArray : ...
30
57
@property
31
58
def dtype (self ): ...
32
59
def astype (
0 commit comments