twodim_base.pyi 5.2 KB

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