|
1 |
| -from typing import List, Optional, Any |
| 1 | +from typing import ( |
| 2 | + Any, |
| 3 | + Callable, |
| 4 | + List, |
| 5 | + Sequence, |
| 6 | + overload, |
| 7 | + Tuple, |
| 8 | + Type, |
| 9 | + TypeVar, |
| 10 | + Union, |
| 11 | +) |
2 | 12 |
|
3 |
| -from numpy import ndarray, _OrderCF |
4 |
| -from numpy.typing import ArrayLike, DTypeLike |
| 13 | +from numpy import ( |
| 14 | + ndarray, |
| 15 | + dtype, |
| 16 | + generic, |
| 17 | + number, |
| 18 | + bool_, |
| 19 | + timedelta64, |
| 20 | + datetime64, |
| 21 | + int_, |
| 22 | + intp, |
| 23 | + float64, |
| 24 | + signedinteger, |
| 25 | + floating, |
| 26 | + complexfloating, |
| 27 | + object_, |
| 28 | + _OrderCF, |
| 29 | +) |
| 30 | + |
| 31 | +from numpy.typing import ( |
| 32 | + DTypeLike, |
| 33 | + _SupportsDType, |
| 34 | + ArrayLike, |
| 35 | + NDArray, |
| 36 | + _NestedSequence, |
| 37 | + _SupportsArray, |
| 38 | + _ArrayLikeInt_co, |
| 39 | + _ArrayLikeFloat_co, |
| 40 | + _ArrayLikeComplex_co, |
| 41 | + _ArrayLikeObject_co, |
| 42 | +) |
| 43 | + |
| 44 | +_T = TypeVar("_T") |
| 45 | +_SCT = TypeVar("_SCT", bound=generic) |
| 46 | + |
| 47 | +# The returned arrays dtype must be compatible with `np.equal` |
| 48 | +_MaskFunc = Callable[ |
| 49 | + [NDArray[int_], _T], |
| 50 | + NDArray[Union[number[Any], bool_, timedelta64, datetime64, object_]], |
| 51 | +] |
| 52 | + |
| 53 | +_DTypeLike = Union[ |
| 54 | + Type[_SCT], |
| 55 | + dtype[_SCT], |
| 56 | + _SupportsDType[dtype[_SCT]], |
| 57 | +] |
| 58 | +_ArrayLike = _NestedSequence[_SupportsArray[dtype[_SCT]]] |
5 | 59 |
|
6 | 60 | __all__: List[str]
|
7 | 61 |
|
8 |
| -def fliplr(m): ... |
9 |
| -def flipud(m): ... |
| 62 | +@overload |
| 63 | +def fliplr(m: _ArrayLike[_SCT]) -> NDArray[_SCT]: ... |
| 64 | +@overload |
| 65 | +def fliplr(m: ArrayLike) -> NDArray[Any]: ... |
| 66 | + |
| 67 | +@overload |
| 68 | +def flipud(m: _ArrayLike[_SCT]) -> NDArray[_SCT]: ... |
| 69 | +@overload |
| 70 | +def flipud(m: ArrayLike) -> NDArray[Any]: ... |
10 | 71 |
|
| 72 | +@overload |
11 | 73 | def eye(
|
12 | 74 | N: int,
|
13 |
| - M: Optional[int] = ..., |
| 75 | + M: None | int = ..., |
| 76 | + k: int = ..., |
| 77 | + dtype: None = ..., |
| 78 | + order: _OrderCF = ..., |
| 79 | + *, |
| 80 | + like: None | ArrayLike = ..., |
| 81 | +) -> NDArray[float64]: ... |
| 82 | +@overload |
| 83 | +def eye( |
| 84 | + N: int, |
| 85 | + M: None | int = ..., |
| 86 | + k: int = ..., |
| 87 | + dtype: _DTypeLike[_SCT] = ..., |
| 88 | + order: _OrderCF = ..., |
| 89 | + *, |
| 90 | + like: None | ArrayLike = ..., |
| 91 | +) -> NDArray[_SCT]: ... |
| 92 | +@overload |
| 93 | +def eye( |
| 94 | + N: int, |
| 95 | + M: None | int = ..., |
14 | 96 | k: int = ...,
|
15 | 97 | dtype: DTypeLike = ...,
|
16 | 98 | order: _OrderCF = ...,
|
17 | 99 | *,
|
18 |
| - like: Optional[ArrayLike] = ... |
19 |
| -) -> ndarray[Any, Any]: ... |
20 |
| - |
21 |
| -def diag(v, k=...): ... |
22 |
| -def diagflat(v, k=...): ... |
23 |
| -def tri(N, M=..., k=..., dtype = ..., *, like=...): ... |
24 |
| -def tril(m, k=...): ... |
25 |
| -def triu(m, k=...): ... |
26 |
| -def vander(x, N=..., increasing=...): ... |
27 |
| -def histogram2d(x, y, bins=..., range=..., normed=..., weights=..., density=...): ... |
28 |
| -def mask_indices(n, mask_func, k=...): ... |
29 |
| -def tril_indices(n, k=..., m=...): ... |
30 |
| -def tril_indices_from(arr, k=...): ... |
31 |
| -def triu_indices(n, k=..., m=...): ... |
32 |
| -def triu_indices_from(arr, k=...): ... |
| 100 | + like: None | ArrayLike = ..., |
| 101 | +) -> NDArray[Any]: ... |
| 102 | + |
| 103 | +@overload |
| 104 | +def diag(v: _ArrayLike[_SCT], k: int = ...) -> NDArray[_SCT]: ... |
| 105 | +@overload |
| 106 | +def diag(v: ArrayLike, k: int = ...) -> NDArray[Any]: ... |
| 107 | + |
| 108 | +@overload |
| 109 | +def diagflat(v: _ArrayLike[_SCT], k: int = ...) -> NDArray[_SCT]: ... |
| 110 | +@overload |
| 111 | +def diagflat(v: ArrayLike, k: int = ...) -> NDArray[Any]: ... |
| 112 | + |
| 113 | +@overload |
| 114 | +def tri( |
| 115 | + N: int, |
| 116 | + M: None | int = ..., |
| 117 | + k: int = ..., |
| 118 | + dtype: None = ..., |
| 119 | + *, |
| 120 | + like: None | ArrayLike = ... |
| 121 | +) -> NDArray[float64]: ... |
| 122 | +@overload |
| 123 | +def tri( |
| 124 | + N: int, |
| 125 | + M: None | int = ..., |
| 126 | + k: int = ..., |
| 127 | + dtype: _DTypeLike[_SCT] = ..., |
| 128 | + *, |
| 129 | + like: None | ArrayLike = ... |
| 130 | +) -> NDArray[_SCT]: ... |
| 131 | +@overload |
| 132 | +def tri( |
| 133 | + N: int, |
| 134 | + M: None | int = ..., |
| 135 | + k: int = ..., |
| 136 | + dtype: DTypeLike = ..., |
| 137 | + *, |
| 138 | + like: None | ArrayLike = ... |
| 139 | +) -> NDArray[Any]: ... |
| 140 | + |
| 141 | +@overload |
| 142 | +def tril(v: _ArrayLike[_SCT], k: int = ...) -> NDArray[_SCT]: ... |
| 143 | +@overload |
| 144 | +def tril(v: ArrayLike, k: int = ...) -> NDArray[Any]: ... |
| 145 | + |
| 146 | +@overload |
| 147 | +def triu(v: _ArrayLike[_SCT], k: int = ...) -> NDArray[_SCT]: ... |
| 148 | +@overload |
| 149 | +def triu(v: ArrayLike, k: int = ...) -> NDArray[Any]: ... |
| 150 | + |
| 151 | +@overload |
| 152 | +def vander( # type: ignore[misc] |
| 153 | + x: _ArrayLikeInt_co, |
| 154 | + N: None | int = ..., |
| 155 | + increasing: bool = ..., |
| 156 | +) -> NDArray[signedinteger[Any]]: ... |
| 157 | +@overload |
| 158 | +def vander( # type: ignore[misc] |
| 159 | + x: _ArrayLikeFloat_co, |
| 160 | + N: None | int = ..., |
| 161 | + increasing: bool = ..., |
| 162 | +) -> NDArray[floating[Any]]: ... |
| 163 | +@overload |
| 164 | +def vander( |
| 165 | + x: _ArrayLikeComplex_co, |
| 166 | + N: None | int = ..., |
| 167 | + increasing: bool = ..., |
| 168 | +) -> NDArray[complexfloating[Any, Any]]: ... |
| 169 | +@overload |
| 170 | +def vander( |
| 171 | + x: _ArrayLikeObject_co, |
| 172 | + N: None | int = ..., |
| 173 | + increasing: bool = ..., |
| 174 | +) -> NDArray[object_]: ... |
| 175 | + |
| 176 | +@overload |
| 177 | +def histogram2d( # type: ignore[misc] |
| 178 | + x: _ArrayLikeFloat_co, |
| 179 | + y: _ArrayLikeFloat_co, |
| 180 | + bins: int | Sequence[int] = ..., |
| 181 | + range: None | _ArrayLikeFloat_co = ..., |
| 182 | + normed: None | bool = ..., |
| 183 | + weights: None | _ArrayLikeFloat_co = ..., |
| 184 | + density: None | bool = ..., |
| 185 | +) -> Tuple[ |
| 186 | + NDArray[float64], |
| 187 | + NDArray[floating[Any]], |
| 188 | + NDArray[floating[Any]], |
| 189 | +]: ... |
| 190 | +@overload |
| 191 | +def histogram2d( |
| 192 | + x: _ArrayLikeComplex_co, |
| 193 | + y: _ArrayLikeComplex_co, |
| 194 | + bins: int | Sequence[int] = ..., |
| 195 | + range: None | _ArrayLikeFloat_co = ..., |
| 196 | + normed: None | bool = ..., |
| 197 | + weights: None | _ArrayLikeFloat_co = ..., |
| 198 | + density: None | bool = ..., |
| 199 | +) -> Tuple[ |
| 200 | + NDArray[float64], |
| 201 | + NDArray[complexfloating[Any, Any]], |
| 202 | + NDArray[complexfloating[Any, Any]], |
| 203 | +]: ... |
| 204 | +@overload # TODO: Sort out `bins` |
| 205 | +def histogram2d( |
| 206 | + x: _ArrayLikeComplex_co, |
| 207 | + y: _ArrayLikeComplex_co, |
| 208 | + bins: Sequence[_ArrayLikeInt_co], |
| 209 | + range: None | _ArrayLikeFloat_co = ..., |
| 210 | + normed: None | bool = ..., |
| 211 | + weights: None | _ArrayLikeFloat_co = ..., |
| 212 | + density: None | bool = ..., |
| 213 | +) -> Tuple[ |
| 214 | + NDArray[float64], |
| 215 | + NDArray[Any], |
| 216 | + NDArray[Any], |
| 217 | +]: ... |
| 218 | + |
| 219 | +# NOTE: we're assuming/demanding here the `mask_func` returns |
| 220 | +# an ndarray of shape `(n, n)`; otherwise there is the possibility |
| 221 | +# of the output tuple having more or less than 2 elements |
| 222 | +@overload |
| 223 | +def mask_indices( |
| 224 | + n: int, |
| 225 | + mask_func: _MaskFunc[int], |
| 226 | + k: int = ..., |
| 227 | +) -> Tuple[NDArray[intp], NDArray[intp]]: ... |
| 228 | +@overload |
| 229 | +def mask_indices( |
| 230 | + n: int, |
| 231 | + mask_func: _MaskFunc[_T], |
| 232 | + k: _T, |
| 233 | +) -> Tuple[NDArray[intp], NDArray[intp]]: ... |
| 234 | + |
| 235 | +def tril_indices( |
| 236 | + n: int, |
| 237 | + k: int = ..., |
| 238 | + m: None | int = ..., |
| 239 | +) -> Tuple[NDArray[int_], NDArray[int_]]: ... |
| 240 | + |
| 241 | +def tril_indices_from( |
| 242 | + arr: NDArray[Any], |
| 243 | + k: int = ..., |
| 244 | +) -> Tuple[NDArray[int_], NDArray[int_]]: ... |
| 245 | + |
| 246 | +def triu_indices( |
| 247 | + n: int, |
| 248 | + k: int = ..., |
| 249 | + m: None | int = ..., |
| 250 | +) -> Tuple[NDArray[int_], NDArray[int_]]: ... |
| 251 | + |
| 252 | +def triu_indices_from( |
| 253 | + arr: NDArray[Any], |
| 254 | + k: int = ..., |
| 255 | +) -> Tuple[NDArray[int_], NDArray[int_]]: ... |
0 commit comments