numpy 2.4.1__cp314-cp314t-win_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (932) hide show
  1. numpy/__config__.py +170 -0
  2. numpy/__config__.pyi +108 -0
  3. numpy/__init__.cython-30.pxd +1242 -0
  4. numpy/__init__.pxd +1155 -0
  5. numpy/__init__.py +955 -0
  6. numpy/__init__.pyi +6202 -0
  7. numpy/_array_api_info.py +346 -0
  8. numpy/_array_api_info.pyi +206 -0
  9. numpy/_configtool.py +39 -0
  10. numpy/_configtool.pyi +1 -0
  11. numpy/_core/__init__.py +201 -0
  12. numpy/_core/__init__.pyi +666 -0
  13. numpy/_core/_add_newdocs.py +7151 -0
  14. numpy/_core/_add_newdocs.pyi +2 -0
  15. numpy/_core/_add_newdocs_scalars.py +381 -0
  16. numpy/_core/_add_newdocs_scalars.pyi +16 -0
  17. numpy/_core/_asarray.py +130 -0
  18. numpy/_core/_asarray.pyi +43 -0
  19. numpy/_core/_dtype.py +366 -0
  20. numpy/_core/_dtype.pyi +56 -0
  21. numpy/_core/_dtype_ctypes.py +120 -0
  22. numpy/_core/_dtype_ctypes.pyi +83 -0
  23. numpy/_core/_exceptions.py +162 -0
  24. numpy/_core/_exceptions.pyi +54 -0
  25. numpy/_core/_internal.py +968 -0
  26. numpy/_core/_internal.pyi +61 -0
  27. numpy/_core/_methods.py +252 -0
  28. numpy/_core/_methods.pyi +22 -0
  29. numpy/_core/_multiarray_tests.cp314t-win_arm64.lib +0 -0
  30. numpy/_core/_multiarray_tests.cp314t-win_arm64.pyd +0 -0
  31. numpy/_core/_multiarray_umath.cp314t-win_arm64.lib +0 -0
  32. numpy/_core/_multiarray_umath.cp314t-win_arm64.pyd +0 -0
  33. numpy/_core/_operand_flag_tests.cp314t-win_arm64.lib +0 -0
  34. numpy/_core/_operand_flag_tests.cp314t-win_arm64.pyd +0 -0
  35. numpy/_core/_rational_tests.cp314t-win_arm64.lib +0 -0
  36. numpy/_core/_rational_tests.cp314t-win_arm64.pyd +0 -0
  37. numpy/_core/_simd.cp314t-win_arm64.lib +0 -0
  38. numpy/_core/_simd.cp314t-win_arm64.pyd +0 -0
  39. numpy/_core/_simd.pyi +35 -0
  40. numpy/_core/_string_helpers.py +100 -0
  41. numpy/_core/_string_helpers.pyi +12 -0
  42. numpy/_core/_struct_ufunc_tests.cp314t-win_arm64.lib +0 -0
  43. numpy/_core/_struct_ufunc_tests.cp314t-win_arm64.pyd +0 -0
  44. numpy/_core/_type_aliases.py +131 -0
  45. numpy/_core/_type_aliases.pyi +86 -0
  46. numpy/_core/_ufunc_config.py +515 -0
  47. numpy/_core/_ufunc_config.pyi +69 -0
  48. numpy/_core/_umath_tests.cp314t-win_arm64.lib +0 -0
  49. numpy/_core/_umath_tests.cp314t-win_arm64.pyd +0 -0
  50. numpy/_core/_umath_tests.pyi +47 -0
  51. numpy/_core/arrayprint.py +1779 -0
  52. numpy/_core/arrayprint.pyi +158 -0
  53. numpy/_core/cversions.py +13 -0
  54. numpy/_core/defchararray.py +1414 -0
  55. numpy/_core/defchararray.pyi +1150 -0
  56. numpy/_core/einsumfunc.py +1650 -0
  57. numpy/_core/einsumfunc.pyi +184 -0
  58. numpy/_core/fromnumeric.py +4233 -0
  59. numpy/_core/fromnumeric.pyi +1735 -0
  60. numpy/_core/function_base.py +547 -0
  61. numpy/_core/function_base.pyi +276 -0
  62. numpy/_core/getlimits.py +462 -0
  63. numpy/_core/getlimits.pyi +124 -0
  64. numpy/_core/include/numpy/__multiarray_api.c +376 -0
  65. numpy/_core/include/numpy/__multiarray_api.h +1628 -0
  66. numpy/_core/include/numpy/__ufunc_api.c +55 -0
  67. numpy/_core/include/numpy/__ufunc_api.h +349 -0
  68. numpy/_core/include/numpy/_neighborhood_iterator_imp.h +90 -0
  69. numpy/_core/include/numpy/_numpyconfig.h +33 -0
  70. numpy/_core/include/numpy/_public_dtype_api_table.h +86 -0
  71. numpy/_core/include/numpy/arrayobject.h +7 -0
  72. numpy/_core/include/numpy/arrayscalars.h +198 -0
  73. numpy/_core/include/numpy/dtype_api.h +547 -0
  74. numpy/_core/include/numpy/halffloat.h +70 -0
  75. numpy/_core/include/numpy/ndarrayobject.h +304 -0
  76. numpy/_core/include/numpy/ndarraytypes.h +1982 -0
  77. numpy/_core/include/numpy/npy_2_compat.h +249 -0
  78. numpy/_core/include/numpy/npy_2_complexcompat.h +28 -0
  79. numpy/_core/include/numpy/npy_3kcompat.h +374 -0
  80. numpy/_core/include/numpy/npy_common.h +989 -0
  81. numpy/_core/include/numpy/npy_cpu.h +126 -0
  82. numpy/_core/include/numpy/npy_endian.h +79 -0
  83. numpy/_core/include/numpy/npy_math.h +602 -0
  84. numpy/_core/include/numpy/npy_no_deprecated_api.h +20 -0
  85. numpy/_core/include/numpy/npy_os.h +42 -0
  86. numpy/_core/include/numpy/numpyconfig.h +185 -0
  87. numpy/_core/include/numpy/random/LICENSE.txt +21 -0
  88. numpy/_core/include/numpy/random/bitgen.h +20 -0
  89. numpy/_core/include/numpy/random/distributions.h +209 -0
  90. numpy/_core/include/numpy/random/libdivide.h +2079 -0
  91. numpy/_core/include/numpy/ufuncobject.h +343 -0
  92. numpy/_core/include/numpy/utils.h +37 -0
  93. numpy/_core/lib/npy-pkg-config/mlib.ini +12 -0
  94. numpy/_core/lib/npy-pkg-config/npymath.ini +20 -0
  95. numpy/_core/lib/npymath.lib +0 -0
  96. numpy/_core/lib/pkgconfig/numpy.pc +7 -0
  97. numpy/_core/memmap.py +363 -0
  98. numpy/_core/memmap.pyi +3 -0
  99. numpy/_core/multiarray.py +1740 -0
  100. numpy/_core/multiarray.pyi +1316 -0
  101. numpy/_core/numeric.py +2758 -0
  102. numpy/_core/numeric.pyi +1276 -0
  103. numpy/_core/numerictypes.py +633 -0
  104. numpy/_core/numerictypes.pyi +196 -0
  105. numpy/_core/overrides.py +188 -0
  106. numpy/_core/overrides.pyi +47 -0
  107. numpy/_core/printoptions.py +32 -0
  108. numpy/_core/printoptions.pyi +28 -0
  109. numpy/_core/records.py +1088 -0
  110. numpy/_core/records.pyi +340 -0
  111. numpy/_core/shape_base.py +996 -0
  112. numpy/_core/shape_base.pyi +182 -0
  113. numpy/_core/strings.py +1813 -0
  114. numpy/_core/strings.pyi +536 -0
  115. numpy/_core/tests/_locales.py +72 -0
  116. numpy/_core/tests/_natype.py +144 -0
  117. numpy/_core/tests/data/astype_copy.pkl +0 -0
  118. numpy/_core/tests/data/generate_umath_validation_data.cpp +170 -0
  119. numpy/_core/tests/data/recarray_from_file.fits +0 -0
  120. numpy/_core/tests/data/umath-validation-set-README.txt +15 -0
  121. numpy/_core/tests/data/umath-validation-set-arccos.csv +1429 -0
  122. numpy/_core/tests/data/umath-validation-set-arccosh.csv +1429 -0
  123. numpy/_core/tests/data/umath-validation-set-arcsin.csv +1429 -0
  124. numpy/_core/tests/data/umath-validation-set-arcsinh.csv +1429 -0
  125. numpy/_core/tests/data/umath-validation-set-arctan.csv +1429 -0
  126. numpy/_core/tests/data/umath-validation-set-arctanh.csv +1429 -0
  127. numpy/_core/tests/data/umath-validation-set-cbrt.csv +1429 -0
  128. numpy/_core/tests/data/umath-validation-set-cos.csv +1375 -0
  129. numpy/_core/tests/data/umath-validation-set-cosh.csv +1429 -0
  130. numpy/_core/tests/data/umath-validation-set-exp.csv +412 -0
  131. numpy/_core/tests/data/umath-validation-set-exp2.csv +1429 -0
  132. numpy/_core/tests/data/umath-validation-set-expm1.csv +1429 -0
  133. numpy/_core/tests/data/umath-validation-set-log.csv +271 -0
  134. numpy/_core/tests/data/umath-validation-set-log10.csv +1629 -0
  135. numpy/_core/tests/data/umath-validation-set-log1p.csv +1429 -0
  136. numpy/_core/tests/data/umath-validation-set-log2.csv +1629 -0
  137. numpy/_core/tests/data/umath-validation-set-sin.csv +1370 -0
  138. numpy/_core/tests/data/umath-validation-set-sinh.csv +1429 -0
  139. numpy/_core/tests/data/umath-validation-set-tan.csv +1429 -0
  140. numpy/_core/tests/data/umath-validation-set-tanh.csv +1429 -0
  141. numpy/_core/tests/examples/cython/checks.pyx +373 -0
  142. numpy/_core/tests/examples/cython/meson.build +43 -0
  143. numpy/_core/tests/examples/cython/setup.py +39 -0
  144. numpy/_core/tests/examples/limited_api/limited_api1.c +17 -0
  145. numpy/_core/tests/examples/limited_api/limited_api2.pyx +11 -0
  146. numpy/_core/tests/examples/limited_api/limited_api_latest.c +19 -0
  147. numpy/_core/tests/examples/limited_api/meson.build +59 -0
  148. numpy/_core/tests/examples/limited_api/setup.py +24 -0
  149. numpy/_core/tests/test__exceptions.py +90 -0
  150. numpy/_core/tests/test_abc.py +54 -0
  151. numpy/_core/tests/test_api.py +655 -0
  152. numpy/_core/tests/test_argparse.py +90 -0
  153. numpy/_core/tests/test_array_api_info.py +113 -0
  154. numpy/_core/tests/test_array_coercion.py +928 -0
  155. numpy/_core/tests/test_array_interface.py +222 -0
  156. numpy/_core/tests/test_arraymethod.py +84 -0
  157. numpy/_core/tests/test_arrayobject.py +75 -0
  158. numpy/_core/tests/test_arrayprint.py +1324 -0
  159. numpy/_core/tests/test_casting_floatingpoint_errors.py +154 -0
  160. numpy/_core/tests/test_casting_unittests.py +955 -0
  161. numpy/_core/tests/test_conversion_utils.py +209 -0
  162. numpy/_core/tests/test_cpu_dispatcher.py +48 -0
  163. numpy/_core/tests/test_cpu_features.py +450 -0
  164. numpy/_core/tests/test_custom_dtypes.py +393 -0
  165. numpy/_core/tests/test_cython.py +352 -0
  166. numpy/_core/tests/test_datetime.py +2792 -0
  167. numpy/_core/tests/test_defchararray.py +858 -0
  168. numpy/_core/tests/test_deprecations.py +460 -0
  169. numpy/_core/tests/test_dlpack.py +190 -0
  170. numpy/_core/tests/test_dtype.py +2110 -0
  171. numpy/_core/tests/test_einsum.py +1351 -0
  172. numpy/_core/tests/test_errstate.py +131 -0
  173. numpy/_core/tests/test_extint128.py +217 -0
  174. numpy/_core/tests/test_finfo.py +86 -0
  175. numpy/_core/tests/test_function_base.py +504 -0
  176. numpy/_core/tests/test_getlimits.py +171 -0
  177. numpy/_core/tests/test_half.py +593 -0
  178. numpy/_core/tests/test_hashtable.py +36 -0
  179. numpy/_core/tests/test_indexerrors.py +122 -0
  180. numpy/_core/tests/test_indexing.py +1692 -0
  181. numpy/_core/tests/test_item_selection.py +167 -0
  182. numpy/_core/tests/test_limited_api.py +102 -0
  183. numpy/_core/tests/test_longdouble.py +370 -0
  184. numpy/_core/tests/test_mem_overlap.py +933 -0
  185. numpy/_core/tests/test_mem_policy.py +453 -0
  186. numpy/_core/tests/test_memmap.py +248 -0
  187. numpy/_core/tests/test_multiarray.py +11008 -0
  188. numpy/_core/tests/test_multiprocessing.py +55 -0
  189. numpy/_core/tests/test_multithreading.py +377 -0
  190. numpy/_core/tests/test_nditer.py +3533 -0
  191. numpy/_core/tests/test_nep50_promotions.py +287 -0
  192. numpy/_core/tests/test_numeric.py +4295 -0
  193. numpy/_core/tests/test_numerictypes.py +650 -0
  194. numpy/_core/tests/test_overrides.py +800 -0
  195. numpy/_core/tests/test_print.py +202 -0
  196. numpy/_core/tests/test_protocols.py +46 -0
  197. numpy/_core/tests/test_records.py +544 -0
  198. numpy/_core/tests/test_regression.py +2677 -0
  199. numpy/_core/tests/test_scalar_ctors.py +203 -0
  200. numpy/_core/tests/test_scalar_methods.py +328 -0
  201. numpy/_core/tests/test_scalarbuffer.py +153 -0
  202. numpy/_core/tests/test_scalarinherit.py +105 -0
  203. numpy/_core/tests/test_scalarmath.py +1168 -0
  204. numpy/_core/tests/test_scalarprint.py +403 -0
  205. numpy/_core/tests/test_shape_base.py +904 -0
  206. numpy/_core/tests/test_simd.py +1345 -0
  207. numpy/_core/tests/test_simd_module.py +105 -0
  208. numpy/_core/tests/test_stringdtype.py +1855 -0
  209. numpy/_core/tests/test_strings.py +1523 -0
  210. numpy/_core/tests/test_ufunc.py +3405 -0
  211. numpy/_core/tests/test_umath.py +4962 -0
  212. numpy/_core/tests/test_umath_accuracy.py +132 -0
  213. numpy/_core/tests/test_umath_complex.py +631 -0
  214. numpy/_core/tests/test_unicode.py +369 -0
  215. numpy/_core/umath.py +60 -0
  216. numpy/_core/umath.pyi +232 -0
  217. numpy/_distributor_init.py +15 -0
  218. numpy/_distributor_init.pyi +1 -0
  219. numpy/_expired_attrs_2_0.py +78 -0
  220. numpy/_expired_attrs_2_0.pyi +61 -0
  221. numpy/_globals.py +121 -0
  222. numpy/_globals.pyi +17 -0
  223. numpy/_pyinstaller/__init__.py +0 -0
  224. numpy/_pyinstaller/__init__.pyi +0 -0
  225. numpy/_pyinstaller/hook-numpy.py +36 -0
  226. numpy/_pyinstaller/hook-numpy.pyi +6 -0
  227. numpy/_pyinstaller/tests/__init__.py +16 -0
  228. numpy/_pyinstaller/tests/pyinstaller-smoke.py +32 -0
  229. numpy/_pyinstaller/tests/test_pyinstaller.py +35 -0
  230. numpy/_pytesttester.py +201 -0
  231. numpy/_pytesttester.pyi +18 -0
  232. numpy/_typing/__init__.py +173 -0
  233. numpy/_typing/_add_docstring.py +153 -0
  234. numpy/_typing/_array_like.py +106 -0
  235. numpy/_typing/_char_codes.py +213 -0
  236. numpy/_typing/_dtype_like.py +114 -0
  237. numpy/_typing/_extended_precision.py +15 -0
  238. numpy/_typing/_nbit.py +19 -0
  239. numpy/_typing/_nbit_base.py +94 -0
  240. numpy/_typing/_nbit_base.pyi +39 -0
  241. numpy/_typing/_nested_sequence.py +79 -0
  242. numpy/_typing/_scalars.py +20 -0
  243. numpy/_typing/_shape.py +8 -0
  244. numpy/_typing/_ufunc.py +7 -0
  245. numpy/_typing/_ufunc.pyi +975 -0
  246. numpy/_utils/__init__.py +95 -0
  247. numpy/_utils/__init__.pyi +28 -0
  248. numpy/_utils/_convertions.py +18 -0
  249. numpy/_utils/_convertions.pyi +4 -0
  250. numpy/_utils/_inspect.py +192 -0
  251. numpy/_utils/_inspect.pyi +70 -0
  252. numpy/_utils/_pep440.py +486 -0
  253. numpy/_utils/_pep440.pyi +118 -0
  254. numpy/char/__init__.py +2 -0
  255. numpy/char/__init__.pyi +111 -0
  256. numpy/conftest.py +248 -0
  257. numpy/core/__init__.py +33 -0
  258. numpy/core/__init__.pyi +0 -0
  259. numpy/core/_dtype.py +10 -0
  260. numpy/core/_dtype.pyi +0 -0
  261. numpy/core/_dtype_ctypes.py +10 -0
  262. numpy/core/_dtype_ctypes.pyi +0 -0
  263. numpy/core/_internal.py +27 -0
  264. numpy/core/_multiarray_umath.py +57 -0
  265. numpy/core/_utils.py +21 -0
  266. numpy/core/arrayprint.py +10 -0
  267. numpy/core/defchararray.py +10 -0
  268. numpy/core/einsumfunc.py +10 -0
  269. numpy/core/fromnumeric.py +10 -0
  270. numpy/core/function_base.py +10 -0
  271. numpy/core/getlimits.py +10 -0
  272. numpy/core/multiarray.py +25 -0
  273. numpy/core/numeric.py +12 -0
  274. numpy/core/numerictypes.py +10 -0
  275. numpy/core/overrides.py +10 -0
  276. numpy/core/overrides.pyi +7 -0
  277. numpy/core/records.py +10 -0
  278. numpy/core/shape_base.py +10 -0
  279. numpy/core/umath.py +10 -0
  280. numpy/ctypeslib/__init__.py +13 -0
  281. numpy/ctypeslib/__init__.pyi +15 -0
  282. numpy/ctypeslib/_ctypeslib.py +603 -0
  283. numpy/ctypeslib/_ctypeslib.pyi +236 -0
  284. numpy/doc/ufuncs.py +138 -0
  285. numpy/dtypes.py +41 -0
  286. numpy/dtypes.pyi +630 -0
  287. numpy/exceptions.py +246 -0
  288. numpy/exceptions.pyi +27 -0
  289. numpy/f2py/__init__.py +86 -0
  290. numpy/f2py/__init__.pyi +5 -0
  291. numpy/f2py/__main__.py +5 -0
  292. numpy/f2py/__version__.py +1 -0
  293. numpy/f2py/__version__.pyi +1 -0
  294. numpy/f2py/_backends/__init__.py +9 -0
  295. numpy/f2py/_backends/__init__.pyi +5 -0
  296. numpy/f2py/_backends/_backend.py +44 -0
  297. numpy/f2py/_backends/_backend.pyi +46 -0
  298. numpy/f2py/_backends/_distutils.py +76 -0
  299. numpy/f2py/_backends/_distutils.pyi +13 -0
  300. numpy/f2py/_backends/_meson.py +244 -0
  301. numpy/f2py/_backends/_meson.pyi +62 -0
  302. numpy/f2py/_backends/meson.build.template +58 -0
  303. numpy/f2py/_isocbind.py +62 -0
  304. numpy/f2py/_isocbind.pyi +13 -0
  305. numpy/f2py/_src_pyf.py +247 -0
  306. numpy/f2py/_src_pyf.pyi +28 -0
  307. numpy/f2py/auxfuncs.py +1004 -0
  308. numpy/f2py/auxfuncs.pyi +262 -0
  309. numpy/f2py/capi_maps.py +811 -0
  310. numpy/f2py/capi_maps.pyi +33 -0
  311. numpy/f2py/cb_rules.py +665 -0
  312. numpy/f2py/cb_rules.pyi +17 -0
  313. numpy/f2py/cfuncs.py +1563 -0
  314. numpy/f2py/cfuncs.pyi +31 -0
  315. numpy/f2py/common_rules.py +143 -0
  316. numpy/f2py/common_rules.pyi +9 -0
  317. numpy/f2py/crackfortran.py +3725 -0
  318. numpy/f2py/crackfortran.pyi +266 -0
  319. numpy/f2py/diagnose.py +149 -0
  320. numpy/f2py/diagnose.pyi +1 -0
  321. numpy/f2py/f2py2e.py +788 -0
  322. numpy/f2py/f2py2e.pyi +74 -0
  323. numpy/f2py/f90mod_rules.py +269 -0
  324. numpy/f2py/f90mod_rules.pyi +16 -0
  325. numpy/f2py/func2subr.py +329 -0
  326. numpy/f2py/func2subr.pyi +7 -0
  327. numpy/f2py/rules.py +1629 -0
  328. numpy/f2py/rules.pyi +41 -0
  329. numpy/f2py/setup.cfg +3 -0
  330. numpy/f2py/src/fortranobject.c +1436 -0
  331. numpy/f2py/src/fortranobject.h +173 -0
  332. numpy/f2py/symbolic.py +1518 -0
  333. numpy/f2py/symbolic.pyi +219 -0
  334. numpy/f2py/tests/__init__.py +16 -0
  335. numpy/f2py/tests/src/abstract_interface/foo.f90 +34 -0
  336. numpy/f2py/tests/src/abstract_interface/gh18403_mod.f90 +6 -0
  337. numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +235 -0
  338. numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap +1 -0
  339. numpy/f2py/tests/src/assumed_shape/foo_free.f90 +34 -0
  340. numpy/f2py/tests/src/assumed_shape/foo_mod.f90 +41 -0
  341. numpy/f2py/tests/src/assumed_shape/foo_use.f90 +19 -0
  342. numpy/f2py/tests/src/assumed_shape/precision.f90 +4 -0
  343. numpy/f2py/tests/src/block_docstring/foo.f +6 -0
  344. numpy/f2py/tests/src/callback/foo.f +62 -0
  345. numpy/f2py/tests/src/callback/gh17797.f90 +7 -0
  346. numpy/f2py/tests/src/callback/gh18335.f90 +17 -0
  347. numpy/f2py/tests/src/callback/gh25211.f +10 -0
  348. numpy/f2py/tests/src/callback/gh25211.pyf +18 -0
  349. numpy/f2py/tests/src/callback/gh26681.f90 +18 -0
  350. numpy/f2py/tests/src/cli/gh_22819.pyf +6 -0
  351. numpy/f2py/tests/src/cli/hi77.f +3 -0
  352. numpy/f2py/tests/src/cli/hiworld.f90 +3 -0
  353. numpy/f2py/tests/src/common/block.f +11 -0
  354. numpy/f2py/tests/src/common/gh19161.f90 +10 -0
  355. numpy/f2py/tests/src/crackfortran/accesstype.f90 +13 -0
  356. numpy/f2py/tests/src/crackfortran/common_with_division.f +17 -0
  357. numpy/f2py/tests/src/crackfortran/data_common.f +8 -0
  358. numpy/f2py/tests/src/crackfortran/data_multiplier.f +5 -0
  359. numpy/f2py/tests/src/crackfortran/data_stmts.f90 +20 -0
  360. numpy/f2py/tests/src/crackfortran/data_with_comments.f +8 -0
  361. numpy/f2py/tests/src/crackfortran/foo_deps.f90 +6 -0
  362. numpy/f2py/tests/src/crackfortran/gh15035.f +16 -0
  363. numpy/f2py/tests/src/crackfortran/gh17859.f +12 -0
  364. numpy/f2py/tests/src/crackfortran/gh22648.pyf +7 -0
  365. numpy/f2py/tests/src/crackfortran/gh23533.f +5 -0
  366. numpy/f2py/tests/src/crackfortran/gh23598.f90 +4 -0
  367. numpy/f2py/tests/src/crackfortran/gh23598Warn.f90 +11 -0
  368. numpy/f2py/tests/src/crackfortran/gh23879.f90 +20 -0
  369. numpy/f2py/tests/src/crackfortran/gh27697.f90 +12 -0
  370. numpy/f2py/tests/src/crackfortran/gh2848.f90 +13 -0
  371. numpy/f2py/tests/src/crackfortran/operators.f90 +49 -0
  372. numpy/f2py/tests/src/crackfortran/privatemod.f90 +11 -0
  373. numpy/f2py/tests/src/crackfortran/publicmod.f90 +10 -0
  374. numpy/f2py/tests/src/crackfortran/pubprivmod.f90 +10 -0
  375. numpy/f2py/tests/src/crackfortran/unicode_comment.f90 +4 -0
  376. numpy/f2py/tests/src/f2cmap/.f2py_f2cmap +1 -0
  377. numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90 +9 -0
  378. numpy/f2py/tests/src/isocintrin/isoCtests.f90 +34 -0
  379. numpy/f2py/tests/src/kind/foo.f90 +20 -0
  380. numpy/f2py/tests/src/mixed/foo.f +5 -0
  381. numpy/f2py/tests/src/mixed/foo_fixed.f90 +8 -0
  382. numpy/f2py/tests/src/mixed/foo_free.f90 +8 -0
  383. numpy/f2py/tests/src/modules/gh25337/data.f90 +8 -0
  384. numpy/f2py/tests/src/modules/gh25337/use_data.f90 +6 -0
  385. numpy/f2py/tests/src/modules/gh26920/two_mods_with_no_public_entities.f90 +21 -0
  386. numpy/f2py/tests/src/modules/gh26920/two_mods_with_one_public_routine.f90 +21 -0
  387. numpy/f2py/tests/src/modules/module_data_docstring.f90 +12 -0
  388. numpy/f2py/tests/src/modules/use_modules.f90 +20 -0
  389. numpy/f2py/tests/src/negative_bounds/issue_20853.f90 +7 -0
  390. numpy/f2py/tests/src/parameter/constant_array.f90 +45 -0
  391. numpy/f2py/tests/src/parameter/constant_both.f90 +57 -0
  392. numpy/f2py/tests/src/parameter/constant_compound.f90 +15 -0
  393. numpy/f2py/tests/src/parameter/constant_integer.f90 +22 -0
  394. numpy/f2py/tests/src/parameter/constant_non_compound.f90 +23 -0
  395. numpy/f2py/tests/src/parameter/constant_real.f90 +23 -0
  396. numpy/f2py/tests/src/quoted_character/foo.f +14 -0
  397. numpy/f2py/tests/src/regression/AB.inc +1 -0
  398. numpy/f2py/tests/src/regression/assignOnlyModule.f90 +25 -0
  399. numpy/f2py/tests/src/regression/datonly.f90 +17 -0
  400. numpy/f2py/tests/src/regression/f77comments.f +26 -0
  401. numpy/f2py/tests/src/regression/f77fixedform.f95 +5 -0
  402. numpy/f2py/tests/src/regression/f90continuation.f90 +9 -0
  403. numpy/f2py/tests/src/regression/incfile.f90 +5 -0
  404. numpy/f2py/tests/src/regression/inout.f90 +9 -0
  405. numpy/f2py/tests/src/regression/lower_f2py_fortran.f90 +5 -0
  406. numpy/f2py/tests/src/regression/mod_derived_types.f90 +23 -0
  407. numpy/f2py/tests/src/return_character/foo77.f +45 -0
  408. numpy/f2py/tests/src/return_character/foo90.f90 +48 -0
  409. numpy/f2py/tests/src/return_complex/foo77.f +45 -0
  410. numpy/f2py/tests/src/return_complex/foo90.f90 +48 -0
  411. numpy/f2py/tests/src/return_integer/foo77.f +56 -0
  412. numpy/f2py/tests/src/return_integer/foo90.f90 +59 -0
  413. numpy/f2py/tests/src/return_logical/foo77.f +56 -0
  414. numpy/f2py/tests/src/return_logical/foo90.f90 +59 -0
  415. numpy/f2py/tests/src/return_real/foo77.f +45 -0
  416. numpy/f2py/tests/src/return_real/foo90.f90 +48 -0
  417. numpy/f2py/tests/src/routines/funcfortranname.f +5 -0
  418. numpy/f2py/tests/src/routines/funcfortranname.pyf +11 -0
  419. numpy/f2py/tests/src/routines/subrout.f +4 -0
  420. numpy/f2py/tests/src/routines/subrout.pyf +10 -0
  421. numpy/f2py/tests/src/size/foo.f90 +44 -0
  422. numpy/f2py/tests/src/string/char.f90 +29 -0
  423. numpy/f2py/tests/src/string/fixed_string.f90 +34 -0
  424. numpy/f2py/tests/src/string/gh24008.f +8 -0
  425. numpy/f2py/tests/src/string/gh24662.f90 +7 -0
  426. numpy/f2py/tests/src/string/gh25286.f90 +14 -0
  427. numpy/f2py/tests/src/string/gh25286.pyf +12 -0
  428. numpy/f2py/tests/src/string/gh25286_bc.pyf +12 -0
  429. numpy/f2py/tests/src/string/scalar_string.f90 +9 -0
  430. numpy/f2py/tests/src/string/string.f +12 -0
  431. numpy/f2py/tests/src/value_attrspec/gh21665.f90 +9 -0
  432. numpy/f2py/tests/test_abstract_interface.py +26 -0
  433. numpy/f2py/tests/test_array_from_pyobj.py +678 -0
  434. numpy/f2py/tests/test_assumed_shape.py +50 -0
  435. numpy/f2py/tests/test_block_docstring.py +20 -0
  436. numpy/f2py/tests/test_callback.py +263 -0
  437. numpy/f2py/tests/test_character.py +641 -0
  438. numpy/f2py/tests/test_common.py +23 -0
  439. numpy/f2py/tests/test_crackfortran.py +421 -0
  440. numpy/f2py/tests/test_data.py +71 -0
  441. numpy/f2py/tests/test_docs.py +66 -0
  442. numpy/f2py/tests/test_f2cmap.py +17 -0
  443. numpy/f2py/tests/test_f2py2e.py +983 -0
  444. numpy/f2py/tests/test_isoc.py +56 -0
  445. numpy/f2py/tests/test_kind.py +52 -0
  446. numpy/f2py/tests/test_mixed.py +35 -0
  447. numpy/f2py/tests/test_modules.py +83 -0
  448. numpy/f2py/tests/test_parameter.py +129 -0
  449. numpy/f2py/tests/test_pyf_src.py +43 -0
  450. numpy/f2py/tests/test_quoted_character.py +18 -0
  451. numpy/f2py/tests/test_regression.py +187 -0
  452. numpy/f2py/tests/test_return_character.py +48 -0
  453. numpy/f2py/tests/test_return_complex.py +67 -0
  454. numpy/f2py/tests/test_return_integer.py +55 -0
  455. numpy/f2py/tests/test_return_logical.py +65 -0
  456. numpy/f2py/tests/test_return_real.py +109 -0
  457. numpy/f2py/tests/test_routines.py +29 -0
  458. numpy/f2py/tests/test_semicolon_split.py +75 -0
  459. numpy/f2py/tests/test_size.py +45 -0
  460. numpy/f2py/tests/test_string.py +100 -0
  461. numpy/f2py/tests/test_symbolic.py +500 -0
  462. numpy/f2py/tests/test_value_attrspec.py +15 -0
  463. numpy/f2py/tests/util.py +442 -0
  464. numpy/f2py/use_rules.py +99 -0
  465. numpy/f2py/use_rules.pyi +9 -0
  466. numpy/fft/__init__.py +213 -0
  467. numpy/fft/__init__.pyi +38 -0
  468. numpy/fft/_helper.py +235 -0
  469. numpy/fft/_helper.pyi +44 -0
  470. numpy/fft/_pocketfft.py +1693 -0
  471. numpy/fft/_pocketfft.pyi +137 -0
  472. numpy/fft/_pocketfft_umath.cp314t-win_arm64.lib +0 -0
  473. numpy/fft/_pocketfft_umath.cp314t-win_arm64.pyd +0 -0
  474. numpy/fft/tests/__init__.py +0 -0
  475. numpy/fft/tests/test_helper.py +167 -0
  476. numpy/fft/tests/test_pocketfft.py +589 -0
  477. numpy/lib/__init__.py +97 -0
  478. numpy/lib/__init__.pyi +52 -0
  479. numpy/lib/_array_utils_impl.py +62 -0
  480. numpy/lib/_array_utils_impl.pyi +10 -0
  481. numpy/lib/_arraypad_impl.py +926 -0
  482. numpy/lib/_arraypad_impl.pyi +88 -0
  483. numpy/lib/_arraysetops_impl.py +1158 -0
  484. numpy/lib/_arraysetops_impl.pyi +462 -0
  485. numpy/lib/_arrayterator_impl.py +224 -0
  486. numpy/lib/_arrayterator_impl.pyi +45 -0
  487. numpy/lib/_datasource.py +700 -0
  488. numpy/lib/_datasource.pyi +30 -0
  489. numpy/lib/_format_impl.py +1036 -0
  490. numpy/lib/_format_impl.pyi +56 -0
  491. numpy/lib/_function_base_impl.py +5760 -0
  492. numpy/lib/_function_base_impl.pyi +2324 -0
  493. numpy/lib/_histograms_impl.py +1085 -0
  494. numpy/lib/_histograms_impl.pyi +40 -0
  495. numpy/lib/_index_tricks_impl.py +1048 -0
  496. numpy/lib/_index_tricks_impl.pyi +267 -0
  497. numpy/lib/_iotools.py +900 -0
  498. numpy/lib/_iotools.pyi +116 -0
  499. numpy/lib/_nanfunctions_impl.py +2006 -0
  500. numpy/lib/_nanfunctions_impl.pyi +48 -0
  501. numpy/lib/_npyio_impl.py +2583 -0
  502. numpy/lib/_npyio_impl.pyi +299 -0
  503. numpy/lib/_polynomial_impl.py +1465 -0
  504. numpy/lib/_polynomial_impl.pyi +338 -0
  505. numpy/lib/_scimath_impl.py +642 -0
  506. numpy/lib/_scimath_impl.pyi +93 -0
  507. numpy/lib/_shape_base_impl.py +1289 -0
  508. numpy/lib/_shape_base_impl.pyi +236 -0
  509. numpy/lib/_stride_tricks_impl.py +582 -0
  510. numpy/lib/_stride_tricks_impl.pyi +73 -0
  511. numpy/lib/_twodim_base_impl.py +1201 -0
  512. numpy/lib/_twodim_base_impl.pyi +408 -0
  513. numpy/lib/_type_check_impl.py +710 -0
  514. numpy/lib/_type_check_impl.pyi +348 -0
  515. numpy/lib/_ufunclike_impl.py +199 -0
  516. numpy/lib/_ufunclike_impl.pyi +60 -0
  517. numpy/lib/_user_array_impl.py +310 -0
  518. numpy/lib/_user_array_impl.pyi +226 -0
  519. numpy/lib/_utils_impl.py +784 -0
  520. numpy/lib/_utils_impl.pyi +22 -0
  521. numpy/lib/_version.py +153 -0
  522. numpy/lib/_version.pyi +17 -0
  523. numpy/lib/array_utils.py +7 -0
  524. numpy/lib/array_utils.pyi +6 -0
  525. numpy/lib/format.py +24 -0
  526. numpy/lib/format.pyi +24 -0
  527. numpy/lib/introspect.py +94 -0
  528. numpy/lib/introspect.pyi +3 -0
  529. numpy/lib/mixins.py +180 -0
  530. numpy/lib/mixins.pyi +78 -0
  531. numpy/lib/npyio.py +1 -0
  532. numpy/lib/npyio.pyi +5 -0
  533. numpy/lib/recfunctions.py +1681 -0
  534. numpy/lib/recfunctions.pyi +444 -0
  535. numpy/lib/scimath.py +13 -0
  536. numpy/lib/scimath.pyi +12 -0
  537. numpy/lib/stride_tricks.py +1 -0
  538. numpy/lib/stride_tricks.pyi +4 -0
  539. numpy/lib/tests/__init__.py +0 -0
  540. numpy/lib/tests/data/py2-np0-objarr.npy +0 -0
  541. numpy/lib/tests/data/py2-objarr.npy +0 -0
  542. numpy/lib/tests/data/py2-objarr.npz +0 -0
  543. numpy/lib/tests/data/py3-objarr.npy +0 -0
  544. numpy/lib/tests/data/py3-objarr.npz +0 -0
  545. numpy/lib/tests/data/python3.npy +0 -0
  546. numpy/lib/tests/data/win64python2.npy +0 -0
  547. numpy/lib/tests/test__datasource.py +328 -0
  548. numpy/lib/tests/test__iotools.py +358 -0
  549. numpy/lib/tests/test__version.py +64 -0
  550. numpy/lib/tests/test_array_utils.py +32 -0
  551. numpy/lib/tests/test_arraypad.py +1427 -0
  552. numpy/lib/tests/test_arraysetops.py +1302 -0
  553. numpy/lib/tests/test_arrayterator.py +45 -0
  554. numpy/lib/tests/test_format.py +1054 -0
  555. numpy/lib/tests/test_function_base.py +4750 -0
  556. numpy/lib/tests/test_histograms.py +855 -0
  557. numpy/lib/tests/test_index_tricks.py +693 -0
  558. numpy/lib/tests/test_io.py +2857 -0
  559. numpy/lib/tests/test_loadtxt.py +1099 -0
  560. numpy/lib/tests/test_mixins.py +215 -0
  561. numpy/lib/tests/test_nanfunctions.py +1438 -0
  562. numpy/lib/tests/test_packbits.py +376 -0
  563. numpy/lib/tests/test_polynomial.py +325 -0
  564. numpy/lib/tests/test_recfunctions.py +1042 -0
  565. numpy/lib/tests/test_regression.py +231 -0
  566. numpy/lib/tests/test_shape_base.py +813 -0
  567. numpy/lib/tests/test_stride_tricks.py +655 -0
  568. numpy/lib/tests/test_twodim_base.py +559 -0
  569. numpy/lib/tests/test_type_check.py +473 -0
  570. numpy/lib/tests/test_ufunclike.py +97 -0
  571. numpy/lib/tests/test_utils.py +80 -0
  572. numpy/lib/user_array.py +1 -0
  573. numpy/lib/user_array.pyi +1 -0
  574. numpy/linalg/__init__.py +95 -0
  575. numpy/linalg/__init__.pyi +71 -0
  576. numpy/linalg/_linalg.py +3657 -0
  577. numpy/linalg/_linalg.pyi +548 -0
  578. numpy/linalg/_umath_linalg.cp314t-win_arm64.lib +0 -0
  579. numpy/linalg/_umath_linalg.cp314t-win_arm64.pyd +0 -0
  580. numpy/linalg/_umath_linalg.pyi +60 -0
  581. numpy/linalg/lapack_lite.cp314t-win_arm64.lib +0 -0
  582. numpy/linalg/lapack_lite.cp314t-win_arm64.pyd +0 -0
  583. numpy/linalg/lapack_lite.pyi +143 -0
  584. numpy/linalg/tests/__init__.py +0 -0
  585. numpy/linalg/tests/test_deprecations.py +21 -0
  586. numpy/linalg/tests/test_linalg.py +2442 -0
  587. numpy/linalg/tests/test_regression.py +182 -0
  588. numpy/ma/API_CHANGES.txt +135 -0
  589. numpy/ma/LICENSE +24 -0
  590. numpy/ma/README.rst +236 -0
  591. numpy/ma/__init__.py +53 -0
  592. numpy/ma/__init__.pyi +458 -0
  593. numpy/ma/core.py +8929 -0
  594. numpy/ma/core.pyi +3720 -0
  595. numpy/ma/extras.py +2266 -0
  596. numpy/ma/extras.pyi +297 -0
  597. numpy/ma/mrecords.py +762 -0
  598. numpy/ma/mrecords.pyi +96 -0
  599. numpy/ma/tests/__init__.py +0 -0
  600. numpy/ma/tests/test_arrayobject.py +40 -0
  601. numpy/ma/tests/test_core.py +6008 -0
  602. numpy/ma/tests/test_deprecations.py +65 -0
  603. numpy/ma/tests/test_extras.py +1945 -0
  604. numpy/ma/tests/test_mrecords.py +495 -0
  605. numpy/ma/tests/test_old_ma.py +939 -0
  606. numpy/ma/tests/test_regression.py +83 -0
  607. numpy/ma/tests/test_subclassing.py +469 -0
  608. numpy/ma/testutils.py +294 -0
  609. numpy/ma/testutils.pyi +69 -0
  610. numpy/matlib.py +380 -0
  611. numpy/matlib.pyi +580 -0
  612. numpy/matrixlib/__init__.py +12 -0
  613. numpy/matrixlib/__init__.pyi +3 -0
  614. numpy/matrixlib/defmatrix.py +1119 -0
  615. numpy/matrixlib/defmatrix.pyi +218 -0
  616. numpy/matrixlib/tests/__init__.py +0 -0
  617. numpy/matrixlib/tests/test_defmatrix.py +455 -0
  618. numpy/matrixlib/tests/test_interaction.py +360 -0
  619. numpy/matrixlib/tests/test_masked_matrix.py +240 -0
  620. numpy/matrixlib/tests/test_matrix_linalg.py +110 -0
  621. numpy/matrixlib/tests/test_multiarray.py +17 -0
  622. numpy/matrixlib/tests/test_numeric.py +18 -0
  623. numpy/matrixlib/tests/test_regression.py +31 -0
  624. numpy/polynomial/__init__.py +187 -0
  625. numpy/polynomial/__init__.pyi +31 -0
  626. numpy/polynomial/_polybase.py +1191 -0
  627. numpy/polynomial/_polybase.pyi +262 -0
  628. numpy/polynomial/_polytypes.pyi +501 -0
  629. numpy/polynomial/chebyshev.py +2001 -0
  630. numpy/polynomial/chebyshev.pyi +180 -0
  631. numpy/polynomial/hermite.py +1738 -0
  632. numpy/polynomial/hermite.pyi +106 -0
  633. numpy/polynomial/hermite_e.py +1640 -0
  634. numpy/polynomial/hermite_e.pyi +106 -0
  635. numpy/polynomial/laguerre.py +1673 -0
  636. numpy/polynomial/laguerre.pyi +100 -0
  637. numpy/polynomial/legendre.py +1603 -0
  638. numpy/polynomial/legendre.pyi +100 -0
  639. numpy/polynomial/polynomial.py +1625 -0
  640. numpy/polynomial/polynomial.pyi +109 -0
  641. numpy/polynomial/polyutils.py +759 -0
  642. numpy/polynomial/polyutils.pyi +307 -0
  643. numpy/polynomial/tests/__init__.py +0 -0
  644. numpy/polynomial/tests/test_chebyshev.py +618 -0
  645. numpy/polynomial/tests/test_classes.py +613 -0
  646. numpy/polynomial/tests/test_hermite.py +553 -0
  647. numpy/polynomial/tests/test_hermite_e.py +554 -0
  648. numpy/polynomial/tests/test_laguerre.py +535 -0
  649. numpy/polynomial/tests/test_legendre.py +566 -0
  650. numpy/polynomial/tests/test_polynomial.py +691 -0
  651. numpy/polynomial/tests/test_polyutils.py +123 -0
  652. numpy/polynomial/tests/test_printing.py +557 -0
  653. numpy/polynomial/tests/test_symbol.py +217 -0
  654. numpy/py.typed +0 -0
  655. numpy/random/LICENSE.md +71 -0
  656. numpy/random/__init__.pxd +14 -0
  657. numpy/random/__init__.py +213 -0
  658. numpy/random/__init__.pyi +124 -0
  659. numpy/random/_bounded_integers.cp314t-win_arm64.lib +0 -0
  660. numpy/random/_bounded_integers.cp314t-win_arm64.pyd +0 -0
  661. numpy/random/_bounded_integers.pxd +38 -0
  662. numpy/random/_bounded_integers.pyi +1 -0
  663. numpy/random/_common.cp314t-win_arm64.lib +0 -0
  664. numpy/random/_common.cp314t-win_arm64.pyd +0 -0
  665. numpy/random/_common.pxd +110 -0
  666. numpy/random/_common.pyi +16 -0
  667. numpy/random/_examples/cffi/extending.py +44 -0
  668. numpy/random/_examples/cffi/parse.py +53 -0
  669. numpy/random/_examples/cython/extending.pyx +77 -0
  670. numpy/random/_examples/cython/extending_distributions.pyx +117 -0
  671. numpy/random/_examples/cython/meson.build +53 -0
  672. numpy/random/_examples/numba/extending.py +86 -0
  673. numpy/random/_examples/numba/extending_distributions.py +67 -0
  674. numpy/random/_generator.cp314t-win_arm64.lib +0 -0
  675. numpy/random/_generator.cp314t-win_arm64.pyd +0 -0
  676. numpy/random/_generator.pyi +862 -0
  677. numpy/random/_mt19937.cp314t-win_arm64.lib +0 -0
  678. numpy/random/_mt19937.cp314t-win_arm64.pyd +0 -0
  679. numpy/random/_mt19937.pyi +27 -0
  680. numpy/random/_pcg64.cp314t-win_arm64.lib +0 -0
  681. numpy/random/_pcg64.cp314t-win_arm64.pyd +0 -0
  682. numpy/random/_pcg64.pyi +41 -0
  683. numpy/random/_philox.cp314t-win_arm64.lib +0 -0
  684. numpy/random/_philox.cp314t-win_arm64.pyd +0 -0
  685. numpy/random/_philox.pyi +36 -0
  686. numpy/random/_pickle.py +88 -0
  687. numpy/random/_pickle.pyi +43 -0
  688. numpy/random/_sfc64.cp314t-win_arm64.lib +0 -0
  689. numpy/random/_sfc64.cp314t-win_arm64.pyd +0 -0
  690. numpy/random/_sfc64.pyi +25 -0
  691. numpy/random/bit_generator.cp314t-win_arm64.lib +0 -0
  692. numpy/random/bit_generator.cp314t-win_arm64.pyd +0 -0
  693. numpy/random/bit_generator.pxd +40 -0
  694. numpy/random/bit_generator.pyi +123 -0
  695. numpy/random/c_distributions.pxd +119 -0
  696. numpy/random/lib/npyrandom.lib +0 -0
  697. numpy/random/mtrand.cp314t-win_arm64.lib +0 -0
  698. numpy/random/mtrand.cp314t-win_arm64.pyd +0 -0
  699. numpy/random/mtrand.pyi +759 -0
  700. numpy/random/tests/__init__.py +0 -0
  701. numpy/random/tests/data/__init__.py +0 -0
  702. numpy/random/tests/data/generator_pcg64_np121.pkl.gz +0 -0
  703. numpy/random/tests/data/generator_pcg64_np126.pkl.gz +0 -0
  704. numpy/random/tests/data/mt19937-testset-1.csv +1001 -0
  705. numpy/random/tests/data/mt19937-testset-2.csv +1001 -0
  706. numpy/random/tests/data/pcg64-testset-1.csv +1001 -0
  707. numpy/random/tests/data/pcg64-testset-2.csv +1001 -0
  708. numpy/random/tests/data/pcg64dxsm-testset-1.csv +1001 -0
  709. numpy/random/tests/data/pcg64dxsm-testset-2.csv +1001 -0
  710. numpy/random/tests/data/philox-testset-1.csv +1001 -0
  711. numpy/random/tests/data/philox-testset-2.csv +1001 -0
  712. numpy/random/tests/data/sfc64-testset-1.csv +1001 -0
  713. numpy/random/tests/data/sfc64-testset-2.csv +1001 -0
  714. numpy/random/tests/data/sfc64_np126.pkl.gz +0 -0
  715. numpy/random/tests/test_direct.py +595 -0
  716. numpy/random/tests/test_extending.py +131 -0
  717. numpy/random/tests/test_generator_mt19937.py +2825 -0
  718. numpy/random/tests/test_generator_mt19937_regressions.py +221 -0
  719. numpy/random/tests/test_random.py +1724 -0
  720. numpy/random/tests/test_randomstate.py +2099 -0
  721. numpy/random/tests/test_randomstate_regression.py +213 -0
  722. numpy/random/tests/test_regression.py +175 -0
  723. numpy/random/tests/test_seed_sequence.py +79 -0
  724. numpy/random/tests/test_smoke.py +882 -0
  725. numpy/rec/__init__.py +2 -0
  726. numpy/rec/__init__.pyi +23 -0
  727. numpy/strings/__init__.py +2 -0
  728. numpy/strings/__init__.pyi +97 -0
  729. numpy/testing/__init__.py +22 -0
  730. numpy/testing/__init__.pyi +107 -0
  731. numpy/testing/_private/__init__.py +0 -0
  732. numpy/testing/_private/__init__.pyi +0 -0
  733. numpy/testing/_private/extbuild.py +250 -0
  734. numpy/testing/_private/extbuild.pyi +25 -0
  735. numpy/testing/_private/utils.py +2830 -0
  736. numpy/testing/_private/utils.pyi +505 -0
  737. numpy/testing/overrides.py +84 -0
  738. numpy/testing/overrides.pyi +10 -0
  739. numpy/testing/print_coercion_tables.py +207 -0
  740. numpy/testing/print_coercion_tables.pyi +26 -0
  741. numpy/testing/tests/__init__.py +0 -0
  742. numpy/testing/tests/test_utils.py +2123 -0
  743. numpy/tests/__init__.py +0 -0
  744. numpy/tests/test__all__.py +10 -0
  745. numpy/tests/test_configtool.py +51 -0
  746. numpy/tests/test_ctypeslib.py +383 -0
  747. numpy/tests/test_lazyloading.py +42 -0
  748. numpy/tests/test_matlib.py +59 -0
  749. numpy/tests/test_numpy_config.py +47 -0
  750. numpy/tests/test_numpy_version.py +54 -0
  751. numpy/tests/test_public_api.py +807 -0
  752. numpy/tests/test_reloading.py +76 -0
  753. numpy/tests/test_scripts.py +48 -0
  754. numpy/tests/test_warnings.py +79 -0
  755. numpy/typing/__init__.py +233 -0
  756. numpy/typing/__init__.pyi +3 -0
  757. numpy/typing/mypy_plugin.py +200 -0
  758. numpy/typing/tests/__init__.py +0 -0
  759. numpy/typing/tests/data/fail/arithmetic.pyi +126 -0
  760. numpy/typing/tests/data/fail/array_constructors.pyi +34 -0
  761. numpy/typing/tests/data/fail/array_like.pyi +15 -0
  762. numpy/typing/tests/data/fail/array_pad.pyi +6 -0
  763. numpy/typing/tests/data/fail/arrayprint.pyi +15 -0
  764. numpy/typing/tests/data/fail/arrayterator.pyi +14 -0
  765. numpy/typing/tests/data/fail/bitwise_ops.pyi +17 -0
  766. numpy/typing/tests/data/fail/char.pyi +63 -0
  767. numpy/typing/tests/data/fail/chararray.pyi +61 -0
  768. numpy/typing/tests/data/fail/comparisons.pyi +27 -0
  769. numpy/typing/tests/data/fail/constants.pyi +3 -0
  770. numpy/typing/tests/data/fail/datasource.pyi +16 -0
  771. numpy/typing/tests/data/fail/dtype.pyi +17 -0
  772. numpy/typing/tests/data/fail/einsumfunc.pyi +12 -0
  773. numpy/typing/tests/data/fail/flatiter.pyi +38 -0
  774. numpy/typing/tests/data/fail/fromnumeric.pyi +148 -0
  775. numpy/typing/tests/data/fail/histograms.pyi +12 -0
  776. numpy/typing/tests/data/fail/index_tricks.pyi +14 -0
  777. numpy/typing/tests/data/fail/lib_function_base.pyi +60 -0
  778. numpy/typing/tests/data/fail/lib_polynomial.pyi +29 -0
  779. numpy/typing/tests/data/fail/lib_utils.pyi +3 -0
  780. numpy/typing/tests/data/fail/lib_version.pyi +6 -0
  781. numpy/typing/tests/data/fail/linalg.pyi +52 -0
  782. numpy/typing/tests/data/fail/ma.pyi +155 -0
  783. numpy/typing/tests/data/fail/memmap.pyi +5 -0
  784. numpy/typing/tests/data/fail/modules.pyi +17 -0
  785. numpy/typing/tests/data/fail/multiarray.pyi +52 -0
  786. numpy/typing/tests/data/fail/ndarray.pyi +11 -0
  787. numpy/typing/tests/data/fail/ndarray_misc.pyi +49 -0
  788. numpy/typing/tests/data/fail/nditer.pyi +8 -0
  789. numpy/typing/tests/data/fail/nested_sequence.pyi +17 -0
  790. numpy/typing/tests/data/fail/npyio.pyi +24 -0
  791. numpy/typing/tests/data/fail/numerictypes.pyi +5 -0
  792. numpy/typing/tests/data/fail/random.pyi +62 -0
  793. numpy/typing/tests/data/fail/rec.pyi +17 -0
  794. numpy/typing/tests/data/fail/scalars.pyi +86 -0
  795. numpy/typing/tests/data/fail/shape.pyi +7 -0
  796. numpy/typing/tests/data/fail/shape_base.pyi +8 -0
  797. numpy/typing/tests/data/fail/stride_tricks.pyi +9 -0
  798. numpy/typing/tests/data/fail/strings.pyi +52 -0
  799. numpy/typing/tests/data/fail/testing.pyi +28 -0
  800. numpy/typing/tests/data/fail/twodim_base.pyi +39 -0
  801. numpy/typing/tests/data/fail/type_check.pyi +12 -0
  802. numpy/typing/tests/data/fail/ufunc_config.pyi +21 -0
  803. numpy/typing/tests/data/fail/ufunclike.pyi +21 -0
  804. numpy/typing/tests/data/fail/ufuncs.pyi +17 -0
  805. numpy/typing/tests/data/fail/warnings_and_errors.pyi +5 -0
  806. numpy/typing/tests/data/misc/extended_precision.pyi +9 -0
  807. numpy/typing/tests/data/mypy.ini +8 -0
  808. numpy/typing/tests/data/pass/arithmetic.py +614 -0
  809. numpy/typing/tests/data/pass/array_constructors.py +138 -0
  810. numpy/typing/tests/data/pass/array_like.py +43 -0
  811. numpy/typing/tests/data/pass/arrayprint.py +37 -0
  812. numpy/typing/tests/data/pass/arrayterator.py +28 -0
  813. numpy/typing/tests/data/pass/bitwise_ops.py +131 -0
  814. numpy/typing/tests/data/pass/comparisons.py +316 -0
  815. numpy/typing/tests/data/pass/dtype.py +57 -0
  816. numpy/typing/tests/data/pass/einsumfunc.py +36 -0
  817. numpy/typing/tests/data/pass/flatiter.py +26 -0
  818. numpy/typing/tests/data/pass/fromnumeric.py +272 -0
  819. numpy/typing/tests/data/pass/index_tricks.py +62 -0
  820. numpy/typing/tests/data/pass/lib_user_array.py +22 -0
  821. numpy/typing/tests/data/pass/lib_utils.py +19 -0
  822. numpy/typing/tests/data/pass/lib_version.py +18 -0
  823. numpy/typing/tests/data/pass/literal.py +52 -0
  824. numpy/typing/tests/data/pass/ma.py +199 -0
  825. numpy/typing/tests/data/pass/mod.py +149 -0
  826. numpy/typing/tests/data/pass/modules.py +45 -0
  827. numpy/typing/tests/data/pass/multiarray.py +77 -0
  828. numpy/typing/tests/data/pass/ndarray_conversion.py +81 -0
  829. numpy/typing/tests/data/pass/ndarray_misc.py +199 -0
  830. numpy/typing/tests/data/pass/ndarray_shape_manipulation.py +47 -0
  831. numpy/typing/tests/data/pass/nditer.py +4 -0
  832. numpy/typing/tests/data/pass/numeric.py +90 -0
  833. numpy/typing/tests/data/pass/numerictypes.py +17 -0
  834. numpy/typing/tests/data/pass/random.py +1498 -0
  835. numpy/typing/tests/data/pass/recfunctions.py +164 -0
  836. numpy/typing/tests/data/pass/scalars.py +249 -0
  837. numpy/typing/tests/data/pass/shape.py +19 -0
  838. numpy/typing/tests/data/pass/simple.py +170 -0
  839. numpy/typing/tests/data/pass/ufunc_config.py +64 -0
  840. numpy/typing/tests/data/pass/ufunclike.py +52 -0
  841. numpy/typing/tests/data/pass/ufuncs.py +16 -0
  842. numpy/typing/tests/data/pass/warnings_and_errors.py +6 -0
  843. numpy/typing/tests/data/reveal/arithmetic.pyi +719 -0
  844. numpy/typing/tests/data/reveal/array_api_info.pyi +70 -0
  845. numpy/typing/tests/data/reveal/array_constructors.pyi +277 -0
  846. numpy/typing/tests/data/reveal/arraypad.pyi +27 -0
  847. numpy/typing/tests/data/reveal/arrayprint.pyi +25 -0
  848. numpy/typing/tests/data/reveal/arraysetops.pyi +74 -0
  849. numpy/typing/tests/data/reveal/arrayterator.pyi +27 -0
  850. numpy/typing/tests/data/reveal/bitwise_ops.pyi +166 -0
  851. numpy/typing/tests/data/reveal/char.pyi +225 -0
  852. numpy/typing/tests/data/reveal/chararray.pyi +138 -0
  853. numpy/typing/tests/data/reveal/comparisons.pyi +264 -0
  854. numpy/typing/tests/data/reveal/constants.pyi +14 -0
  855. numpy/typing/tests/data/reveal/ctypeslib.pyi +81 -0
  856. numpy/typing/tests/data/reveal/datasource.pyi +23 -0
  857. numpy/typing/tests/data/reveal/dtype.pyi +132 -0
  858. numpy/typing/tests/data/reveal/einsumfunc.pyi +39 -0
  859. numpy/typing/tests/data/reveal/emath.pyi +54 -0
  860. numpy/typing/tests/data/reveal/fft.pyi +37 -0
  861. numpy/typing/tests/data/reveal/flatiter.pyi +86 -0
  862. numpy/typing/tests/data/reveal/fromnumeric.pyi +347 -0
  863. numpy/typing/tests/data/reveal/getlimits.pyi +53 -0
  864. numpy/typing/tests/data/reveal/histograms.pyi +25 -0
  865. numpy/typing/tests/data/reveal/index_tricks.pyi +70 -0
  866. numpy/typing/tests/data/reveal/lib_function_base.pyi +409 -0
  867. numpy/typing/tests/data/reveal/lib_polynomial.pyi +147 -0
  868. numpy/typing/tests/data/reveal/lib_utils.pyi +17 -0
  869. numpy/typing/tests/data/reveal/lib_version.pyi +20 -0
  870. numpy/typing/tests/data/reveal/linalg.pyi +154 -0
  871. numpy/typing/tests/data/reveal/ma.pyi +1098 -0
  872. numpy/typing/tests/data/reveal/matrix.pyi +73 -0
  873. numpy/typing/tests/data/reveal/memmap.pyi +19 -0
  874. numpy/typing/tests/data/reveal/mod.pyi +178 -0
  875. numpy/typing/tests/data/reveal/modules.pyi +51 -0
  876. numpy/typing/tests/data/reveal/multiarray.pyi +197 -0
  877. numpy/typing/tests/data/reveal/nbit_base_example.pyi +20 -0
  878. numpy/typing/tests/data/reveal/ndarray_assignability.pyi +82 -0
  879. numpy/typing/tests/data/reveal/ndarray_conversion.pyi +83 -0
  880. numpy/typing/tests/data/reveal/ndarray_misc.pyi +246 -0
  881. numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi +47 -0
  882. numpy/typing/tests/data/reveal/nditer.pyi +49 -0
  883. numpy/typing/tests/data/reveal/nested_sequence.pyi +25 -0
  884. numpy/typing/tests/data/reveal/npyio.pyi +83 -0
  885. numpy/typing/tests/data/reveal/numeric.pyi +170 -0
  886. numpy/typing/tests/data/reveal/numerictypes.pyi +16 -0
  887. numpy/typing/tests/data/reveal/polynomial_polybase.pyi +217 -0
  888. numpy/typing/tests/data/reveal/polynomial_polyutils.pyi +218 -0
  889. numpy/typing/tests/data/reveal/polynomial_series.pyi +138 -0
  890. numpy/typing/tests/data/reveal/random.pyi +1546 -0
  891. numpy/typing/tests/data/reveal/rec.pyi +171 -0
  892. numpy/typing/tests/data/reveal/scalars.pyi +191 -0
  893. numpy/typing/tests/data/reveal/shape.pyi +13 -0
  894. numpy/typing/tests/data/reveal/shape_base.pyi +52 -0
  895. numpy/typing/tests/data/reveal/stride_tricks.pyi +27 -0
  896. numpy/typing/tests/data/reveal/strings.pyi +196 -0
  897. numpy/typing/tests/data/reveal/testing.pyi +198 -0
  898. numpy/typing/tests/data/reveal/twodim_base.pyi +225 -0
  899. numpy/typing/tests/data/reveal/type_check.pyi +67 -0
  900. numpy/typing/tests/data/reveal/ufunc_config.pyi +29 -0
  901. numpy/typing/tests/data/reveal/ufunclike.pyi +31 -0
  902. numpy/typing/tests/data/reveal/ufuncs.pyi +142 -0
  903. numpy/typing/tests/data/reveal/warnings_and_errors.pyi +11 -0
  904. numpy/typing/tests/test_isfile.py +38 -0
  905. numpy/typing/tests/test_runtime.py +110 -0
  906. numpy/typing/tests/test_typing.py +205 -0
  907. numpy/version.py +11 -0
  908. numpy/version.pyi +9 -0
  909. numpy-2.4.1.dist-info/DELVEWHEEL +2 -0
  910. numpy-2.4.1.dist-info/METADATA +139 -0
  911. numpy-2.4.1.dist-info/RECORD +932 -0
  912. numpy-2.4.1.dist-info/WHEEL +4 -0
  913. numpy-2.4.1.dist-info/entry_points.txt +13 -0
  914. numpy-2.4.1.dist-info/licenses/LICENSE.txt +914 -0
  915. numpy-2.4.1.dist-info/licenses/numpy/_core/include/numpy/libdivide/LICENSE.txt +21 -0
  916. numpy-2.4.1.dist-info/licenses/numpy/_core/src/common/pythoncapi-compat/COPYING +14 -0
  917. numpy-2.4.1.dist-info/licenses/numpy/_core/src/highway/LICENSE +371 -0
  918. numpy-2.4.1.dist-info/licenses/numpy/_core/src/multiarray/dragon4_LICENSE.txt +27 -0
  919. numpy-2.4.1.dist-info/licenses/numpy/_core/src/npysort/x86-simd-sort/LICENSE.md +28 -0
  920. numpy-2.4.1.dist-info/licenses/numpy/_core/src/umath/svml/LICENSE +30 -0
  921. numpy-2.4.1.dist-info/licenses/numpy/fft/pocketfft/LICENSE.md +25 -0
  922. numpy-2.4.1.dist-info/licenses/numpy/linalg/lapack_lite/LICENSE.txt +48 -0
  923. numpy-2.4.1.dist-info/licenses/numpy/ma/LICENSE +24 -0
  924. numpy-2.4.1.dist-info/licenses/numpy/random/LICENSE.md +71 -0
  925. numpy-2.4.1.dist-info/licenses/numpy/random/src/distributions/LICENSE.md +61 -0
  926. numpy-2.4.1.dist-info/licenses/numpy/random/src/mt19937/LICENSE.md +61 -0
  927. numpy-2.4.1.dist-info/licenses/numpy/random/src/pcg64/LICENSE.md +22 -0
  928. numpy-2.4.1.dist-info/licenses/numpy/random/src/philox/LICENSE.md +31 -0
  929. numpy-2.4.1.dist-info/licenses/numpy/random/src/sfc64/LICENSE.md +27 -0
  930. numpy-2.4.1.dist-info/licenses/numpy/random/src/splitmix64/LICENSE.md +9 -0
  931. numpy.libs/msvcp140-5f1c5dd31916990d94181e07bc3afb32.dll +0 -0
  932. numpy.libs/scipy_openblas-7b69cbfd2599e6035f1310f2a72d59a6.dll +0 -0
numpy/ma/core.pyi ADDED
@@ -0,0 +1,3720 @@
1
+ # pyright: reportIncompatibleMethodOverride=false
2
+
3
+ import datetime as dt
4
+ import types
5
+ from _typeshed import Incomplete
6
+ from collections.abc import Callable, Sequence
7
+ from typing import (
8
+ Any,
9
+ Concatenate,
10
+ Final,
11
+ Generic,
12
+ Literal,
13
+ Never,
14
+ NoReturn,
15
+ Self,
16
+ SupportsComplex,
17
+ SupportsFloat,
18
+ SupportsIndex,
19
+ SupportsInt,
20
+ TypeAlias,
21
+ Unpack,
22
+ final,
23
+ overload,
24
+ )
25
+ from typing_extensions import Buffer, ParamSpec, TypeIs, TypeVar, override
26
+
27
+ import numpy as np
28
+ from numpy import (
29
+ _AnyShapeT,
30
+ _HasDType,
31
+ _HasDTypeWithRealAndImag,
32
+ _ModeKind,
33
+ _OrderACF,
34
+ _OrderCF,
35
+ _OrderKACF,
36
+ _PartitionKind,
37
+ _SortKind,
38
+ _ToIndices,
39
+ amax,
40
+ amin,
41
+ bool_,
42
+ bytes_,
43
+ character,
44
+ complex128,
45
+ complexfloating,
46
+ datetime64,
47
+ dtype,
48
+ dtypes,
49
+ expand_dims,
50
+ flexible,
51
+ float16,
52
+ float32,
53
+ float64,
54
+ floating,
55
+ generic,
56
+ inexact,
57
+ int8,
58
+ int64,
59
+ int_,
60
+ integer,
61
+ intp,
62
+ ndarray,
63
+ number,
64
+ object_,
65
+ signedinteger,
66
+ str_,
67
+ timedelta64,
68
+ ufunc,
69
+ unsignedinteger,
70
+ void,
71
+ )
72
+ from numpy._core.fromnumeric import _UFuncKwargs # type-check only
73
+ from numpy._globals import _NoValueType
74
+ from numpy._typing import (
75
+ ArrayLike,
76
+ DTypeLike,
77
+ NDArray,
78
+ _32Bit,
79
+ _64Bit,
80
+ _AnyShape,
81
+ _ArrayLike,
82
+ _ArrayLikeBool_co,
83
+ _ArrayLikeBytes_co,
84
+ _ArrayLikeComplex128_co,
85
+ _ArrayLikeComplex_co,
86
+ _ArrayLikeDT64_co,
87
+ _ArrayLikeFloat64_co,
88
+ _ArrayLikeFloat_co,
89
+ _ArrayLikeInt,
90
+ _ArrayLikeInt_co,
91
+ _ArrayLikeNumber_co,
92
+ _ArrayLikeObject_co,
93
+ _ArrayLikeStr_co,
94
+ _ArrayLikeString_co,
95
+ _ArrayLikeTD64_co,
96
+ _ArrayLikeUInt_co,
97
+ _CharLike_co,
98
+ _DTypeLike,
99
+ _DTypeLikeBool,
100
+ _DTypeLikeVoid,
101
+ _FloatLike_co,
102
+ _IntLike_co,
103
+ _NestedSequence,
104
+ _ScalarLike_co,
105
+ _Shape,
106
+ _ShapeLike,
107
+ _SupportsArrayFunc,
108
+ _SupportsDType,
109
+ _TD64Like_co,
110
+ )
111
+ from numpy._typing._dtype_like import _VoidDTypeLike
112
+
113
+ __all__ = [
114
+ "MAError",
115
+ "MaskError",
116
+ "MaskType",
117
+ "MaskedArray",
118
+ "abs",
119
+ "absolute",
120
+ "add",
121
+ "all",
122
+ "allclose",
123
+ "allequal",
124
+ "alltrue",
125
+ "amax",
126
+ "amin",
127
+ "angle",
128
+ "anom",
129
+ "anomalies",
130
+ "any",
131
+ "append",
132
+ "arange",
133
+ "arccos",
134
+ "arccosh",
135
+ "arcsin",
136
+ "arcsinh",
137
+ "arctan",
138
+ "arctan2",
139
+ "arctanh",
140
+ "argmax",
141
+ "argmin",
142
+ "argsort",
143
+ "around",
144
+ "array",
145
+ "asanyarray",
146
+ "asarray",
147
+ "bitwise_and",
148
+ "bitwise_or",
149
+ "bitwise_xor",
150
+ "bool_",
151
+ "ceil",
152
+ "choose",
153
+ "clip",
154
+ "common_fill_value",
155
+ "compress",
156
+ "compressed",
157
+ "concatenate",
158
+ "conjugate",
159
+ "convolve",
160
+ "copy",
161
+ "correlate",
162
+ "cos",
163
+ "cosh",
164
+ "count",
165
+ "cumprod",
166
+ "cumsum",
167
+ "default_fill_value",
168
+ "diag",
169
+ "diagonal",
170
+ "diff",
171
+ "divide",
172
+ "empty",
173
+ "empty_like",
174
+ "equal",
175
+ "exp",
176
+ "expand_dims",
177
+ "fabs",
178
+ "filled",
179
+ "fix_invalid",
180
+ "flatten_mask",
181
+ "flatten_structured_array",
182
+ "floor",
183
+ "floor_divide",
184
+ "fmod",
185
+ "frombuffer",
186
+ "fromflex",
187
+ "fromfunction",
188
+ "getdata",
189
+ "getmask",
190
+ "getmaskarray",
191
+ "greater",
192
+ "greater_equal",
193
+ "harden_mask",
194
+ "hypot",
195
+ "identity",
196
+ "ids",
197
+ "indices",
198
+ "inner",
199
+ "innerproduct",
200
+ "isMA",
201
+ "isMaskedArray",
202
+ "is_mask",
203
+ "is_masked",
204
+ "isarray",
205
+ "left_shift",
206
+ "less",
207
+ "less_equal",
208
+ "log",
209
+ "log2",
210
+ "log10",
211
+ "logical_and",
212
+ "logical_not",
213
+ "logical_or",
214
+ "logical_xor",
215
+ "make_mask",
216
+ "make_mask_descr",
217
+ "make_mask_none",
218
+ "mask_or",
219
+ "masked",
220
+ "masked_array",
221
+ "masked_equal",
222
+ "masked_greater",
223
+ "masked_greater_equal",
224
+ "masked_inside",
225
+ "masked_invalid",
226
+ "masked_less",
227
+ "masked_less_equal",
228
+ "masked_not_equal",
229
+ "masked_object",
230
+ "masked_outside",
231
+ "masked_print_option",
232
+ "masked_singleton",
233
+ "masked_values",
234
+ "masked_where",
235
+ "max",
236
+ "maximum",
237
+ "maximum_fill_value",
238
+ "mean",
239
+ "min",
240
+ "minimum",
241
+ "minimum_fill_value",
242
+ "mod",
243
+ "multiply",
244
+ "mvoid",
245
+ "ndim",
246
+ "negative",
247
+ "nomask",
248
+ "nonzero",
249
+ "not_equal",
250
+ "ones",
251
+ "ones_like",
252
+ "outer",
253
+ "outerproduct",
254
+ "power",
255
+ "prod",
256
+ "product",
257
+ "ptp",
258
+ "put",
259
+ "putmask",
260
+ "ravel",
261
+ "remainder",
262
+ "repeat",
263
+ "reshape",
264
+ "resize",
265
+ "right_shift",
266
+ "round",
267
+ "round_",
268
+ "set_fill_value",
269
+ "shape",
270
+ "sin",
271
+ "sinh",
272
+ "size",
273
+ "soften_mask",
274
+ "sometrue",
275
+ "sort",
276
+ "sqrt",
277
+ "squeeze",
278
+ "std",
279
+ "subtract",
280
+ "sum",
281
+ "swapaxes",
282
+ "take",
283
+ "tan",
284
+ "tanh",
285
+ "trace",
286
+ "transpose",
287
+ "true_divide",
288
+ "var",
289
+ "where",
290
+ "zeros",
291
+ "zeros_like",
292
+ ]
293
+
294
+ _ShapeT = TypeVar("_ShapeT", bound=_Shape)
295
+ _ShapeOrAnyT = TypeVar("_ShapeOrAnyT", bound=_Shape, default=_AnyShape)
296
+ _ShapeT_co = TypeVar("_ShapeT_co", bound=_Shape, default=_AnyShape, covariant=True)
297
+ _DTypeT = TypeVar("_DTypeT", bound=dtype)
298
+ _DTypeT_co = TypeVar("_DTypeT_co", bound=dtype, default=dtype, covariant=True)
299
+ _ArrayT = TypeVar("_ArrayT", bound=ndarray[Any, Any])
300
+ _MArrayT = TypeVar("_MArrayT", bound=MaskedArray[Any, Any])
301
+ _ScalarT = TypeVar("_ScalarT", bound=generic)
302
+ _ScalarT_co = TypeVar("_ScalarT_co", bound=generic, covariant=True)
303
+ _NumberT = TypeVar("_NumberT", bound=number)
304
+ _RealNumberT = TypeVar("_RealNumberT", bound=floating | integer)
305
+ _ArangeScalarT = TypeVar("_ArangeScalarT", bound=_ArangeScalar)
306
+ _UFuncT_co = TypeVar(
307
+ "_UFuncT_co",
308
+ # the `| Callable` simplifies self-binding to the ufunc's callable signature
309
+ bound=np.ufunc | Callable[..., object],
310
+ default=np.ufunc,
311
+ covariant=True,
312
+ )
313
+ _Pss = ParamSpec("_Pss")
314
+ _T = TypeVar("_T")
315
+
316
+ _Ignored: TypeAlias = object
317
+
318
+ # A subset of `MaskedArray` that can be parametrized w.r.t. `np.generic`
319
+ _MaskedArray: TypeAlias = MaskedArray[_AnyShape, dtype[_ScalarT]]
320
+ _Masked1D: TypeAlias = MaskedArray[tuple[int], dtype[_ScalarT]]
321
+
322
+ _MaskedArrayUInt_co: TypeAlias = _MaskedArray[unsignedinteger | np.bool]
323
+ _MaskedArrayInt_co: TypeAlias = _MaskedArray[integer | np.bool]
324
+ _MaskedArrayFloat64_co: TypeAlias = _MaskedArray[floating[_64Bit] | float32 | float16 | integer | np.bool]
325
+ _MaskedArrayFloat_co: TypeAlias = _MaskedArray[floating | integer | np.bool]
326
+ _MaskedArrayComplex128_co: TypeAlias = _MaskedArray[number[_64Bit] | number[_32Bit] | float16 | integer | np.bool]
327
+ _MaskedArrayComplex_co: TypeAlias = _MaskedArray[inexact | integer | np.bool]
328
+ _MaskedArrayNumber_co: TypeAlias = _MaskedArray[number | np.bool]
329
+ _MaskedArrayTD64_co: TypeAlias = _MaskedArray[timedelta64 | integer | np.bool]
330
+
331
+ _ArrayInt_co: TypeAlias = NDArray[integer | bool_]
332
+ _Array1D: TypeAlias = np.ndarray[tuple[int], np.dtype[_ScalarT]]
333
+
334
+ _ConvertibleToInt: TypeAlias = SupportsInt | SupportsIndex | _CharLike_co
335
+ _ConvertibleToFloat: TypeAlias = SupportsFloat | SupportsIndex | _CharLike_co
336
+ _ConvertibleToComplex: TypeAlias = SupportsComplex | SupportsFloat | SupportsIndex | _CharLike_co
337
+ _ConvertibleToTD64: TypeAlias = dt.timedelta | int | _CharLike_co | character | number | timedelta64 | np.bool | None
338
+ _ConvertibleToDT64: TypeAlias = dt.date | int | _CharLike_co | character | number | datetime64 | np.bool | None
339
+ _ArangeScalar: TypeAlias = floating | integer | datetime64 | timedelta64
340
+
341
+ _NoMaskType: TypeAlias = np.bool_[Literal[False]] # type of `np.False_`
342
+ _MaskArray: TypeAlias = np.ndarray[_ShapeOrAnyT, np.dtype[np.bool_]]
343
+
344
+ _FillValue: TypeAlias = complex | None # int | float | complex | None
345
+ _FillValueCallable: TypeAlias = Callable[[np.dtype | ArrayLike], _FillValue]
346
+ _DomainCallable: TypeAlias = Callable[..., NDArray[np.bool_]]
347
+
348
+ ###
349
+
350
+ MaskType = np.bool_
351
+
352
+ nomask: Final[_NoMaskType] = ...
353
+
354
+ class MaskedArrayFutureWarning(FutureWarning): ...
355
+ class MAError(Exception): ...
356
+ class MaskError(MAError): ...
357
+
358
+ # not generic at runtime
359
+ class _MaskedUFunc(Generic[_UFuncT_co]):
360
+ f: _UFuncT_co # readonly
361
+ def __init__(self, /, ufunc: _UFuncT_co) -> None: ...
362
+
363
+ # not generic at runtime
364
+ class _MaskedUnaryOperation(_MaskedUFunc[_UFuncT_co], Generic[_UFuncT_co]):
365
+ fill: Final[_FillValue]
366
+ domain: Final[_DomainCallable | None]
367
+
368
+ def __init__(self, /, mufunc: _UFuncT_co, fill: _FillValue = 0, domain: _DomainCallable | None = None) -> None: ...
369
+
370
+ # NOTE: This might not work with overloaded callable signatures might not work on
371
+ # pyright, which is a long-standing issue, and is unique to pyright:
372
+ # https://github.com/microsoft/pyright/issues/9663
373
+ # https://github.com/microsoft/pyright/issues/10849
374
+ # https://github.com/microsoft/pyright/issues/10899
375
+ # https://github.com/microsoft/pyright/issues/11049
376
+ def __call__(
377
+ self: _MaskedUnaryOperation[Callable[Concatenate[Any, _Pss], _T]],
378
+ /,
379
+ a: ArrayLike,
380
+ *args: _Pss.args,
381
+ **kwargs: _Pss.kwargs,
382
+ ) -> _T: ...
383
+
384
+ # not generic at runtime
385
+ class _MaskedBinaryOperation(_MaskedUFunc[_UFuncT_co], Generic[_UFuncT_co]):
386
+ fillx: Final[_FillValue]
387
+ filly: Final[_FillValue]
388
+
389
+ def __init__(self, /, mbfunc: _UFuncT_co, fillx: _FillValue = 0, filly: _FillValue = 0) -> None: ...
390
+
391
+ # NOTE: See the comment in `_MaskedUnaryOperation.__call__`
392
+ def __call__(
393
+ self: _MaskedBinaryOperation[Callable[Concatenate[Any, Any, _Pss], _T]],
394
+ /,
395
+ a: ArrayLike,
396
+ b: ArrayLike,
397
+ *args: _Pss.args,
398
+ **kwargs: _Pss.kwargs,
399
+ ) -> _T: ...
400
+
401
+ # NOTE: We cannot meaningfully annotate the return (d)types of these methods until
402
+ # the signatures of the corresponding `numpy.ufunc` methods are specified.
403
+ def reduce(self, /, target: ArrayLike, axis: SupportsIndex = 0, dtype: DTypeLike | None = None) -> Incomplete: ...
404
+ def outer(self, /, a: ArrayLike, b: ArrayLike) -> _MaskedArray[Incomplete]: ...
405
+ def accumulate(self, /, target: ArrayLike, axis: SupportsIndex = 0) -> _MaskedArray[Incomplete]: ...
406
+
407
+ # not generic at runtime
408
+ class _DomainedBinaryOperation(_MaskedUFunc[_UFuncT_co], Generic[_UFuncT_co]):
409
+ domain: Final[_DomainCallable]
410
+ fillx: Final[_FillValue]
411
+ filly: Final[_FillValue]
412
+
413
+ def __init__(
414
+ self,
415
+ /,
416
+ dbfunc: _UFuncT_co,
417
+ domain: _DomainCallable,
418
+ fillx: _FillValue = 0,
419
+ filly: _FillValue = 0,
420
+ ) -> None: ...
421
+
422
+ # NOTE: See the comment in `_MaskedUnaryOperation.__call__`
423
+ def __call__(
424
+ self: _DomainedBinaryOperation[Callable[Concatenate[Any, Any, _Pss], _T]],
425
+ /,
426
+ a: ArrayLike,
427
+ b: ArrayLike,
428
+ *args: _Pss.args,
429
+ **kwargs: _Pss.kwargs,
430
+ ) -> _T: ...
431
+
432
+ # not generic at runtime
433
+ class _extrema_operation(_MaskedUFunc[_UFuncT_co], Generic[_UFuncT_co]):
434
+ compare: Final[_MaskedBinaryOperation]
435
+ fill_value_func: Final[_FillValueCallable]
436
+
437
+ def __init__(
438
+ self,
439
+ /,
440
+ ufunc: _UFuncT_co,
441
+ compare: _MaskedBinaryOperation,
442
+ fill_value: _FillValueCallable,
443
+ ) -> None: ...
444
+
445
+ # NOTE: This class is only used internally for `maximum` and `minimum`, so we are
446
+ # able to annotate the `__call__` method specifically for those two functions.
447
+ @overload
448
+ def __call__(self, /, a: _ArrayLike[_ScalarT], b: _ArrayLike[_ScalarT]) -> _MaskedArray[_ScalarT]: ...
449
+ @overload
450
+ def __call__(self, /, a: ArrayLike, b: ArrayLike) -> _MaskedArray[Incomplete]: ...
451
+
452
+ # NOTE: We cannot meaningfully annotate the return (d)types of these methods until
453
+ # the signatures of the corresponding `numpy.ufunc` methods are specified.
454
+ def reduce(self, /, target: ArrayLike, axis: SupportsIndex | _NoValueType = ...) -> Incomplete: ...
455
+ def outer(self, /, a: ArrayLike, b: ArrayLike) -> _MaskedArray[Incomplete]: ...
456
+
457
+ @final
458
+ class _MaskedPrintOption:
459
+ _display: str
460
+ _enabled: bool | Literal[0, 1]
461
+ def __init__(self, /, display: str) -> None: ...
462
+ def display(self, /) -> str: ...
463
+ def set_display(self, /, s: str) -> None: ...
464
+ def enabled(self, /) -> bool: ...
465
+ def enable(self, /, shrink: bool | Literal[0, 1] = 1) -> None: ...
466
+
467
+ masked_print_option: Final[_MaskedPrintOption] = ...
468
+
469
+ exp: _MaskedUnaryOperation = ...
470
+ conjugate: _MaskedUnaryOperation = ...
471
+ sin: _MaskedUnaryOperation = ...
472
+ cos: _MaskedUnaryOperation = ...
473
+ arctan: _MaskedUnaryOperation = ...
474
+ arcsinh: _MaskedUnaryOperation = ...
475
+ sinh: _MaskedUnaryOperation = ...
476
+ cosh: _MaskedUnaryOperation = ...
477
+ tanh: _MaskedUnaryOperation = ...
478
+ abs: _MaskedUnaryOperation = ...
479
+ absolute: _MaskedUnaryOperation = ...
480
+ angle: _MaskedUnaryOperation = ...
481
+ fabs: _MaskedUnaryOperation = ...
482
+ negative: _MaskedUnaryOperation = ...
483
+ floor: _MaskedUnaryOperation = ...
484
+ ceil: _MaskedUnaryOperation = ...
485
+ around: _MaskedUnaryOperation = ...
486
+ logical_not: _MaskedUnaryOperation = ...
487
+ sqrt: _MaskedUnaryOperation = ...
488
+ log: _MaskedUnaryOperation = ...
489
+ log2: _MaskedUnaryOperation = ...
490
+ log10: _MaskedUnaryOperation = ...
491
+ tan: _MaskedUnaryOperation = ...
492
+ arcsin: _MaskedUnaryOperation = ...
493
+ arccos: _MaskedUnaryOperation = ...
494
+ arccosh: _MaskedUnaryOperation = ...
495
+ arctanh: _MaskedUnaryOperation = ...
496
+
497
+ add: _MaskedBinaryOperation = ...
498
+ subtract: _MaskedBinaryOperation = ...
499
+ multiply: _MaskedBinaryOperation = ...
500
+ arctan2: _MaskedBinaryOperation = ...
501
+ equal: _MaskedBinaryOperation = ...
502
+ not_equal: _MaskedBinaryOperation = ...
503
+ less_equal: _MaskedBinaryOperation = ...
504
+ greater_equal: _MaskedBinaryOperation = ...
505
+ less: _MaskedBinaryOperation = ...
506
+ greater: _MaskedBinaryOperation = ...
507
+ logical_and: _MaskedBinaryOperation = ...
508
+ def alltrue(target: ArrayLike, axis: SupportsIndex | None = 0, dtype: _DTypeLikeBool | None = None) -> Incomplete: ...
509
+ logical_or: _MaskedBinaryOperation = ...
510
+ def sometrue(target: ArrayLike, axis: SupportsIndex | None = 0, dtype: _DTypeLikeBool | None = None) -> Incomplete: ...
511
+ logical_xor: _MaskedBinaryOperation = ...
512
+ bitwise_and: _MaskedBinaryOperation = ...
513
+ bitwise_or: _MaskedBinaryOperation = ...
514
+ bitwise_xor: _MaskedBinaryOperation = ...
515
+ hypot: _MaskedBinaryOperation = ...
516
+
517
+ divide: _DomainedBinaryOperation = ...
518
+ true_divide: _DomainedBinaryOperation = ...
519
+ floor_divide: _DomainedBinaryOperation = ...
520
+ remainder: _DomainedBinaryOperation = ...
521
+ fmod: _DomainedBinaryOperation = ...
522
+ mod: _DomainedBinaryOperation = ...
523
+
524
+ # `obj` can be anything (even `object()`), and is too "flexible", so we can't
525
+ # meaningfully annotate it, or its return type.
526
+ def default_fill_value(obj: object) -> Any: ...
527
+ def minimum_fill_value(obj: object) -> Any: ...
528
+ def maximum_fill_value(obj: object) -> Any: ...
529
+
530
+ #
531
+ @overload # returns `a.fill_value` if `a` is a `MaskedArray`
532
+ def get_fill_value(a: _MaskedArray[_ScalarT]) -> _ScalarT: ...
533
+ @overload # otherwise returns `default_fill_value(a)`
534
+ def get_fill_value(a: object) -> Any: ...
535
+
536
+ # this is a noop if `a` isn't a `MaskedArray`, so we only accept `MaskedArray` input
537
+ def set_fill_value(a: MaskedArray, fill_value: _ScalarLike_co) -> None: ...
538
+
539
+ # the return type depends on the *values* of `a` and `b` (which cannot be known
540
+ # statically), which is why we need to return an awkward `_ | None`
541
+ @overload
542
+ def common_fill_value(a: _MaskedArray[_ScalarT], b: MaskedArray) -> _ScalarT | None: ...
543
+ @overload
544
+ def common_fill_value(a: object, b: object) -> Any: ...
545
+
546
+ # keep in sync with `fix_invalid`, but return `ndarray` instead of `MaskedArray`
547
+ @overload
548
+ def filled(a: ndarray[_ShapeT, _DTypeT], fill_value: _ScalarLike_co | None = None) -> ndarray[_ShapeT, _DTypeT]: ...
549
+ @overload
550
+ def filled(a: _ArrayLike[_ScalarT], fill_value: _ScalarLike_co | None = None) -> NDArray[_ScalarT]: ...
551
+ @overload
552
+ def filled(a: ArrayLike, fill_value: _ScalarLike_co | None = None) -> NDArray[Incomplete]: ...
553
+
554
+ # keep in sync with `filled`, but return `MaskedArray` instead of `ndarray`
555
+ @overload
556
+ def fix_invalid(
557
+ a: np.ndarray[_ShapeT, _DTypeT],
558
+ mask: _ArrayLikeBool_co = nomask,
559
+ copy: bool = True,
560
+ fill_value: _ScalarLike_co | None = None,
561
+ ) -> MaskedArray[_ShapeT, _DTypeT]: ...
562
+ @overload
563
+ def fix_invalid(
564
+ a: _ArrayLike[_ScalarT],
565
+ mask: _ArrayLikeBool_co = nomask,
566
+ copy: bool = True,
567
+ fill_value: _ScalarLike_co | None = None,
568
+ ) -> _MaskedArray[_ScalarT]: ...
569
+ @overload
570
+ def fix_invalid(
571
+ a: ArrayLike,
572
+ mask: _ArrayLikeBool_co = nomask,
573
+ copy: bool = True,
574
+ fill_value: _ScalarLike_co | None = None,
575
+ ) -> _MaskedArray[Incomplete]: ...
576
+
577
+ #
578
+ def get_masked_subclass(*arrays: object) -> type[MaskedArray]: ...
579
+
580
+ #
581
+ @overload
582
+ def getdata(a: np.ndarray[_ShapeT, _DTypeT], subok: bool = True) -> np.ndarray[_ShapeT, _DTypeT]: ...
583
+ @overload
584
+ def getdata(a: _ArrayLike[_ScalarT], subok: bool = True) -> NDArray[_ScalarT]: ...
585
+ @overload
586
+ def getdata(a: ArrayLike, subok: bool = True) -> NDArray[Incomplete]: ...
587
+
588
+ get_data = getdata
589
+
590
+ #
591
+ @overload
592
+ def getmask(a: _ScalarLike_co) -> _NoMaskType: ...
593
+ @overload
594
+ def getmask(a: MaskedArray[_ShapeT, Any]) -> _MaskArray[_ShapeT] | _NoMaskType: ...
595
+ @overload
596
+ def getmask(a: ArrayLike) -> _MaskArray | _NoMaskType: ...
597
+
598
+ get_mask = getmask
599
+
600
+ # like `getmask`, but instead of `nomask` returns `make_mask_none(arr, arr.dtype?)`
601
+ @overload
602
+ def getmaskarray(arr: _ScalarLike_co) -> _MaskArray[tuple[()]]: ...
603
+ @overload
604
+ def getmaskarray(arr: np.ndarray[_ShapeT, Any]) -> _MaskArray[_ShapeT]: ...
605
+
606
+ # It's sufficient for `m` to have dtype with type: `type[np.bool_]`,
607
+ # which isn't necessarily a ndarray. Please open an issue if this causes issues.
608
+ def is_mask(m: object) -> TypeIs[NDArray[bool_]]: ...
609
+
610
+ #
611
+ @overload
612
+ def make_mask_descr(ndtype: _VoidDTypeLike) -> np.dtype[np.void]: ...
613
+ @overload
614
+ def make_mask_descr(ndtype: _DTypeLike[np.generic] | str | type) -> np.dtype[np.bool_]: ...
615
+
616
+ #
617
+ @overload # m is nomask
618
+ def make_mask(
619
+ m: _NoMaskType,
620
+ copy: bool = False,
621
+ shrink: bool = True,
622
+ dtype: _DTypeLikeBool = ...,
623
+ ) -> _NoMaskType: ...
624
+ @overload # m: ndarray, shrink=True (default), dtype: bool-like (default)
625
+ def make_mask(
626
+ m: np.ndarray[_ShapeT],
627
+ copy: bool = False,
628
+ shrink: Literal[True] = True,
629
+ dtype: _DTypeLikeBool = ...,
630
+ ) -> _MaskArray[_ShapeT] | _NoMaskType: ...
631
+ @overload # m: ndarray, shrink=False (kwarg), dtype: bool-like (default)
632
+ def make_mask(
633
+ m: np.ndarray[_ShapeT],
634
+ copy: bool = False,
635
+ *,
636
+ shrink: Literal[False],
637
+ dtype: _DTypeLikeBool = ...,
638
+ ) -> _MaskArray[_ShapeT]: ...
639
+ @overload # m: ndarray, dtype: void-like
640
+ def make_mask(
641
+ m: np.ndarray[_ShapeT],
642
+ copy: bool = False,
643
+ shrink: bool = True,
644
+ *,
645
+ dtype: _DTypeLikeVoid,
646
+ ) -> np.ndarray[_ShapeT, np.dtype[np.void]]: ...
647
+ @overload # m: array-like, shrink=True (default), dtype: bool-like (default)
648
+ def make_mask(
649
+ m: ArrayLike,
650
+ copy: bool = False,
651
+ shrink: Literal[True] = True,
652
+ dtype: _DTypeLikeBool = ...,
653
+ ) -> _MaskArray | _NoMaskType: ...
654
+ @overload # m: array-like, shrink=False (kwarg), dtype: bool-like (default)
655
+ def make_mask(
656
+ m: ArrayLike,
657
+ copy: bool = False,
658
+ *,
659
+ shrink: Literal[False],
660
+ dtype: _DTypeLikeBool = ...,
661
+ ) -> _MaskArray: ...
662
+ @overload # m: array-like, dtype: void-like
663
+ def make_mask(
664
+ m: ArrayLike,
665
+ copy: bool = False,
666
+ shrink: bool = True,
667
+ *,
668
+ dtype: _DTypeLikeVoid,
669
+ ) -> NDArray[np.void]: ...
670
+ @overload # fallback
671
+ def make_mask(
672
+ m: ArrayLike,
673
+ copy: bool = False,
674
+ shrink: bool = True,
675
+ *,
676
+ dtype: DTypeLike = ...,
677
+ ) -> NDArray[Incomplete] | _NoMaskType: ...
678
+
679
+ #
680
+ @overload # known shape, dtype: unstructured (default)
681
+ def make_mask_none(newshape: _ShapeT, dtype: np.dtype | type | str | None = None) -> _MaskArray[_ShapeT]: ...
682
+ @overload # known shape, dtype: structured
683
+ def make_mask_none(newshape: _ShapeT, dtype: _VoidDTypeLike) -> np.ndarray[_ShapeT, dtype[np.void]]: ...
684
+ @overload # unknown shape, dtype: unstructured (default)
685
+ def make_mask_none(newshape: _ShapeLike, dtype: np.dtype | type | str | None = None) -> _MaskArray: ...
686
+ @overload # unknown shape, dtype: structured
687
+ def make_mask_none(newshape: _ShapeLike, dtype: _VoidDTypeLike) -> NDArray[np.void]: ...
688
+
689
+ #
690
+ @overload # nomask, scalar-like, shrink=True (default)
691
+ def mask_or(
692
+ m1: _NoMaskType | Literal[False],
693
+ m2: _ScalarLike_co,
694
+ copy: bool = False,
695
+ shrink: Literal[True] = True,
696
+ ) -> _NoMaskType: ...
697
+ @overload # nomask, scalar-like, shrink=False (kwarg)
698
+ def mask_or(
699
+ m1: _NoMaskType | Literal[False],
700
+ m2: _ScalarLike_co,
701
+ copy: bool = False,
702
+ *,
703
+ shrink: Literal[False],
704
+ ) -> _MaskArray[tuple[()]]: ...
705
+ @overload # scalar-like, nomask, shrink=True (default)
706
+ def mask_or(
707
+ m1: _ScalarLike_co,
708
+ m2: _NoMaskType | Literal[False],
709
+ copy: bool = False,
710
+ shrink: Literal[True] = True,
711
+ ) -> _NoMaskType: ...
712
+ @overload # scalar-like, nomask, shrink=False (kwarg)
713
+ def mask_or(
714
+ m1: _ScalarLike_co,
715
+ m2: _NoMaskType | Literal[False],
716
+ copy: bool = False,
717
+ *,
718
+ shrink: Literal[False],
719
+ ) -> _MaskArray[tuple[()]]: ...
720
+ @overload # ndarray, ndarray | nomask, shrink=True (default)
721
+ def mask_or(
722
+ m1: np.ndarray[_ShapeT, np.dtype[_ScalarT]],
723
+ m2: np.ndarray[_ShapeT, np.dtype[_ScalarT]] | _NoMaskType | Literal[False],
724
+ copy: bool = False,
725
+ shrink: Literal[True] = True,
726
+ ) -> _MaskArray[_ShapeT] | _NoMaskType: ...
727
+ @overload # ndarray, ndarray | nomask, shrink=False (kwarg)
728
+ def mask_or(
729
+ m1: np.ndarray[_ShapeT, np.dtype[_ScalarT]],
730
+ m2: np.ndarray[_ShapeT, np.dtype[_ScalarT]] | _NoMaskType | Literal[False],
731
+ copy: bool = False,
732
+ *,
733
+ shrink: Literal[False],
734
+ ) -> _MaskArray[_ShapeT]: ...
735
+ @overload # ndarray | nomask, ndarray, shrink=True (default)
736
+ def mask_or(
737
+ m1: np.ndarray[_ShapeT, np.dtype[_ScalarT]] | _NoMaskType | Literal[False],
738
+ m2: np.ndarray[_ShapeT, np.dtype[_ScalarT]],
739
+ copy: bool = False,
740
+ shrink: Literal[True] = True,
741
+ ) -> _MaskArray[_ShapeT] | _NoMaskType: ...
742
+ @overload # ndarray | nomask, ndarray, shrink=False (kwarg)
743
+ def mask_or(
744
+ m1: np.ndarray[_ShapeT, np.dtype[_ScalarT]] | _NoMaskType | Literal[False],
745
+ m2: np.ndarray[_ShapeT, np.dtype[_ScalarT]],
746
+ copy: bool = False,
747
+ *,
748
+ shrink: Literal[False],
749
+ ) -> _MaskArray[_ShapeT]: ...
750
+
751
+ #
752
+ @overload
753
+ def flatten_mask(mask: np.ndarray[_ShapeT]) -> _MaskArray[_ShapeT]: ...
754
+ @overload
755
+ def flatten_mask(mask: ArrayLike) -> _MaskArray: ...
756
+
757
+ # NOTE: we currently don't know the field types of `void` dtypes, so it's not possible
758
+ # to know the output dtype of the returned array.
759
+ @overload
760
+ def flatten_structured_array(a: MaskedArray[_ShapeT, np.dtype[np.void]]) -> MaskedArray[_ShapeT]: ...
761
+ @overload
762
+ def flatten_structured_array(a: np.ndarray[_ShapeT, np.dtype[np.void]]) -> np.ndarray[_ShapeT]: ...
763
+ @overload # for some reason this accepts unstructured array-likes, hence this fallback overload
764
+ def flatten_structured_array(a: ArrayLike) -> np.ndarray: ...
765
+
766
+ # keep in sync with other the `masked_*` functions
767
+ @overload # known array with known shape and dtype
768
+ def masked_invalid(a: ndarray[_ShapeT, _DTypeT], copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ...
769
+ @overload # array-like of known scalar-type
770
+ def masked_invalid(a: _ArrayLike[_ScalarT], copy: bool = True) -> _MaskedArray[_ScalarT]: ...
771
+ @overload # unknown array-like
772
+ def masked_invalid(a: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ...
773
+
774
+ # keep in sync with other the `masked_*` functions
775
+ @overload # array-like of known scalar-type
776
+ def masked_where(
777
+ condition: _ArrayLikeBool_co, a: ndarray[_ShapeT, _DTypeT], copy: bool = True
778
+ ) -> MaskedArray[_ShapeT, _DTypeT]: ...
779
+ @overload # array-like of known scalar-type
780
+ def masked_where(condition: _ArrayLikeBool_co, a: _ArrayLike[_ScalarT], copy: bool = True) -> _MaskedArray[_ScalarT]: ...
781
+ @overload # unknown array-like
782
+ def masked_where(condition: _ArrayLikeBool_co, a: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ...
783
+
784
+ # keep in sync with other the `masked_*` functions
785
+ @overload # known array with known shape and dtype
786
+ def masked_greater(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ...
787
+ @overload # array-like of known scalar-type
788
+ def masked_greater(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ...
789
+ @overload # unknown array-like
790
+ def masked_greater(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ...
791
+
792
+ # keep in sync with other the `masked_*` functions
793
+ @overload # known array with known shape and dtype
794
+ def masked_greater_equal(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ...
795
+ @overload # array-like of known scalar-type
796
+ def masked_greater_equal(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ...
797
+ @overload # unknown array-like
798
+ def masked_greater_equal(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ...
799
+
800
+ # keep in sync with other the `masked_*` functions
801
+ @overload # known array with known shape and dtype
802
+ def masked_less(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ...
803
+ @overload # array-like of known scalar-type
804
+ def masked_less(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ...
805
+ @overload # unknown array-like
806
+ def masked_less(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ...
807
+
808
+ # keep in sync with other the `masked_*` functions
809
+ @overload # known array with known shape and dtype
810
+ def masked_less_equal(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ...
811
+ @overload # array-like of known scalar-type
812
+ def masked_less_equal(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ...
813
+ @overload # unknown array-like
814
+ def masked_less_equal(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ...
815
+
816
+ # keep in sync with other the `masked_*` functions
817
+ @overload # known array with known shape and dtype
818
+ def masked_not_equal(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ...
819
+ @overload # array-like of known scalar-type
820
+ def masked_not_equal(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ...
821
+ @overload # unknown array-like
822
+ def masked_not_equal(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ...
823
+
824
+ # keep in sync with other the `masked_*` functions
825
+ @overload # known array with known shape and dtype
826
+ def masked_equal(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ...
827
+ @overload # array-like of known scalar-type
828
+ def masked_equal(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ...
829
+ @overload # unknown array-like
830
+ def masked_equal(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ...
831
+
832
+ # keep in sync with other the `masked_*` functions
833
+ @overload # known array with known shape and dtype
834
+ def masked_inside(x: ndarray[_ShapeT, _DTypeT], v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ...
835
+ @overload # array-like of known scalar-type
836
+ def masked_inside(x: _ArrayLike[_ScalarT], v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ...
837
+ @overload # unknown array-like
838
+ def masked_inside(x: ArrayLike, v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ...
839
+
840
+ # keep in sync with other the `masked_*` functions
841
+ @overload # known array with known shape and dtype
842
+ def masked_outside(x: ndarray[_ShapeT, _DTypeT], v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ...
843
+ @overload # array-like of known scalar-type
844
+ def masked_outside(x: _ArrayLike[_ScalarT], v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ...
845
+ @overload # unknown array-like
846
+ def masked_outside(x: ArrayLike, v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ...
847
+
848
+ # only intended for object arrays, so we assume that's how it's always used in practice
849
+ @overload
850
+ def masked_object(
851
+ x: np.ndarray[_ShapeT, np.dtype[np.object_]],
852
+ value: object,
853
+ copy: bool = True,
854
+ shrink: bool = True,
855
+ ) -> MaskedArray[_ShapeT, np.dtype[np.object_]]: ...
856
+ @overload
857
+ def masked_object(
858
+ x: _ArrayLikeObject_co,
859
+ value: object,
860
+ copy: bool = True,
861
+ shrink: bool = True,
862
+ ) -> _MaskedArray[np.object_]: ...
863
+
864
+ # keep roughly in sync with `filled`
865
+ @overload
866
+ def masked_values(
867
+ x: np.ndarray[_ShapeT, _DTypeT],
868
+ value: _ScalarLike_co,
869
+ rtol: float = 1e-5,
870
+ atol: float = 1e-8,
871
+ copy: bool = True,
872
+ shrink: bool = True
873
+ ) -> MaskedArray[_ShapeT, _DTypeT]: ...
874
+ @overload
875
+ def masked_values(
876
+ x: _ArrayLike[_ScalarT],
877
+ value: _ScalarLike_co,
878
+ rtol: float = 1e-5,
879
+ atol: float = 1e-8,
880
+ copy: bool = True,
881
+ shrink: bool = True
882
+ ) -> _MaskedArray[_ScalarT]: ...
883
+ @overload
884
+ def masked_values(
885
+ x: ArrayLike,
886
+ value: _ScalarLike_co,
887
+ rtol: float = 1e-5,
888
+ atol: float = 1e-8,
889
+ copy: bool = True,
890
+ shrink: bool = True
891
+ ) -> _MaskedArray[Incomplete]: ...
892
+
893
+ # TODO: Support non-boolean mask dtypes, such as `np.void`. This will require adding an
894
+ # additional generic type parameter to (at least) `MaskedArray` and `MaskedIterator` to
895
+ # hold the dtype of the mask.
896
+
897
+ class MaskedIterator(Generic[_ShapeT_co, _DTypeT_co]):
898
+ ma: MaskedArray[_ShapeT_co, _DTypeT_co] # readonly
899
+ dataiter: np.flatiter[ndarray[_ShapeT_co, _DTypeT_co]] # readonly
900
+ maskiter: Final[np.flatiter[NDArray[np.bool]]]
901
+
902
+ def __init__(self, ma: MaskedArray[_ShapeT_co, _DTypeT_co]) -> None: ...
903
+ def __iter__(self) -> Self: ...
904
+
905
+ # Similar to `MaskedArray.__getitem__` but without the `void` case.
906
+ @overload
907
+ def __getitem__(self, indx: _ArrayInt_co | tuple[_ArrayInt_co, ...], /) -> MaskedArray[_AnyShape, _DTypeT_co]: ...
908
+ @overload
909
+ def __getitem__(self, indx: SupportsIndex | tuple[SupportsIndex, ...], /) -> Incomplete: ...
910
+ @overload
911
+ def __getitem__(self, indx: _ToIndices, /) -> MaskedArray[_AnyShape, _DTypeT_co]: ...
912
+
913
+ # Similar to `ndarray.__setitem__` but without the `void` case.
914
+ @overload # flexible | object_ | bool
915
+ def __setitem__(
916
+ self: MaskedIterator[Any, dtype[flexible | object_ | np.bool] | dtypes.StringDType],
917
+ index: _ToIndices,
918
+ value: object,
919
+ /,
920
+ ) -> None: ...
921
+ @overload # integer
922
+ def __setitem__(
923
+ self: MaskedIterator[Any, dtype[integer]],
924
+ index: _ToIndices,
925
+ value: _ConvertibleToInt | _NestedSequence[_ConvertibleToInt] | _ArrayLikeInt_co,
926
+ /,
927
+ ) -> None: ...
928
+ @overload # floating
929
+ def __setitem__(
930
+ self: MaskedIterator[Any, dtype[floating]],
931
+ index: _ToIndices,
932
+ value: _ConvertibleToFloat | _NestedSequence[_ConvertibleToFloat | None] | _ArrayLikeFloat_co | None,
933
+ /,
934
+ ) -> None: ...
935
+ @overload # complexfloating
936
+ def __setitem__(
937
+ self: MaskedIterator[Any, dtype[complexfloating]],
938
+ index: _ToIndices,
939
+ value: _ConvertibleToComplex | _NestedSequence[_ConvertibleToComplex | None] | _ArrayLikeNumber_co | None,
940
+ /,
941
+ ) -> None: ...
942
+ @overload # timedelta64
943
+ def __setitem__(
944
+ self: MaskedIterator[Any, dtype[timedelta64]],
945
+ index: _ToIndices,
946
+ value: _ConvertibleToTD64 | _NestedSequence[_ConvertibleToTD64],
947
+ /,
948
+ ) -> None: ...
949
+ @overload # datetime64
950
+ def __setitem__(
951
+ self: MaskedIterator[Any, dtype[datetime64]],
952
+ index: _ToIndices,
953
+ value: _ConvertibleToDT64 | _NestedSequence[_ConvertibleToDT64],
954
+ /,
955
+ ) -> None: ...
956
+ @overload # catch-all
957
+ def __setitem__(self, index: _ToIndices, value: ArrayLike, /) -> None: ...
958
+
959
+ # TODO: Returns `mvoid[(), _DTypeT_co]` for masks with `np.void` dtype.
960
+ def __next__(self: MaskedIterator[Any, np.dtype[_ScalarT]]) -> _ScalarT: ...
961
+
962
+ class MaskedArray(ndarray[_ShapeT_co, _DTypeT_co]):
963
+ __array_priority__: Final[Literal[15]] = 15
964
+
965
+ @overload
966
+ def __new__(
967
+ cls,
968
+ data: _ArrayLike[_ScalarT],
969
+ mask: _ArrayLikeBool_co = nomask,
970
+ dtype: None = None,
971
+ copy: bool = False,
972
+ subok: bool = True,
973
+ ndmin: int = 0,
974
+ fill_value: _ScalarLike_co | None = None,
975
+ keep_mask: bool = True,
976
+ hard_mask: bool | None = None,
977
+ shrink: bool = True,
978
+ order: _OrderKACF | None = None,
979
+ ) -> _MaskedArray[_ScalarT]: ...
980
+ @overload
981
+ def __new__(
982
+ cls,
983
+ data: object,
984
+ mask: _ArrayLikeBool_co,
985
+ dtype: _DTypeLike[_ScalarT],
986
+ copy: bool = False,
987
+ subok: bool = True,
988
+ ndmin: int = 0,
989
+ fill_value: _ScalarLike_co | None = None,
990
+ keep_mask: bool = True,
991
+ hard_mask: bool | None = None,
992
+ shrink: bool = True,
993
+ order: _OrderKACF | None = None,
994
+ ) -> _MaskedArray[_ScalarT]: ...
995
+ @overload
996
+ def __new__(
997
+ cls,
998
+ data: object,
999
+ mask: _ArrayLikeBool_co = nomask,
1000
+ *,
1001
+ dtype: _DTypeLike[_ScalarT],
1002
+ copy: bool = False,
1003
+ subok: bool = True,
1004
+ ndmin: int = 0,
1005
+ fill_value: _ScalarLike_co | None = None,
1006
+ keep_mask: bool = True,
1007
+ hard_mask: bool | None = None,
1008
+ shrink: bool = True,
1009
+ order: _OrderKACF | None = None,
1010
+ ) -> _MaskedArray[_ScalarT]: ...
1011
+ @overload
1012
+ def __new__(
1013
+ cls,
1014
+ data: object = None,
1015
+ mask: _ArrayLikeBool_co = nomask,
1016
+ dtype: DTypeLike | None = None,
1017
+ copy: bool = False,
1018
+ subok: bool = True,
1019
+ ndmin: int = 0,
1020
+ fill_value: _ScalarLike_co | None = None,
1021
+ keep_mask: bool = True,
1022
+ hard_mask: bool | None = None,
1023
+ shrink: bool = True,
1024
+ order: _OrderKACF | None = None,
1025
+ ) -> _MaskedArray[Any]: ...
1026
+
1027
+ def __array_wrap__(
1028
+ self,
1029
+ obj: ndarray[_ShapeT, _DTypeT],
1030
+ context: tuple[ufunc, tuple[Any, ...], int] | None = None,
1031
+ return_scalar: bool = False,
1032
+ ) -> MaskedArray[_ShapeT, _DTypeT]: ...
1033
+
1034
+ @overload # type: ignore[override] # ()
1035
+ def view(self, /, dtype: None = None, type: None = None, fill_value: _ScalarLike_co | None = None) -> Self: ...
1036
+ @overload # (dtype: DTypeT)
1037
+ def view(
1038
+ self,
1039
+ /,
1040
+ dtype: _DTypeT | _HasDType[_DTypeT],
1041
+ type: None = None,
1042
+ fill_value: _ScalarLike_co | None = None
1043
+ ) -> MaskedArray[_ShapeT_co, _DTypeT]: ...
1044
+ @overload # (dtype: dtype[ScalarT])
1045
+ def view(
1046
+ self,
1047
+ /,
1048
+ dtype: _DTypeLike[_ScalarT],
1049
+ type: None = None,
1050
+ fill_value: _ScalarLike_co | None = None
1051
+ ) -> MaskedArray[_ShapeT_co, dtype[_ScalarT]]: ...
1052
+ @overload # ([dtype: _, ]*, type: ArrayT)
1053
+ def view(
1054
+ self,
1055
+ /,
1056
+ dtype: DTypeLike | None = None,
1057
+ *,
1058
+ type: type[_ArrayT],
1059
+ fill_value: _ScalarLike_co | None = None
1060
+ ) -> _ArrayT: ...
1061
+ @overload # (dtype: _, type: ArrayT)
1062
+ def view(self, /, dtype: DTypeLike | None, type: type[_ArrayT], fill_value: _ScalarLike_co | None = None) -> _ArrayT: ...
1063
+ @overload # (dtype: ArrayT, /)
1064
+ def view(self, /, dtype: type[_ArrayT], type: None = None, fill_value: _ScalarLike_co | None = None) -> _ArrayT: ...
1065
+ @overload # (dtype: ?)
1066
+ def view(
1067
+ self,
1068
+ /,
1069
+ # `_VoidDTypeLike | str | None` is like `DTypeLike` but without `_DTypeLike[Any]` to avoid
1070
+ # overlaps with previous overloads.
1071
+ dtype: _VoidDTypeLike | str | None,
1072
+ type: None = None,
1073
+ fill_value: _ScalarLike_co | None = None
1074
+ ) -> MaskedArray[_ShapeT_co, dtype]: ...
1075
+
1076
+ # Keep in sync with `ndarray.__getitem__`
1077
+ @overload
1078
+ def __getitem__(self, key: _ArrayInt_co | tuple[_ArrayInt_co, ...], /) -> MaskedArray[_AnyShape, _DTypeT_co]: ...
1079
+ @overload
1080
+ def __getitem__(self, key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any: ...
1081
+ @overload
1082
+ def __getitem__(self, key: _ToIndices, /) -> MaskedArray[_AnyShape, _DTypeT_co]: ...
1083
+ @overload
1084
+ def __getitem__(self: _MaskedArray[void], indx: str, /) -> MaskedArray[_ShapeT_co, dtype]: ...
1085
+ @overload
1086
+ def __getitem__(self: _MaskedArray[void], indx: list[str], /) -> MaskedArray[_ShapeT_co, dtype[void]]: ...
1087
+
1088
+ @property
1089
+ def shape(self) -> _ShapeT_co: ...
1090
+ @shape.setter # type: ignore[override]
1091
+ def shape(self: MaskedArray[_ShapeT, Any], shape: _ShapeT, /) -> None: ...
1092
+
1093
+ def __setmask__(self, mask: _ArrayLikeBool_co, copy: bool = False) -> None: ...
1094
+ @property
1095
+ def mask(self) -> np.ndarray[_ShapeT_co, dtype[MaskType]] | MaskType: ...
1096
+ @mask.setter
1097
+ def mask(self, value: _ArrayLikeBool_co, /) -> None: ...
1098
+ @property
1099
+ def recordmask(self) -> np.ndarray[_ShapeT_co, dtype[MaskType]] | MaskType: ...
1100
+ @recordmask.setter
1101
+ def recordmask(self, mask: Never, /) -> NoReturn: ...
1102
+ def harden_mask(self) -> Self: ...
1103
+ def soften_mask(self) -> Self: ...
1104
+ @property
1105
+ def hardmask(self) -> bool: ...
1106
+ def unshare_mask(self) -> Self: ...
1107
+ @property
1108
+ def sharedmask(self) -> bool: ...
1109
+ def shrink_mask(self) -> Self: ...
1110
+
1111
+ @property
1112
+ def baseclass(self) -> type[ndarray]: ...
1113
+
1114
+ @property
1115
+ def _data(self) -> ndarray[_ShapeT_co, _DTypeT_co]: ...
1116
+ @property
1117
+ def data(self) -> ndarray[_ShapeT_co, _DTypeT_co]: ... # type: ignore[override]
1118
+
1119
+ @property # type: ignore[override]
1120
+ def flat(self) -> MaskedIterator[_ShapeT_co, _DTypeT_co]: ...
1121
+ @flat.setter
1122
+ def flat(self, value: ArrayLike, /) -> None: ...
1123
+
1124
+ @property
1125
+ def fill_value(self: _MaskedArray[_ScalarT]) -> _ScalarT: ...
1126
+ @fill_value.setter
1127
+ def fill_value(self, value: _ScalarLike_co | None = None, /) -> None: ...
1128
+
1129
+ def get_fill_value(self: _MaskedArray[_ScalarT]) -> _ScalarT: ...
1130
+ def set_fill_value(self, /, value: _ScalarLike_co | None = None) -> None: ...
1131
+
1132
+ def filled(self, /, fill_value: _ScalarLike_co | None = None) -> ndarray[_ShapeT_co, _DTypeT_co]: ...
1133
+ def compressed(self) -> ndarray[tuple[int], _DTypeT_co]: ...
1134
+
1135
+ # keep roughly in sync with `ma.core.compress`, but swap the first two arguments
1136
+ @overload # type: ignore[override]
1137
+ def compress(
1138
+ self,
1139
+ condition: _ArrayLikeBool_co,
1140
+ axis: _ShapeLike | None,
1141
+ out: _ArrayT
1142
+ ) -> _ArrayT: ...
1143
+ @overload
1144
+ def compress(
1145
+ self,
1146
+ condition: _ArrayLikeBool_co,
1147
+ axis: _ShapeLike | None = None,
1148
+ *,
1149
+ out: _ArrayT
1150
+ ) -> _ArrayT: ...
1151
+ @overload
1152
+ def compress(
1153
+ self,
1154
+ condition: _ArrayLikeBool_co,
1155
+ axis: None = None,
1156
+ out: None = None
1157
+ ) -> MaskedArray[tuple[int], _DTypeT_co]: ...
1158
+ @overload
1159
+ def compress(
1160
+ self,
1161
+ condition: _ArrayLikeBool_co,
1162
+ axis: _ShapeLike | None = None,
1163
+ out: None = None
1164
+ ) -> MaskedArray[_AnyShape, _DTypeT_co]: ...
1165
+
1166
+ # TODO: How to deal with the non-commutative nature of `==` and `!=`?
1167
+ # xref numpy/numpy#17368
1168
+ def __eq__(self, other: Incomplete, /) -> Incomplete: ...
1169
+ def __ne__(self, other: Incomplete, /) -> Incomplete: ...
1170
+
1171
+ def __ge__(self, other: ArrayLike, /) -> _MaskedArray[bool_]: ... # type: ignore[override]
1172
+ def __gt__(self, other: ArrayLike, /) -> _MaskedArray[bool_]: ... # type: ignore[override]
1173
+ def __le__(self, other: ArrayLike, /) -> _MaskedArray[bool_]: ... # type: ignore[override]
1174
+ def __lt__(self, other: ArrayLike, /) -> _MaskedArray[bool_]: ... # type: ignore[override]
1175
+
1176
+ # Keep in sync with `ndarray.__add__`
1177
+ @overload # type: ignore[override]
1178
+ def __add__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ...
1179
+ @overload
1180
+ def __add__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1181
+ @overload
1182
+ def __add__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[np.bool]: ... # type: ignore[overload-overlap]
1183
+ @overload
1184
+ def __add__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1185
+ @overload
1186
+ def __add__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1187
+ @overload
1188
+ def __add__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1189
+ @overload
1190
+ def __add__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ...
1191
+ @overload
1192
+ def __add__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ...
1193
+ @overload
1194
+ def __add__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap]
1195
+ @overload
1196
+ def __add__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap]
1197
+ @overload
1198
+ def __add__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap]
1199
+ @overload
1200
+ def __add__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap]
1201
+ @overload
1202
+ def __add__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... # type: ignore[overload-overlap]
1203
+ @overload
1204
+ def __add__(self: _MaskedArrayTD64_co, other: _ArrayLikeTD64_co, /) -> _MaskedArray[timedelta64]: ...
1205
+ @overload
1206
+ def __add__(self: _MaskedArrayTD64_co, other: _ArrayLikeDT64_co, /) -> _MaskedArray[datetime64]: ...
1207
+ @overload
1208
+ def __add__(self: _MaskedArray[datetime64], other: _ArrayLikeTD64_co, /) -> _MaskedArray[datetime64]: ...
1209
+ @overload
1210
+ def __add__(self: _MaskedArray[bytes_], other: _ArrayLikeBytes_co, /) -> _MaskedArray[bytes_]: ...
1211
+ @overload
1212
+ def __add__(self: _MaskedArray[str_], other: _ArrayLikeStr_co, /) -> _MaskedArray[str_]: ...
1213
+ @overload
1214
+ def __add__(
1215
+ self: MaskedArray[Any, dtypes.StringDType],
1216
+ other: _ArrayLikeStr_co | _ArrayLikeString_co,
1217
+ /,
1218
+ ) -> MaskedArray[_AnyShape, dtypes.StringDType]: ...
1219
+ @overload
1220
+ def __add__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1221
+ @overload
1222
+ def __add__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1223
+
1224
+ # Keep in sync with `ndarray.__radd__`
1225
+ @overload # type: ignore[override] # signature equivalent to __add__
1226
+ def __radd__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ...
1227
+ @overload
1228
+ def __radd__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1229
+ @overload
1230
+ def __radd__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[np.bool]: ... # type: ignore[overload-overlap]
1231
+ @overload
1232
+ def __radd__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1233
+ @overload
1234
+ def __radd__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1235
+ @overload
1236
+ def __radd__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1237
+ @overload
1238
+ def __radd__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ...
1239
+ @overload
1240
+ def __radd__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ...
1241
+ @overload
1242
+ def __radd__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap]
1243
+ @overload
1244
+ def __radd__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap]
1245
+ @overload
1246
+ def __radd__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap]
1247
+ @overload
1248
+ def __radd__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap]
1249
+ @overload
1250
+ def __radd__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... # type: ignore[overload-overlap]
1251
+ @overload
1252
+ def __radd__(self: _MaskedArrayTD64_co, other: _ArrayLikeTD64_co, /) -> _MaskedArray[timedelta64]: ...
1253
+ @overload
1254
+ def __radd__(self: _MaskedArrayTD64_co, other: _ArrayLikeDT64_co, /) -> _MaskedArray[datetime64]: ...
1255
+ @overload
1256
+ def __radd__(self: _MaskedArray[datetime64], other: _ArrayLikeTD64_co, /) -> _MaskedArray[datetime64]: ...
1257
+ @overload
1258
+ def __radd__(self: _MaskedArray[bytes_], other: _ArrayLikeBytes_co, /) -> _MaskedArray[bytes_]: ...
1259
+ @overload
1260
+ def __radd__(self: _MaskedArray[str_], other: _ArrayLikeStr_co, /) -> _MaskedArray[str_]: ...
1261
+ @overload
1262
+ def __radd__(
1263
+ self: MaskedArray[Any, dtypes.StringDType],
1264
+ other: _ArrayLikeStr_co | _ArrayLikeString_co,
1265
+ /,
1266
+ ) -> MaskedArray[_AnyShape, dtypes.StringDType]: ...
1267
+ @overload
1268
+ def __radd__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1269
+ @overload
1270
+ def __radd__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1271
+
1272
+ # Keep in sync with `ndarray.__sub__`
1273
+ @overload # type: ignore[override]
1274
+ def __sub__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ...
1275
+ @overload
1276
+ def __sub__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1277
+ @overload
1278
+ def __sub__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> NoReturn: ...
1279
+ @overload
1280
+ def __sub__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1281
+ @overload
1282
+ def __sub__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1283
+ @overload
1284
+ def __sub__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1285
+ @overload
1286
+ def __sub__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ...
1287
+ @overload
1288
+ def __sub__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ...
1289
+ @overload
1290
+ def __sub__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap]
1291
+ @overload
1292
+ def __sub__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap]
1293
+ @overload
1294
+ def __sub__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap]
1295
+ @overload
1296
+ def __sub__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap]
1297
+ @overload
1298
+ def __sub__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... # type: ignore[overload-overlap]
1299
+ @overload
1300
+ def __sub__(self: _MaskedArrayTD64_co, other: _ArrayLikeTD64_co, /) -> _MaskedArray[timedelta64]: ...
1301
+ @overload
1302
+ def __sub__(self: _MaskedArray[datetime64], other: _ArrayLikeTD64_co, /) -> _MaskedArray[datetime64]: ...
1303
+ @overload
1304
+ def __sub__(self: _MaskedArray[datetime64], other: _ArrayLikeDT64_co, /) -> _MaskedArray[timedelta64]: ...
1305
+ @overload
1306
+ def __sub__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1307
+ @overload
1308
+ def __sub__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1309
+
1310
+ # Keep in sync with `ndarray.__rsub__`
1311
+ @overload # type: ignore[override]
1312
+ def __rsub__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ...
1313
+ @overload
1314
+ def __rsub__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1315
+ @overload
1316
+ def __rsub__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> NoReturn: ...
1317
+ @overload
1318
+ def __rsub__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1319
+ @overload
1320
+ def __rsub__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1321
+ @overload
1322
+ def __rsub__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1323
+ @overload
1324
+ def __rsub__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ...
1325
+ @overload
1326
+ def __rsub__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ...
1327
+ @overload
1328
+ def __rsub__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap]
1329
+ @overload
1330
+ def __rsub__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap]
1331
+ @overload
1332
+ def __rsub__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap]
1333
+ @overload
1334
+ def __rsub__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap]
1335
+ @overload
1336
+ def __rsub__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... # type: ignore[overload-overlap]
1337
+ @overload
1338
+ def __rsub__(self: _MaskedArrayTD64_co, other: _ArrayLikeTD64_co, /) -> _MaskedArray[timedelta64]: ...
1339
+ @overload
1340
+ def __rsub__(self: _MaskedArrayTD64_co, other: _ArrayLikeDT64_co, /) -> _MaskedArray[datetime64]: ...
1341
+ @overload
1342
+ def __rsub__(self: _MaskedArray[datetime64], other: _ArrayLikeDT64_co, /) -> _MaskedArray[timedelta64]: ...
1343
+ @overload
1344
+ def __rsub__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1345
+ @overload
1346
+ def __rsub__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1347
+
1348
+ # Keep in sync with `ndarray.__mul__`
1349
+ @overload # type: ignore[override]
1350
+ def __mul__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ...
1351
+ @overload
1352
+ def __mul__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1353
+ @overload
1354
+ def __mul__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[np.bool]: ... # type: ignore[overload-overlap]
1355
+ @overload
1356
+ def __mul__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1357
+ @overload
1358
+ def __mul__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1359
+ @overload
1360
+ def __mul__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1361
+ @overload
1362
+ def __mul__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ...
1363
+ @overload
1364
+ def __mul__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ...
1365
+ @overload
1366
+ def __mul__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap]
1367
+ @overload
1368
+ def __mul__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap]
1369
+ @overload
1370
+ def __mul__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap]
1371
+ @overload
1372
+ def __mul__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap]
1373
+ @overload
1374
+ def __mul__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ...
1375
+ @overload
1376
+ def __mul__(self: _MaskedArray[timedelta64], other: _ArrayLikeFloat_co, /) -> _MaskedArray[timedelta64]: ...
1377
+ @overload
1378
+ def __mul__(self: _MaskedArrayFloat_co, other: _ArrayLike[timedelta64], /) -> _MaskedArray[timedelta64]: ...
1379
+ @overload
1380
+ def __mul__(
1381
+ self: MaskedArray[Any, dtype[character] | dtypes.StringDType],
1382
+ other: _ArrayLikeInt,
1383
+ /,
1384
+ ) -> MaskedArray[tuple[Any, ...], _DTypeT_co]: ...
1385
+ @overload
1386
+ def __mul__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1387
+ @overload
1388
+ def __mul__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1389
+
1390
+ # Keep in sync with `ndarray.__rmul__`
1391
+ @overload # type: ignore[override] # signature equivalent to __mul__
1392
+ def __rmul__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ...
1393
+ @overload
1394
+ def __rmul__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1395
+ @overload
1396
+ def __rmul__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[np.bool]: ... # type: ignore[overload-overlap]
1397
+ @overload
1398
+ def __rmul__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1399
+ @overload
1400
+ def __rmul__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1401
+ @overload
1402
+ def __rmul__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1403
+ @overload
1404
+ def __rmul__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ...
1405
+ @overload
1406
+ def __rmul__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ...
1407
+ @overload
1408
+ def __rmul__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap]
1409
+ @overload
1410
+ def __rmul__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap]
1411
+ @overload
1412
+ def __rmul__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap]
1413
+ @overload
1414
+ def __rmul__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap]
1415
+ @overload
1416
+ def __rmul__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ...
1417
+ @overload
1418
+ def __rmul__(self: _MaskedArray[timedelta64], other: _ArrayLikeFloat_co, /) -> _MaskedArray[timedelta64]: ...
1419
+ @overload
1420
+ def __rmul__(self: _MaskedArrayFloat_co, other: _ArrayLike[timedelta64], /) -> _MaskedArray[timedelta64]: ...
1421
+ @overload
1422
+ def __rmul__(
1423
+ self: MaskedArray[Any, dtype[character] | dtypes.StringDType],
1424
+ other: _ArrayLikeInt,
1425
+ /,
1426
+ ) -> MaskedArray[tuple[Any, ...], _DTypeT_co]: ...
1427
+ @overload
1428
+ def __rmul__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1429
+ @overload
1430
+ def __rmul__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1431
+
1432
+ # Keep in sync with `ndarray.__truediv__`
1433
+ @overload # type: ignore[override]
1434
+ def __truediv__(self: _MaskedArrayInt_co | _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1435
+ @overload
1436
+ def __truediv__(self: _MaskedArrayFloat64_co, other: _ArrayLikeInt_co | _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1437
+ @overload
1438
+ def __truediv__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ...
1439
+ @overload
1440
+ def __truediv__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ...
1441
+ @overload
1442
+ def __truediv__(self: _MaskedArray[floating], other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ...
1443
+ @overload
1444
+ def __truediv__(self: _MaskedArrayFloat_co, other: _ArrayLike[floating], /) -> _MaskedArray[floating]: ...
1445
+ @overload
1446
+ def __truediv__(self: _MaskedArray[complexfloating], other: _ArrayLikeNumber_co, /) -> _MaskedArray[complexfloating]: ...
1447
+ @overload
1448
+ def __truediv__(self: _MaskedArrayNumber_co, other: _ArrayLike[complexfloating], /) -> _MaskedArray[complexfloating]: ...
1449
+ @overload
1450
+ def __truediv__(self: _MaskedArray[inexact], other: _ArrayLikeNumber_co, /) -> _MaskedArray[inexact]: ...
1451
+ @overload
1452
+ def __truediv__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ...
1453
+ @overload
1454
+ def __truediv__(self: _MaskedArray[timedelta64], other: _ArrayLike[timedelta64], /) -> _MaskedArray[float64]: ...
1455
+ @overload
1456
+ def __truediv__(self: _MaskedArray[timedelta64], other: _ArrayLikeBool_co, /) -> NoReturn: ...
1457
+ @overload
1458
+ def __truediv__(self: _MaskedArray[timedelta64], other: _ArrayLikeFloat_co, /) -> _MaskedArray[timedelta64]: ...
1459
+ @overload
1460
+ def __truediv__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1461
+ @overload
1462
+ def __truediv__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1463
+
1464
+ # Keep in sync with `ndarray.__rtruediv__`
1465
+ @overload # type: ignore[override]
1466
+ def __rtruediv__(self: _MaskedArrayInt_co | _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1467
+ @overload
1468
+ def __rtruediv__(self: _MaskedArrayFloat64_co, other: _ArrayLikeInt_co | _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1469
+ @overload
1470
+ def __rtruediv__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ...
1471
+ @overload
1472
+ def __rtruediv__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ...
1473
+ @overload
1474
+ def __rtruediv__(self: _MaskedArray[floating], other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ...
1475
+ @overload
1476
+ def __rtruediv__(self: _MaskedArrayFloat_co, other: _ArrayLike[floating], /) -> _MaskedArray[floating]: ...
1477
+ @overload
1478
+ def __rtruediv__(self: _MaskedArray[complexfloating], other: _ArrayLikeNumber_co, /) -> _MaskedArray[complexfloating]: ...
1479
+ @overload
1480
+ def __rtruediv__(self: _MaskedArrayNumber_co, other: _ArrayLike[complexfloating], /) -> _MaskedArray[complexfloating]: ...
1481
+ @overload
1482
+ def __rtruediv__(self: _MaskedArray[inexact], other: _ArrayLikeNumber_co, /) -> _MaskedArray[inexact]: ...
1483
+ @overload
1484
+ def __rtruediv__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ...
1485
+ @overload
1486
+ def __rtruediv__(self: _MaskedArray[timedelta64], other: _ArrayLike[timedelta64], /) -> _MaskedArray[float64]: ...
1487
+ @overload
1488
+ def __rtruediv__(self: _MaskedArray[integer | floating], other: _ArrayLike[timedelta64], /) -> _MaskedArray[timedelta64]: ...
1489
+ @overload
1490
+ def __rtruediv__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1491
+ @overload
1492
+ def __rtruediv__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1493
+
1494
+ # Keep in sync with `ndarray.__floordiv__`
1495
+ @overload # type: ignore[override]
1496
+ def __floordiv__(self: _MaskedArray[_RealNumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_RealNumberT]]: ...
1497
+ @overload
1498
+ def __floordiv__(self: _MaskedArray[_RealNumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_RealNumberT]: ... # type: ignore[overload-overlap]
1499
+ @overload
1500
+ def __floordiv__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[int8]: ... # type: ignore[overload-overlap]
1501
+ @overload
1502
+ def __floordiv__(self: _MaskedArray[np.bool], other: _ArrayLike[_RealNumberT], /) -> _MaskedArray[_RealNumberT]: ... # type: ignore[overload-overlap]
1503
+ @overload
1504
+ def __floordiv__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1505
+ @overload
1506
+ def __floordiv__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1507
+ @overload
1508
+ def __floordiv__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap]
1509
+ @overload
1510
+ def __floordiv__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap]
1511
+ @overload
1512
+ def __floordiv__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ...
1513
+ @overload
1514
+ def __floordiv__(self: _MaskedArray[timedelta64], other: _ArrayLike[timedelta64], /) -> _MaskedArray[int64]: ...
1515
+ @overload
1516
+ def __floordiv__(self: _MaskedArray[timedelta64], other: _ArrayLikeBool_co, /) -> NoReturn: ...
1517
+ @overload
1518
+ def __floordiv__(self: _MaskedArray[timedelta64], other: _ArrayLikeFloat_co, /) -> _MaskedArray[timedelta64]: ...
1519
+ @overload
1520
+ def __floordiv__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1521
+ @overload
1522
+ def __floordiv__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1523
+
1524
+ # Keep in sync with `ndarray.__rfloordiv__`
1525
+ @overload # type: ignore[override]
1526
+ def __rfloordiv__(self: _MaskedArray[_RealNumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_RealNumberT]]: ...
1527
+ @overload
1528
+ def __rfloordiv__(self: _MaskedArray[_RealNumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_RealNumberT]: ... # type: ignore[overload-overlap]
1529
+ @overload
1530
+ def __rfloordiv__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[int8]: ... # type: ignore[overload-overlap]
1531
+ @overload
1532
+ def __rfloordiv__(self: _MaskedArray[np.bool], other: _ArrayLike[_RealNumberT], /) -> _MaskedArray[_RealNumberT]: ... # type: ignore[overload-overlap]
1533
+ @overload
1534
+ def __rfloordiv__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1535
+ @overload
1536
+ def __rfloordiv__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1537
+ @overload
1538
+ def __rfloordiv__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap]
1539
+ @overload
1540
+ def __rfloordiv__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap]
1541
+ @overload
1542
+ def __rfloordiv__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap]
1543
+ @overload
1544
+ def __rfloordiv__(self: _MaskedArray[timedelta64], other: _ArrayLike[timedelta64], /) -> _MaskedArray[int64]: ...
1545
+ @overload
1546
+ def __rfloordiv__(self: _MaskedArray[floating | integer], other: _ArrayLike[timedelta64], /) -> _MaskedArray[timedelta64]: ...
1547
+ @overload
1548
+ def __rfloordiv__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1549
+ @overload
1550
+ def __rfloordiv__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1551
+
1552
+ # Keep in sync with `ndarray.__pow__` (minus the `mod` parameter)
1553
+ @overload # type: ignore[override]
1554
+ def __pow__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ...
1555
+ @overload
1556
+ def __pow__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1557
+ @overload
1558
+ def __pow__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[int8]: ... # type: ignore[overload-overlap]
1559
+ @overload
1560
+ def __pow__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1561
+ @overload
1562
+ def __pow__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1563
+ @overload
1564
+ def __pow__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1565
+ @overload
1566
+ def __pow__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ...
1567
+ @overload
1568
+ def __pow__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ...
1569
+ @overload
1570
+ def __pow__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap]
1571
+ @overload
1572
+ def __pow__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap]
1573
+ @overload
1574
+ def __pow__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap]
1575
+ @overload
1576
+ def __pow__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ...
1577
+ @overload
1578
+ def __pow__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ...
1579
+ @overload
1580
+ def __pow__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1581
+ @overload
1582
+ def __pow__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1583
+
1584
+ # Keep in sync with `ndarray.__rpow__` (minus the `mod` parameter)
1585
+ @overload # type: ignore[override]
1586
+ def __rpow__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ...
1587
+ @overload
1588
+ def __rpow__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1589
+ @overload
1590
+ def __rpow__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[int8]: ... # type: ignore[overload-overlap]
1591
+ @overload
1592
+ def __rpow__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap]
1593
+ @overload
1594
+ def __rpow__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ...
1595
+ @overload
1596
+ def __rpow__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ...
1597
+ @overload
1598
+ def __rpow__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ...
1599
+ @overload
1600
+ def __rpow__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ...
1601
+ @overload
1602
+ def __rpow__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap]
1603
+ @overload
1604
+ def __rpow__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap]
1605
+ @overload
1606
+ def __rpow__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap]
1607
+ @overload
1608
+ def __rpow__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ...
1609
+ @overload
1610
+ def __rpow__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ...
1611
+ @overload
1612
+ def __rpow__(self: _MaskedArray[object_], other: Any, /) -> Any: ...
1613
+ @overload
1614
+ def __rpow__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
1615
+
1616
+ #
1617
+ @property # type: ignore[misc]
1618
+ def imag(self: _HasDTypeWithRealAndImag[object, _ScalarT], /) -> MaskedArray[_ShapeT_co, dtype[_ScalarT]]: ... # type: ignore[override]
1619
+ def get_imag(self: _HasDTypeWithRealAndImag[object, _ScalarT], /) -> MaskedArray[_ShapeT_co, dtype[_ScalarT]]: ...
1620
+
1621
+ #
1622
+ @property # type: ignore[misc]
1623
+ def real(self: _HasDTypeWithRealAndImag[_ScalarT, object], /) -> MaskedArray[_ShapeT_co, dtype[_ScalarT]]: ... # type: ignore[override]
1624
+ def get_real(self: _HasDTypeWithRealAndImag[_ScalarT, object], /) -> MaskedArray[_ShapeT_co, dtype[_ScalarT]]: ...
1625
+
1626
+ # keep in sync with `np.ma.count`
1627
+ @overload
1628
+ def count(self, axis: None = None, keepdims: Literal[False] | _NoValueType = ...) -> int: ...
1629
+ @overload
1630
+ def count(self, axis: _ShapeLike, keepdims: bool | _NoValueType = ...) -> NDArray[int_]: ...
1631
+ @overload
1632
+ def count(self, axis: _ShapeLike | None = None, *, keepdims: Literal[True]) -> NDArray[int_]: ...
1633
+ @overload
1634
+ def count(self, axis: _ShapeLike | None, keepdims: Literal[True]) -> NDArray[int_]: ...
1635
+
1636
+ # Keep in sync with `ndarray.reshape`
1637
+ # NOTE: reshape also accepts negative integers, so we can't use integer literals
1638
+ @overload # (None)
1639
+ def reshape(self, shape: None, /, *, order: _OrderACF = "C", copy: bool | None = None) -> Self: ...
1640
+ @overload # (empty_sequence)
1641
+ def reshape( # type: ignore[overload-overlap] # mypy false positive
1642
+ self,
1643
+ shape: Sequence[Never],
1644
+ /,
1645
+ *,
1646
+ order: _OrderACF = "C",
1647
+ copy: bool | None = None,
1648
+ ) -> MaskedArray[tuple[()], _DTypeT_co]: ...
1649
+ @overload # (() | (int) | (int, int) | ....) # up to 8-d
1650
+ def reshape(
1651
+ self,
1652
+ shape: _AnyShapeT,
1653
+ /,
1654
+ *,
1655
+ order: _OrderACF = "C",
1656
+ copy: bool | None = None,
1657
+ ) -> MaskedArray[_AnyShapeT, _DTypeT_co]: ...
1658
+ @overload # (index)
1659
+ def reshape(
1660
+ self,
1661
+ size1: SupportsIndex,
1662
+ /,
1663
+ *,
1664
+ order: _OrderACF = "C",
1665
+ copy: bool | None = None,
1666
+ ) -> MaskedArray[tuple[int], _DTypeT_co]: ...
1667
+ @overload # (index, index)
1668
+ def reshape(
1669
+ self,
1670
+ size1: SupportsIndex,
1671
+ size2: SupportsIndex,
1672
+ /,
1673
+ *,
1674
+ order: _OrderACF = "C",
1675
+ copy: bool | None = None,
1676
+ ) -> MaskedArray[tuple[int, int], _DTypeT_co]: ...
1677
+ @overload # (index, index, index)
1678
+ def reshape(
1679
+ self,
1680
+ size1: SupportsIndex,
1681
+ size2: SupportsIndex,
1682
+ size3: SupportsIndex,
1683
+ /,
1684
+ *,
1685
+ order: _OrderACF = "C",
1686
+ copy: bool | None = None,
1687
+ ) -> MaskedArray[tuple[int, int, int], _DTypeT_co]: ...
1688
+ @overload # (index, index, index, index)
1689
+ def reshape(
1690
+ self,
1691
+ size1: SupportsIndex,
1692
+ size2: SupportsIndex,
1693
+ size3: SupportsIndex,
1694
+ size4: SupportsIndex,
1695
+ /,
1696
+ *,
1697
+ order: _OrderACF = "C",
1698
+ copy: bool | None = None,
1699
+ ) -> MaskedArray[tuple[int, int, int, int], _DTypeT_co]: ...
1700
+ @overload # (int, *(index, ...))
1701
+ def reshape(
1702
+ self,
1703
+ size0: SupportsIndex,
1704
+ /,
1705
+ *shape: SupportsIndex,
1706
+ order: _OrderACF = "C",
1707
+ copy: bool | None = None,
1708
+ ) -> MaskedArray[_AnyShape, _DTypeT_co]: ...
1709
+ @overload # (sequence[index])
1710
+ def reshape(
1711
+ self,
1712
+ shape: Sequence[SupportsIndex],
1713
+ /,
1714
+ *,
1715
+ order: _OrderACF = "C",
1716
+ copy: bool | None = None,
1717
+ ) -> MaskedArray[_AnyShape, _DTypeT_co]: ...
1718
+
1719
+ def resize(self, newshape: Never, refcheck: bool = True, order: bool = False) -> NoReturn: ... # type: ignore[override]
1720
+ def put(self, indices: _ArrayLikeInt_co, values: ArrayLike, mode: _ModeKind = "raise") -> None: ...
1721
+ def ids(self) -> tuple[int, int]: ...
1722
+ def iscontiguous(self) -> bool: ...
1723
+
1724
+ # Keep in sync with `ma.core.all`
1725
+ @overload # type: ignore[override]
1726
+ def all(
1727
+ self,
1728
+ axis: None = None,
1729
+ out: None = None,
1730
+ keepdims: Literal[False] | _NoValueType = ...,
1731
+ ) -> bool_: ...
1732
+ @overload
1733
+ def all(
1734
+ self,
1735
+ axis: _ShapeLike | None = None,
1736
+ out: None = None,
1737
+ *,
1738
+ keepdims: Literal[True],
1739
+ ) -> _MaskedArray[bool_]: ...
1740
+ @overload
1741
+ def all(
1742
+ self,
1743
+ axis: _ShapeLike | None,
1744
+ out: None,
1745
+ keepdims: Literal[True],
1746
+ ) -> _MaskedArray[bool_]: ...
1747
+ @overload
1748
+ def all(
1749
+ self,
1750
+ axis: _ShapeLike | None = None,
1751
+ out: None = None,
1752
+ keepdims: bool | _NoValueType = ...,
1753
+ ) -> bool_ | _MaskedArray[bool_]: ...
1754
+ @overload
1755
+ def all(
1756
+ self,
1757
+ axis: _ShapeLike | None = None,
1758
+ *,
1759
+ out: _ArrayT,
1760
+ keepdims: bool | _NoValueType = ...,
1761
+ ) -> _ArrayT: ...
1762
+ @overload
1763
+ def all(
1764
+ self,
1765
+ axis: _ShapeLike | None,
1766
+ out: _ArrayT,
1767
+ keepdims: bool | _NoValueType = ...,
1768
+ ) -> _ArrayT: ...
1769
+
1770
+ # Keep in sync with `ma.core.any`
1771
+ @overload # type: ignore[override]
1772
+ def any(
1773
+ self,
1774
+ axis: None = None,
1775
+ out: None = None,
1776
+ keepdims: Literal[False] | _NoValueType = ...,
1777
+ ) -> bool_: ...
1778
+ @overload
1779
+ def any(
1780
+ self,
1781
+ axis: _ShapeLike | None = None,
1782
+ out: None = None,
1783
+ *,
1784
+ keepdims: Literal[True],
1785
+ ) -> _MaskedArray[bool_]: ...
1786
+ @overload
1787
+ def any(
1788
+ self,
1789
+ axis: _ShapeLike | None,
1790
+ out: None,
1791
+ keepdims: Literal[True],
1792
+ ) -> _MaskedArray[bool_]: ...
1793
+ @overload
1794
+ def any(
1795
+ self,
1796
+ axis: _ShapeLike | None = None,
1797
+ out: None = None,
1798
+ keepdims: bool | _NoValueType = ...,
1799
+ ) -> bool_ | _MaskedArray[bool_]: ...
1800
+ @overload
1801
+ def any(
1802
+ self,
1803
+ axis: _ShapeLike | None = None,
1804
+ *,
1805
+ out: _ArrayT,
1806
+ keepdims: bool | _NoValueType = ...,
1807
+ ) -> _ArrayT: ...
1808
+ @overload
1809
+ def any(
1810
+ self,
1811
+ axis: _ShapeLike | None,
1812
+ out: _ArrayT,
1813
+ keepdims: bool | _NoValueType = ...,
1814
+ ) -> _ArrayT: ...
1815
+
1816
+ # Keep in sync with `ndarray.trace` and `ma.core.trace`
1817
+ @overload
1818
+ def trace(
1819
+ self, # >= 2D MaskedArray
1820
+ offset: SupportsIndex = 0,
1821
+ axis1: SupportsIndex = 0,
1822
+ axis2: SupportsIndex = 1,
1823
+ dtype: DTypeLike | None = None,
1824
+ out: None = None,
1825
+ ) -> Any: ...
1826
+ @overload
1827
+ def trace(
1828
+ self, # >= 2D MaskedArray
1829
+ offset: SupportsIndex = 0,
1830
+ axis1: SupportsIndex = 0,
1831
+ axis2: SupportsIndex = 1,
1832
+ dtype: DTypeLike | None = None,
1833
+ *,
1834
+ out: _ArrayT,
1835
+ ) -> _ArrayT: ...
1836
+ @overload
1837
+ def trace(
1838
+ self, # >= 2D MaskedArray
1839
+ offset: SupportsIndex,
1840
+ axis1: SupportsIndex,
1841
+ axis2: SupportsIndex,
1842
+ dtype: DTypeLike | None,
1843
+ out: _ArrayT,
1844
+ ) -> _ArrayT: ...
1845
+
1846
+ # This differs from `ndarray.dot`, in that 1D dot 1D returns a 0D array.
1847
+ @overload
1848
+ def dot(self, b: ArrayLike, out: None = None, strict: bool = False) -> _MaskedArray[Any]: ...
1849
+ @overload
1850
+ def dot(self, b: ArrayLike, out: _ArrayT, strict: bool = False) -> _ArrayT: ...
1851
+
1852
+ # Keep in sync with `ma.core.sum`
1853
+ @overload # type: ignore[override]
1854
+ def sum(
1855
+ self,
1856
+ /,
1857
+ axis: _ShapeLike | None = None,
1858
+ dtype: DTypeLike | None = None,
1859
+ out: None = None,
1860
+ keepdims: bool | _NoValueType = ...,
1861
+ ) -> Any: ...
1862
+ @overload
1863
+ def sum(
1864
+ self,
1865
+ /,
1866
+ axis: _ShapeLike | None,
1867
+ dtype: DTypeLike | None,
1868
+ out: _ArrayT,
1869
+ keepdims: bool | _NoValueType = ...,
1870
+ ) -> _ArrayT: ...
1871
+ @overload
1872
+ def sum(
1873
+ self,
1874
+ /,
1875
+ axis: _ShapeLike | None = None,
1876
+ dtype: DTypeLike | None = None,
1877
+ *,
1878
+ out: _ArrayT,
1879
+ keepdims: bool | _NoValueType = ...,
1880
+ ) -> _ArrayT: ...
1881
+
1882
+ # Keep in sync with `ndarray.cumsum` and `ma.core.cumsum`
1883
+ @overload # out: None (default)
1884
+ def cumsum(self, /, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, out: None = None) -> _MaskedArray[Any]: ...
1885
+ @overload # out: ndarray
1886
+ def cumsum(self, /, axis: SupportsIndex | None, dtype: DTypeLike | None, out: _ArrayT) -> _ArrayT: ...
1887
+ @overload
1888
+ def cumsum(self, /, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, *, out: _ArrayT) -> _ArrayT: ...
1889
+
1890
+ # Keep in sync with `ma.core.prod`
1891
+ @overload # type: ignore[override]
1892
+ def prod(
1893
+ self,
1894
+ /,
1895
+ axis: _ShapeLike | None = None,
1896
+ dtype: DTypeLike | None = None,
1897
+ out: None = None,
1898
+ keepdims: bool | _NoValueType = ...,
1899
+ ) -> Any: ...
1900
+ @overload
1901
+ def prod(
1902
+ self,
1903
+ /,
1904
+ axis: _ShapeLike | None,
1905
+ dtype: DTypeLike | None,
1906
+ out: _ArrayT,
1907
+ keepdims: bool | _NoValueType = ...,
1908
+ ) -> _ArrayT: ...
1909
+ @overload
1910
+ def prod(
1911
+ self,
1912
+ /,
1913
+ axis: _ShapeLike | None = None,
1914
+ dtype: DTypeLike | None = None,
1915
+ *,
1916
+ out: _ArrayT,
1917
+ keepdims: bool | _NoValueType = ...,
1918
+ ) -> _ArrayT: ...
1919
+
1920
+ product = prod
1921
+
1922
+ # Keep in sync with `ndarray.cumprod` and `ma.core.cumprod`
1923
+ @overload # out: None (default)
1924
+ def cumprod(self, /, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, out: None = None) -> _MaskedArray[Any]: ...
1925
+ @overload # out: ndarray
1926
+ def cumprod(self, /, axis: SupportsIndex | None, dtype: DTypeLike | None, out: _ArrayT) -> _ArrayT: ...
1927
+ @overload
1928
+ def cumprod(self, /, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, *, out: _ArrayT) -> _ArrayT: ...
1929
+
1930
+ # Keep in sync with `ma.core.mean`
1931
+ @overload # type: ignore[override]
1932
+ def mean(
1933
+ self,
1934
+ axis: _ShapeLike | None = None,
1935
+ dtype: DTypeLike | None = None,
1936
+ out: None = None,
1937
+ keepdims: bool | _NoValueType = ...,
1938
+ ) -> Any: ...
1939
+ @overload
1940
+ def mean(
1941
+ self,
1942
+ /,
1943
+ axis: _ShapeLike | None,
1944
+ dtype: DTypeLike | None,
1945
+ out: _ArrayT,
1946
+ keepdims: bool | _NoValueType = ...,
1947
+ ) -> _ArrayT: ...
1948
+ @overload
1949
+ def mean(
1950
+ self,
1951
+ /,
1952
+ axis: _ShapeLike | None = None,
1953
+ dtype: DTypeLike | None = None,
1954
+ *,
1955
+ out: _ArrayT,
1956
+ keepdims: bool | _NoValueType = ...,
1957
+ ) -> _ArrayT: ...
1958
+
1959
+ # keep roughly in sync with `ma.core.anom`
1960
+ @overload
1961
+ def anom(self, axis: SupportsIndex | None = None, dtype: None = None) -> Self: ...
1962
+ @overload
1963
+ def anom(self, axis: SupportsIndex | None = None, *, dtype: DTypeLike) -> MaskedArray[_ShapeT_co, dtype]: ...
1964
+ @overload
1965
+ def anom(self, axis: SupportsIndex | None, dtype: DTypeLike) -> MaskedArray[_ShapeT_co, dtype]: ...
1966
+
1967
+ # keep in sync with `std` and `ma.core.var`
1968
+ @overload # type: ignore[override]
1969
+ def var(
1970
+ self,
1971
+ axis: _ShapeLike | None = None,
1972
+ dtype: DTypeLike | None = None,
1973
+ out: None = None,
1974
+ ddof: float = 0,
1975
+ keepdims: bool | _NoValueType = ...,
1976
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
1977
+ ) -> Any: ...
1978
+ @overload
1979
+ def var(
1980
+ self,
1981
+ axis: _ShapeLike | None,
1982
+ dtype: DTypeLike | None,
1983
+ out: _ArrayT,
1984
+ ddof: float = 0,
1985
+ keepdims: bool | _NoValueType = ...,
1986
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
1987
+ ) -> _ArrayT: ...
1988
+ @overload
1989
+ def var(
1990
+ self,
1991
+ axis: _ShapeLike | None = None,
1992
+ dtype: DTypeLike | None = None,
1993
+ *,
1994
+ out: _ArrayT,
1995
+ ddof: float = 0,
1996
+ keepdims: bool | _NoValueType = ...,
1997
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
1998
+ ) -> _ArrayT: ...
1999
+
2000
+ # keep in sync with `var` and `ma.core.std`
2001
+ @overload # type: ignore[override]
2002
+ def std(
2003
+ self,
2004
+ axis: _ShapeLike | None = None,
2005
+ dtype: DTypeLike | None = None,
2006
+ out: None = None,
2007
+ ddof: float = 0,
2008
+ keepdims: bool | _NoValueType = ...,
2009
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
2010
+ ) -> Any: ...
2011
+ @overload
2012
+ def std(
2013
+ self,
2014
+ axis: _ShapeLike | None,
2015
+ dtype: DTypeLike | None,
2016
+ out: _ArrayT,
2017
+ ddof: float = 0,
2018
+ keepdims: bool | _NoValueType = ...,
2019
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
2020
+ ) -> _ArrayT: ...
2021
+ @overload
2022
+ def std(
2023
+ self,
2024
+ axis: _ShapeLike | None = None,
2025
+ dtype: DTypeLike | None = None,
2026
+ *,
2027
+ out: _ArrayT,
2028
+ ddof: float = 0,
2029
+ keepdims: bool | _NoValueType = ...,
2030
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
2031
+ ) -> _ArrayT: ...
2032
+
2033
+ # Keep in sync with `ndarray.round`
2034
+ @overload # out=None (default)
2035
+ def round(self, /, decimals: SupportsIndex = 0, out: None = None) -> Self: ...
2036
+ @overload # out=ndarray
2037
+ def round(self, /, decimals: SupportsIndex, out: _ArrayT) -> _ArrayT: ...
2038
+ @overload
2039
+ def round(self, /, decimals: SupportsIndex = 0, *, out: _ArrayT) -> _ArrayT: ...
2040
+
2041
+ def argsort( # type: ignore[override]
2042
+ self,
2043
+ axis: SupportsIndex | _NoValueType = ...,
2044
+ kind: _SortKind | None = None,
2045
+ order: str | Sequence[str] | None = None,
2046
+ endwith: bool = True,
2047
+ fill_value: _ScalarLike_co | None = None,
2048
+ *,
2049
+ stable: bool = False,
2050
+ ) -> _MaskedArray[intp]: ...
2051
+
2052
+ # Keep in-sync with np.ma.argmin
2053
+ @overload # type: ignore[override]
2054
+ def argmin(
2055
+ self,
2056
+ axis: None = None,
2057
+ fill_value: _ScalarLike_co | None = None,
2058
+ out: None = None,
2059
+ *,
2060
+ keepdims: Literal[False] | _NoValueType = ...,
2061
+ ) -> intp: ...
2062
+ @overload
2063
+ def argmin(
2064
+ self,
2065
+ axis: SupportsIndex | None = None,
2066
+ fill_value: _ScalarLike_co | None = None,
2067
+ out: None = None,
2068
+ *,
2069
+ keepdims: bool | _NoValueType = ...,
2070
+ ) -> Any: ...
2071
+ @overload
2072
+ def argmin(
2073
+ self,
2074
+ axis: SupportsIndex | None = None,
2075
+ fill_value: _ScalarLike_co | None = None,
2076
+ *,
2077
+ out: _ArrayT,
2078
+ keepdims: bool | _NoValueType = ...,
2079
+ ) -> _ArrayT: ...
2080
+ @overload
2081
+ def argmin(
2082
+ self,
2083
+ axis: SupportsIndex | None,
2084
+ fill_value: _ScalarLike_co | None,
2085
+ out: _ArrayT,
2086
+ *,
2087
+ keepdims: bool | _NoValueType = ...,
2088
+ ) -> _ArrayT: ...
2089
+
2090
+ # Keep in-sync with np.ma.argmax
2091
+ @overload # type: ignore[override]
2092
+ def argmax(
2093
+ self,
2094
+ axis: None = None,
2095
+ fill_value: _ScalarLike_co | None = None,
2096
+ out: None = None,
2097
+ *,
2098
+ keepdims: Literal[False] | _NoValueType = ...,
2099
+ ) -> intp: ...
2100
+ @overload
2101
+ def argmax(
2102
+ self,
2103
+ axis: SupportsIndex | None = None,
2104
+ fill_value: _ScalarLike_co | None = None,
2105
+ out: None = None,
2106
+ *,
2107
+ keepdims: bool | _NoValueType = ...,
2108
+ ) -> Any: ...
2109
+ @overload
2110
+ def argmax(
2111
+ self,
2112
+ axis: SupportsIndex | None = None,
2113
+ fill_value: _ScalarLike_co | None = None,
2114
+ *,
2115
+ out: _ArrayT,
2116
+ keepdims: bool | _NoValueType = ...,
2117
+ ) -> _ArrayT: ...
2118
+ @overload
2119
+ def argmax(
2120
+ self,
2121
+ axis: SupportsIndex | None,
2122
+ fill_value: _ScalarLike_co | None,
2123
+ out: _ArrayT,
2124
+ *,
2125
+ keepdims: bool | _NoValueType = ...,
2126
+ ) -> _ArrayT: ...
2127
+
2128
+ #
2129
+ def sort( # type: ignore[override]
2130
+ self,
2131
+ axis: SupportsIndex = -1,
2132
+ kind: _SortKind | None = None,
2133
+ order: str | Sequence[str] | None = None,
2134
+ endwith: bool | None = True,
2135
+ fill_value: _ScalarLike_co | None = None,
2136
+ *,
2137
+ stable: Literal[False] | None = False,
2138
+ ) -> None: ...
2139
+
2140
+ #
2141
+ @overload # type: ignore[override]
2142
+ def min(
2143
+ self: _MaskedArray[_ScalarT],
2144
+ axis: None = None,
2145
+ out: None = None,
2146
+ fill_value: _ScalarLike_co | None = None,
2147
+ keepdims: Literal[False] | _NoValueType = ...,
2148
+ ) -> _ScalarT: ...
2149
+ @overload
2150
+ def min(
2151
+ self,
2152
+ axis: _ShapeLike | None = None,
2153
+ out: None = None,
2154
+ fill_value: _ScalarLike_co | None = None,
2155
+ keepdims: bool | _NoValueType = ...
2156
+ ) -> Any: ...
2157
+ @overload
2158
+ def min(
2159
+ self,
2160
+ axis: _ShapeLike | None,
2161
+ out: _ArrayT,
2162
+ fill_value: _ScalarLike_co | None = None,
2163
+ keepdims: bool | _NoValueType = ...,
2164
+ ) -> _ArrayT: ...
2165
+ @overload
2166
+ def min(
2167
+ self,
2168
+ axis: _ShapeLike | None = None,
2169
+ *,
2170
+ out: _ArrayT,
2171
+ fill_value: _ScalarLike_co | None = None,
2172
+ keepdims: bool | _NoValueType = ...,
2173
+ ) -> _ArrayT: ...
2174
+
2175
+ #
2176
+ @overload # type: ignore[override]
2177
+ def max(
2178
+ self: _MaskedArray[_ScalarT],
2179
+ axis: None = None,
2180
+ out: None = None,
2181
+ fill_value: _ScalarLike_co | None = None,
2182
+ keepdims: Literal[False] | _NoValueType = ...,
2183
+ ) -> _ScalarT: ...
2184
+ @overload
2185
+ def max(
2186
+ self,
2187
+ axis: _ShapeLike | None = None,
2188
+ out: None = None,
2189
+ fill_value: _ScalarLike_co | None = None,
2190
+ keepdims: bool | _NoValueType = ...
2191
+ ) -> Any: ...
2192
+ @overload
2193
+ def max(
2194
+ self,
2195
+ axis: _ShapeLike | None,
2196
+ out: _ArrayT,
2197
+ fill_value: _ScalarLike_co | None = None,
2198
+ keepdims: bool | _NoValueType = ...,
2199
+ ) -> _ArrayT: ...
2200
+ @overload
2201
+ def max(
2202
+ self,
2203
+ axis: _ShapeLike | None = None,
2204
+ *,
2205
+ out: _ArrayT,
2206
+ fill_value: _ScalarLike_co | None = None,
2207
+ keepdims: bool | _NoValueType = ...,
2208
+ ) -> _ArrayT: ...
2209
+
2210
+ #
2211
+ @overload
2212
+ def ptp(
2213
+ self: _MaskedArray[_ScalarT],
2214
+ axis: None = None,
2215
+ out: None = None,
2216
+ fill_value: _ScalarLike_co | None = None,
2217
+ keepdims: Literal[False] = False,
2218
+ ) -> _ScalarT: ...
2219
+ @overload
2220
+ def ptp(
2221
+ self,
2222
+ axis: _ShapeLike | None = None,
2223
+ out: None = None,
2224
+ fill_value: _ScalarLike_co | None = None,
2225
+ keepdims: bool = False,
2226
+ ) -> Any: ...
2227
+ @overload
2228
+ def ptp(
2229
+ self,
2230
+ axis: _ShapeLike | None,
2231
+ out: _ArrayT,
2232
+ fill_value: _ScalarLike_co | None = None,
2233
+ keepdims: bool = False,
2234
+ ) -> _ArrayT: ...
2235
+ @overload
2236
+ def ptp(
2237
+ self,
2238
+ axis: _ShapeLike | None = None,
2239
+ *,
2240
+ out: _ArrayT,
2241
+ fill_value: _ScalarLike_co | None = None,
2242
+ keepdims: bool = False,
2243
+ ) -> _ArrayT: ...
2244
+
2245
+ #
2246
+ @overload
2247
+ def partition(
2248
+ self,
2249
+ /,
2250
+ kth: _ArrayLikeInt,
2251
+ axis: SupportsIndex = -1,
2252
+ kind: _PartitionKind = "introselect",
2253
+ order: None = None
2254
+ ) -> None: ...
2255
+ @overload
2256
+ def partition(
2257
+ self: _MaskedArray[np.void],
2258
+ /,
2259
+ kth: _ArrayLikeInt,
2260
+ axis: SupportsIndex = -1,
2261
+ kind: _PartitionKind = "introselect",
2262
+ order: str | Sequence[str] | None = None,
2263
+ ) -> None: ...
2264
+
2265
+ #
2266
+ @overload
2267
+ def argpartition(
2268
+ self,
2269
+ /,
2270
+ kth: _ArrayLikeInt,
2271
+ axis: SupportsIndex | None = -1,
2272
+ kind: _PartitionKind = "introselect",
2273
+ order: None = None,
2274
+ ) -> _MaskedArray[intp]: ...
2275
+ @overload
2276
+ def argpartition(
2277
+ self: _MaskedArray[np.void],
2278
+ /,
2279
+ kth: _ArrayLikeInt,
2280
+ axis: SupportsIndex | None = -1,
2281
+ kind: _PartitionKind = "introselect",
2282
+ order: str | Sequence[str] | None = None,
2283
+ ) -> _MaskedArray[intp]: ...
2284
+
2285
+ # Keep in-sync with np.ma.take
2286
+ @overload # type: ignore[override]
2287
+ def take( # type: ignore[overload-overlap]
2288
+ self: _MaskedArray[_ScalarT],
2289
+ indices: _IntLike_co,
2290
+ axis: None = None,
2291
+ out: None = None,
2292
+ mode: _ModeKind = "raise"
2293
+ ) -> _ScalarT: ...
2294
+ @overload
2295
+ def take(
2296
+ self: _MaskedArray[_ScalarT],
2297
+ indices: _ArrayLikeInt_co,
2298
+ axis: SupportsIndex | None = None,
2299
+ out: None = None,
2300
+ mode: _ModeKind = "raise",
2301
+ ) -> _MaskedArray[_ScalarT]: ...
2302
+ @overload
2303
+ def take(
2304
+ self,
2305
+ indices: _ArrayLikeInt_co,
2306
+ axis: SupportsIndex | None,
2307
+ out: _ArrayT,
2308
+ mode: _ModeKind = "raise",
2309
+ ) -> _ArrayT: ...
2310
+ @overload
2311
+ def take(
2312
+ self,
2313
+ indices: _ArrayLikeInt_co,
2314
+ axis: SupportsIndex | None = None,
2315
+ *,
2316
+ out: _ArrayT,
2317
+ mode: _ModeKind = "raise",
2318
+ ) -> _ArrayT: ...
2319
+
2320
+ # keep in sync with `ndarray.diagonal`
2321
+ @override
2322
+ def diagonal(
2323
+ self,
2324
+ /,
2325
+ offset: SupportsIndex = 0,
2326
+ axis1: SupportsIndex = 0,
2327
+ axis2: SupportsIndex = 1,
2328
+ ) -> MaskedArray[_AnyShape, _DTypeT_co]: ...
2329
+
2330
+ # keep in sync with `ndarray.repeat`
2331
+ @override
2332
+ @overload
2333
+ def repeat(
2334
+ self,
2335
+ /,
2336
+ repeats: _ArrayLikeInt_co,
2337
+ axis: None = None,
2338
+ ) -> MaskedArray[tuple[int], _DTypeT_co]: ...
2339
+ @overload
2340
+ def repeat(
2341
+ self,
2342
+ /,
2343
+ repeats: _ArrayLikeInt_co,
2344
+ axis: SupportsIndex,
2345
+ ) -> MaskedArray[_AnyShape, _DTypeT_co]: ...
2346
+
2347
+ # keep in sync with `ndarray.flatten` and `ndarray.ravel`
2348
+ @override
2349
+ def flatten(self, /, order: _OrderKACF = "C") -> MaskedArray[tuple[int], _DTypeT_co]: ...
2350
+ @override
2351
+ def ravel(self, order: _OrderKACF = "C") -> MaskedArray[tuple[int], _DTypeT_co]: ...
2352
+
2353
+ # keep in sync with `ndarray.squeeze`
2354
+ @override
2355
+ def squeeze(
2356
+ self,
2357
+ /,
2358
+ axis: SupportsIndex | tuple[SupportsIndex, ...] | None = None,
2359
+ ) -> MaskedArray[_AnyShape, _DTypeT_co]: ...
2360
+
2361
+ #
2362
+ def toflex(self) -> MaskedArray[_ShapeT_co, np.dtype[np.void]]: ...
2363
+ def torecords(self) -> MaskedArray[_ShapeT_co, np.dtype[np.void]]: ...
2364
+
2365
+ #
2366
+ @override
2367
+ def tobytes(self, /, fill_value: Incomplete | None = None, order: _OrderKACF = "C") -> bytes: ... # type: ignore[override]
2368
+
2369
+ # keep in sync with `ndarray.tolist`
2370
+ @override
2371
+ @overload
2372
+ def tolist(self: MaskedArray[tuple[Never], dtype[generic[_T]]], /, fill_value: _ScalarLike_co | None = None) -> Any: ...
2373
+ @overload
2374
+ def tolist(self: MaskedArray[tuple[()], dtype[generic[_T]]], /, fill_value: _ScalarLike_co | None = None) -> _T: ...
2375
+ @overload
2376
+ def tolist(self: MaskedArray[tuple[int], dtype[generic[_T]]], /, fill_value: _ScalarLike_co | None = None) -> list[_T]: ...
2377
+ @overload
2378
+ def tolist(
2379
+ self: MaskedArray[tuple[int, int], dtype[generic[_T]]], /, fill_value: _ScalarLike_co | None = None
2380
+ ) -> list[list[_T]]: ...
2381
+ @overload
2382
+ def tolist(
2383
+ self: MaskedArray[tuple[int, int, int], dtype[generic[_T]]], /, fill_value: _ScalarLike_co | None = None
2384
+ ) -> list[list[list[_T]]]: ...
2385
+ @overload
2386
+ def tolist(self, /, fill_value: _ScalarLike_co | None = None) -> Any: ...
2387
+
2388
+ # NOTE: will raise `NotImplementedError`
2389
+ @override
2390
+ def tofile(self, /, fid: Never, sep: str = "", format: str = "%s") -> NoReturn: ... # type: ignore[override]
2391
+
2392
+ #
2393
+ @override
2394
+ def __deepcopy__(self, memo: dict[int, Any] | None = None) -> Self: ...
2395
+
2396
+ # Keep `dtype` at the bottom to avoid name conflicts with `np.dtype`
2397
+ @property
2398
+ def dtype(self) -> _DTypeT_co: ...
2399
+ @dtype.setter
2400
+ def dtype(self: MaskedArray[_AnyShape, _DTypeT], dtype: _DTypeT, /) -> None: ...
2401
+
2402
+ class mvoid(MaskedArray[_ShapeT_co, _DTypeT_co]):
2403
+ def __new__(
2404
+ self, # pyright: ignore[reportSelfClsParameterName]
2405
+ data,
2406
+ mask=...,
2407
+ dtype=...,
2408
+ fill_value=...,
2409
+ hardmask=...,
2410
+ copy=...,
2411
+ subok=...,
2412
+ ): ...
2413
+ def __getitem__(self, indx): ...
2414
+ def __setitem__(self, indx, value): ...
2415
+ def __iter__(self): ...
2416
+ def __len__(self): ...
2417
+ def filled(self, fill_value=None): ...
2418
+ def tolist(self): ... # type: ignore[override]
2419
+
2420
+ def isMaskedArray(x: object) -> TypeIs[MaskedArray]: ...
2421
+ def isarray(x: object) -> TypeIs[MaskedArray]: ... # alias to isMaskedArray
2422
+ def isMA(x: object) -> TypeIs[MaskedArray]: ... # alias to isMaskedArray
2423
+
2424
+ # 0D float64 array
2425
+ class MaskedConstant(MaskedArray[tuple[()], dtype[float64]]):
2426
+ def __new__(cls) -> Self: ...
2427
+
2428
+ # these overrides are no-ops
2429
+ @override
2430
+ def __iadd__(self, other: _Ignored, /) -> Self: ... # type: ignore[override]
2431
+ @override
2432
+ def __isub__(self, other: _Ignored, /) -> Self: ... # type: ignore[override]
2433
+ @override
2434
+ def __imul__(self, other: _Ignored, /) -> Self: ... # type: ignore[override]
2435
+ @override
2436
+ def __ifloordiv__(self, other: _Ignored, /) -> Self: ...
2437
+ @override
2438
+ def __itruediv__(self, other: _Ignored, /) -> Self: ... # type: ignore[override]
2439
+ @override
2440
+ def __ipow__(self, other: _Ignored, /) -> Self: ... # type: ignore[override]
2441
+ @override
2442
+ def __deepcopy__(self, /, memo: _Ignored) -> Self: ... # type: ignore[override]
2443
+ @override
2444
+ def copy(self, /, *args: _Ignored, **kwargs: _Ignored) -> Self: ...
2445
+
2446
+ masked: Final[MaskedConstant] = ...
2447
+ masked_singleton: Final[MaskedConstant] = ...
2448
+
2449
+ masked_array: TypeAlias = MaskedArray
2450
+
2451
+ # keep in sync with `MaskedArray.__new__`
2452
+ @overload
2453
+ def array(
2454
+ data: _ArrayLike[_ScalarT],
2455
+ dtype: None = None,
2456
+ copy: bool = False,
2457
+ order: _OrderKACF | None = None,
2458
+ mask: _ArrayLikeBool_co = nomask,
2459
+ fill_value: _ScalarLike_co | None = None,
2460
+ keep_mask: bool = True,
2461
+ hard_mask: bool = False,
2462
+ shrink: bool = True,
2463
+ subok: bool = True,
2464
+ ndmin: int = 0,
2465
+ ) -> _MaskedArray[_ScalarT]: ...
2466
+ @overload
2467
+ def array(
2468
+ data: object,
2469
+ dtype: _DTypeLike[_ScalarT],
2470
+ copy: bool = False,
2471
+ order: _OrderKACF | None = None,
2472
+ mask: _ArrayLikeBool_co = nomask,
2473
+ fill_value: _ScalarLike_co | None = None,
2474
+ keep_mask: bool = True,
2475
+ hard_mask: bool = False,
2476
+ shrink: bool = True,
2477
+ subok: bool = True,
2478
+ ndmin: int = 0,
2479
+ ) -> _MaskedArray[_ScalarT]: ...
2480
+ @overload
2481
+ def array(
2482
+ data: object,
2483
+ dtype: DTypeLike | None = None,
2484
+ copy: bool = False,
2485
+ order: _OrderKACF | None = None,
2486
+ mask: _ArrayLikeBool_co = nomask,
2487
+ fill_value: _ScalarLike_co | None = None,
2488
+ keep_mask: bool = True,
2489
+ hard_mask: bool = False,
2490
+ shrink: bool = True,
2491
+ subok: bool = True,
2492
+ ndmin: int = 0,
2493
+ ) -> _MaskedArray[_ScalarT]: ...
2494
+
2495
+ # keep in sync with `array`
2496
+ @overload
2497
+ def asarray(a: _ArrayLike[_ScalarT], dtype: None = None, order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ...
2498
+ @overload
2499
+ def asarray(a: object, dtype: _DTypeLike[_ScalarT], order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ...
2500
+ @overload
2501
+ def asarray(a: object, dtype: DTypeLike | None = None, order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ...
2502
+
2503
+ # keep in sync with `asarray` (but note the additional first overload)
2504
+ @overload
2505
+ def asanyarray(a: _MArrayT, dtype: None = None, order: _OrderKACF | None = None) -> _MArrayT: ...
2506
+ @overload
2507
+ def asanyarray(a: _ArrayLike[_ScalarT], dtype: None = None, order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ...
2508
+ @overload
2509
+ def asanyarray(a: object, dtype: _DTypeLike[_ScalarT], order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ...
2510
+ @overload
2511
+ def asanyarray(a: object, dtype: DTypeLike | None = None, order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ...
2512
+
2513
+ #
2514
+ def is_masked(x: object) -> bool: ...
2515
+
2516
+ @overload
2517
+ def min(
2518
+ obj: _ArrayLike[_ScalarT],
2519
+ axis: None = None,
2520
+ out: None = None,
2521
+ fill_value: _ScalarLike_co | None = None,
2522
+ keepdims: Literal[False] | _NoValueType = ...,
2523
+ ) -> _ScalarT: ...
2524
+ @overload
2525
+ def min(
2526
+ obj: ArrayLike,
2527
+ axis: _ShapeLike | None = None,
2528
+ out: None = None,
2529
+ fill_value: _ScalarLike_co | None = None,
2530
+ keepdims: bool | _NoValueType = ...
2531
+ ) -> Any: ...
2532
+ @overload
2533
+ def min(
2534
+ obj: ArrayLike,
2535
+ axis: _ShapeLike | None,
2536
+ out: _ArrayT,
2537
+ fill_value: _ScalarLike_co | None = None,
2538
+ keepdims: bool | _NoValueType = ...,
2539
+ ) -> _ArrayT: ...
2540
+ @overload
2541
+ def min(
2542
+ obj: ArrayLike,
2543
+ axis: _ShapeLike | None = None,
2544
+ *,
2545
+ out: _ArrayT,
2546
+ fill_value: _ScalarLike_co | None = None,
2547
+ keepdims: bool | _NoValueType = ...,
2548
+ ) -> _ArrayT: ...
2549
+
2550
+ @overload
2551
+ def max(
2552
+ obj: _ArrayLike[_ScalarT],
2553
+ axis: None = None,
2554
+ out: None = None,
2555
+ fill_value: _ScalarLike_co | None = None,
2556
+ keepdims: Literal[False] | _NoValueType = ...,
2557
+ ) -> _ScalarT: ...
2558
+ @overload
2559
+ def max(
2560
+ obj: ArrayLike,
2561
+ axis: _ShapeLike | None = None,
2562
+ out: None = None,
2563
+ fill_value: _ScalarLike_co | None = None,
2564
+ keepdims: bool | _NoValueType = ...
2565
+ ) -> Any: ...
2566
+ @overload
2567
+ def max(
2568
+ obj: ArrayLike,
2569
+ axis: _ShapeLike | None,
2570
+ out: _ArrayT,
2571
+ fill_value: _ScalarLike_co | None = None,
2572
+ keepdims: bool | _NoValueType = ...,
2573
+ ) -> _ArrayT: ...
2574
+ @overload
2575
+ def max(
2576
+ obj: ArrayLike,
2577
+ axis: _ShapeLike | None = None,
2578
+ *,
2579
+ out: _ArrayT,
2580
+ fill_value: _ScalarLike_co | None = None,
2581
+ keepdims: bool | _NoValueType = ...,
2582
+ ) -> _ArrayT: ...
2583
+
2584
+ @overload
2585
+ def ptp(
2586
+ obj: _ArrayLike[_ScalarT],
2587
+ axis: None = None,
2588
+ out: None = None,
2589
+ fill_value: _ScalarLike_co | None = None,
2590
+ keepdims: Literal[False] | _NoValueType = ...,
2591
+ ) -> _ScalarT: ...
2592
+ @overload
2593
+ def ptp(
2594
+ obj: ArrayLike,
2595
+ axis: _ShapeLike | None = None,
2596
+ out: None = None,
2597
+ fill_value: _ScalarLike_co | None = None,
2598
+ keepdims: bool | _NoValueType = ...
2599
+ ) -> Any: ...
2600
+ @overload
2601
+ def ptp(
2602
+ obj: ArrayLike,
2603
+ axis: _ShapeLike | None,
2604
+ out: _ArrayT,
2605
+ fill_value: _ScalarLike_co | None = None,
2606
+ keepdims: bool | _NoValueType = ...,
2607
+ ) -> _ArrayT: ...
2608
+ @overload
2609
+ def ptp(
2610
+ obj: ArrayLike,
2611
+ axis: _ShapeLike | None = None,
2612
+ *,
2613
+ out: _ArrayT,
2614
+ fill_value: _ScalarLike_co | None = None,
2615
+ keepdims: bool | _NoValueType = ...,
2616
+ ) -> _ArrayT: ...
2617
+
2618
+ # we cannot meaningfully annotate `frommethod` further, because the callable signature
2619
+ # of the return type fully depends on the *value* of `methodname` and `reversed` in
2620
+ # a way that cannot be expressed in the Python type system.
2621
+ def _frommethod(methodname: str, reversed: bool = False) -> types.FunctionType: ...
2622
+
2623
+ # NOTE: The following `*_mask` functions will accept any array-like input runtime, but
2624
+ # since their use-cases are specific to masks, they only accept `MaskedArray` inputs.
2625
+
2626
+ # keep in sync with `MaskedArray.harden_mask`
2627
+ def harden_mask(a: _MArrayT) -> _MArrayT: ...
2628
+ # keep in sync with `MaskedArray.soften_mask`
2629
+ def soften_mask(a: _MArrayT) -> _MArrayT: ...
2630
+ # keep in sync with `MaskedArray.shrink_mask`
2631
+ def shrink_mask(a: _MArrayT) -> _MArrayT: ...
2632
+
2633
+ # keep in sync with `MaskedArray.ids`
2634
+ def ids(a: ArrayLike) -> tuple[int, int]: ...
2635
+
2636
+ # keep in sync with `ndarray.nonzero`
2637
+ def nonzero(a: ArrayLike) -> tuple[ndarray[tuple[int], np.dtype[intp]], ...]: ...
2638
+
2639
+ # keep first overload in sync with `MaskedArray.ravel`
2640
+ @overload
2641
+ def ravel(a: np.ndarray[Any, _DTypeT], order: _OrderKACF = "C") -> MaskedArray[tuple[int], _DTypeT]: ...
2642
+ @overload
2643
+ def ravel(a: _ArrayLike[_ScalarT], order: _OrderKACF = "C") -> MaskedArray[tuple[int], np.dtype[_ScalarT]]: ...
2644
+ @overload
2645
+ def ravel(a: ArrayLike, order: _OrderKACF = "C") -> MaskedArray[tuple[int], _DTypeT_co]: ...
2646
+
2647
+ # keep roughly in sync with `lib._function_base_impl.copy`
2648
+ @overload
2649
+ def copy(a: _MArrayT, order: _OrderKACF = "C") -> _MArrayT: ...
2650
+ @overload
2651
+ def copy(a: np.ndarray[_ShapeT, _DTypeT], order: _OrderKACF = "C") -> MaskedArray[_ShapeT, _DTypeT]: ...
2652
+ @overload
2653
+ def copy(a: _ArrayLike[_ScalarT], order: _OrderKACF = "C") -> _MaskedArray[_ScalarT]: ...
2654
+ @overload
2655
+ def copy(a: ArrayLike, order: _OrderKACF = "C") -> _MaskedArray[Incomplete]: ...
2656
+
2657
+ # keep in sync with `_core.fromnumeric.diagonal`
2658
+ @overload
2659
+ def diagonal(
2660
+ a: _ArrayLike[_ScalarT],
2661
+ offset: SupportsIndex = 0,
2662
+ axis1: SupportsIndex = 0,
2663
+ axis2: SupportsIndex = 1,
2664
+ ) -> NDArray[_ScalarT]: ...
2665
+ @overload
2666
+ def diagonal(
2667
+ a: ArrayLike,
2668
+ offset: SupportsIndex = 0,
2669
+ axis1: SupportsIndex = 0,
2670
+ axis2: SupportsIndex = 1,
2671
+ ) -> NDArray[Incomplete]: ...
2672
+
2673
+ # keep in sync with `_core.fromnumeric.repeat`
2674
+ @overload
2675
+ def repeat(a: _ArrayLike[_ScalarT], repeats: _ArrayLikeInt_co, axis: None = None) -> MaskedArray[tuple[int], dtype[_ScalarT]]: ...
2676
+ @overload
2677
+ def repeat(a: _ArrayLike[_ScalarT], repeats: _ArrayLikeInt_co, axis: SupportsIndex) -> _MaskedArray[_ScalarT]: ...
2678
+ @overload
2679
+ def repeat(a: ArrayLike, repeats: _ArrayLikeInt_co, axis: None = None) -> MaskedArray[tuple[int], dtype[Incomplete]]: ...
2680
+ @overload
2681
+ def repeat(a: ArrayLike, repeats: _ArrayLikeInt_co, axis: SupportsIndex) -> _MaskedArray[Incomplete]: ...
2682
+
2683
+ # keep in sync with `_core.fromnumeric.swapaxes`
2684
+ @overload
2685
+ def swapaxes(a: _MArrayT, axis1: SupportsIndex, axis2: SupportsIndex) -> _MArrayT: ...
2686
+ @overload
2687
+ def swapaxes(a: _ArrayLike[_ScalarT], axis1: SupportsIndex, axis2: SupportsIndex) -> _MaskedArray[_ScalarT]: ...
2688
+ @overload
2689
+ def swapaxes(a: ArrayLike, axis1: SupportsIndex, axis2: SupportsIndex) -> _MaskedArray[Incomplete]: ...
2690
+
2691
+ # NOTE: The `MaskedArray.anom` definition is specific to `MaskedArray`, so we need
2692
+ # additional overloads to cover the array-like input here.
2693
+ @overload # a: MaskedArray, dtype=None
2694
+ def anom(a: _MArrayT, axis: SupportsIndex | None = None, dtype: None = None) -> _MArrayT: ...
2695
+ @overload # a: array-like, dtype=None
2696
+ def anom(a: _ArrayLike[_ScalarT], axis: SupportsIndex | None = None, dtype: None = None) -> _MaskedArray[_ScalarT]: ...
2697
+ @overload # a: unknown array-like, dtype: dtype-like (positional)
2698
+ def anom(a: ArrayLike, axis: SupportsIndex | None, dtype: _DTypeLike[_ScalarT]) -> _MaskedArray[_ScalarT]: ...
2699
+ @overload # a: unknown array-like, dtype: dtype-like (keyword)
2700
+ def anom(a: ArrayLike, axis: SupportsIndex | None = None, *, dtype: _DTypeLike[_ScalarT]) -> _MaskedArray[_ScalarT]: ...
2701
+ @overload # a: unknown array-like, dtype: unknown dtype-like (positional)
2702
+ def anom(a: ArrayLike, axis: SupportsIndex | None, dtype: DTypeLike) -> _MaskedArray[Incomplete]: ...
2703
+ @overload # a: unknown array-like, dtype: unknown dtype-like (keyword)
2704
+ def anom(a: ArrayLike, axis: SupportsIndex | None = None, *, dtype: DTypeLike) -> _MaskedArray[Incomplete]: ...
2705
+
2706
+ anomalies = anom
2707
+
2708
+ # Keep in sync with `any` and `MaskedArray.all`
2709
+ @overload
2710
+ def all(a: ArrayLike, axis: None = None, out: None = None, keepdims: Literal[False] | _NoValueType = ...) -> np.bool: ...
2711
+ @overload
2712
+ def all(a: ArrayLike, axis: _ShapeLike | None, out: None, keepdims: Literal[True]) -> _MaskedArray[np.bool]: ...
2713
+ @overload
2714
+ def all(a: ArrayLike, axis: _ShapeLike | None = None, out: None = None, *, keepdims: Literal[True]) -> _MaskedArray[np.bool]: ...
2715
+ @overload
2716
+ def all(
2717
+ a: ArrayLike, axis: _ShapeLike | None = None, out: None = None, keepdims: bool | _NoValueType = ...
2718
+ ) -> np.bool | _MaskedArray[np.bool]: ...
2719
+ @overload
2720
+ def all(a: ArrayLike, axis: _ShapeLike | None, out: _ArrayT, keepdims: bool | _NoValueType = ...) -> _ArrayT: ...
2721
+ @overload
2722
+ def all(a: ArrayLike, axis: _ShapeLike | None = None, *, out: _ArrayT, keepdims: bool | _NoValueType = ...) -> _ArrayT: ...
2723
+
2724
+ # Keep in sync with `all` and `MaskedArray.any`
2725
+ @overload
2726
+ def any(a: ArrayLike, axis: None = None, out: None = None, keepdims: Literal[False] | _NoValueType = ...) -> np.bool: ...
2727
+ @overload
2728
+ def any(a: ArrayLike, axis: _ShapeLike | None, out: None, keepdims: Literal[True]) -> _MaskedArray[np.bool]: ...
2729
+ @overload
2730
+ def any(a: ArrayLike, axis: _ShapeLike | None = None, out: None = None, *, keepdims: Literal[True]) -> _MaskedArray[np.bool]: ...
2731
+ @overload
2732
+ def any(
2733
+ a: ArrayLike, axis: _ShapeLike | None = None, out: None = None, keepdims: bool | _NoValueType = ...
2734
+ ) -> np.bool | _MaskedArray[np.bool]: ...
2735
+ @overload
2736
+ def any(a: ArrayLike, axis: _ShapeLike | None, out: _ArrayT, keepdims: bool | _NoValueType = ...) -> _ArrayT: ...
2737
+ @overload
2738
+ def any(a: ArrayLike, axis: _ShapeLike | None = None, *, out: _ArrayT, keepdims: bool | _NoValueType = ...) -> _ArrayT: ...
2739
+
2740
+ # NOTE: The `MaskedArray.compress` definition uses its `DTypeT_co` type parameter,
2741
+ # which wouldn't work here for array-like inputs, so we need additional overloads.
2742
+ @overload
2743
+ def compress(
2744
+ condition: _ArrayLikeBool_co, a: _ArrayLike[_ScalarT], axis: None = None, out: None = None
2745
+ ) -> MaskedArray[tuple[int], np.dtype[_ScalarT]]: ...
2746
+ @overload
2747
+ def compress(
2748
+ condition: _ArrayLikeBool_co, a: _ArrayLike[_ScalarT], axis: _ShapeLike | None = None, out: None = None
2749
+ ) -> MaskedArray[_AnyShape, np.dtype[_ScalarT]]: ...
2750
+ @overload
2751
+ def compress(condition: _ArrayLikeBool_co, a: ArrayLike, axis: None = None, out: None = None) -> MaskedArray[tuple[int]]: ...
2752
+ @overload
2753
+ def compress(
2754
+ condition: _ArrayLikeBool_co, a: ArrayLike, axis: _ShapeLike | None = None, out: None = None
2755
+ ) -> _MaskedArray[Incomplete]: ...
2756
+ @overload
2757
+ def compress(condition: _ArrayLikeBool_co, a: ArrayLike, axis: _ShapeLike | None, out: _ArrayT) -> _ArrayT: ...
2758
+ @overload
2759
+ def compress(condition: _ArrayLikeBool_co, a: ArrayLike, axis: _ShapeLike | None = None, *, out: _ArrayT) -> _ArrayT: ...
2760
+
2761
+ # Keep in sync with `cumprod` and `MaskedArray.cumsum`
2762
+ @overload # out: None (default)
2763
+ def cumsum(
2764
+ a: ArrayLike, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, out: None = None
2765
+ ) -> _MaskedArray[Incomplete]: ...
2766
+ @overload # out: ndarray (positional)
2767
+ def cumsum(a: ArrayLike, axis: SupportsIndex | None, dtype: DTypeLike | None, out: _ArrayT) -> _ArrayT: ...
2768
+ @overload # out: ndarray (kwarg)
2769
+ def cumsum(a: ArrayLike, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, *, out: _ArrayT) -> _ArrayT: ...
2770
+
2771
+ # Keep in sync with `cumsum` and `MaskedArray.cumsum`
2772
+ @overload # out: None (default)
2773
+ def cumprod(
2774
+ a: ArrayLike, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, out: None = None
2775
+ ) -> _MaskedArray[Incomplete]: ...
2776
+ @overload # out: ndarray (positional)
2777
+ def cumprod(a: ArrayLike, axis: SupportsIndex | None, dtype: DTypeLike | None, out: _ArrayT) -> _ArrayT: ...
2778
+ @overload # out: ndarray (kwarg)
2779
+ def cumprod(a: ArrayLike, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, *, out: _ArrayT) -> _ArrayT: ...
2780
+
2781
+ # Keep in sync with `sum`, `prod`, `product`, and `MaskedArray.mean`
2782
+ @overload
2783
+ def mean(
2784
+ a: ArrayLike,
2785
+ axis: _ShapeLike | None = None,
2786
+ dtype: DTypeLike | None = None,
2787
+ out: None = None,
2788
+ keepdims: bool | _NoValueType = ...,
2789
+ ) -> Incomplete: ...
2790
+ @overload
2791
+ def mean(
2792
+ a: ArrayLike,
2793
+ axis: _ShapeLike | None,
2794
+ dtype: DTypeLike | None,
2795
+ out: _ArrayT,
2796
+ keepdims: bool | _NoValueType = ...,
2797
+ ) -> _ArrayT: ...
2798
+ @overload
2799
+ def mean(
2800
+ a: ArrayLike,
2801
+ axis: _ShapeLike | None = None,
2802
+ dtype: DTypeLike | None = None,
2803
+ *,
2804
+ out: _ArrayT,
2805
+ keepdims: bool | _NoValueType = ...,
2806
+ ) -> _ArrayT: ...
2807
+
2808
+ # Keep in sync with `mean`, `prod`, `product`, and `MaskedArray.sum`
2809
+ @overload
2810
+ def sum(
2811
+ a: ArrayLike,
2812
+ axis: _ShapeLike | None = None,
2813
+ dtype: DTypeLike | None = None,
2814
+ out: None = None,
2815
+ keepdims: bool | _NoValueType = ...,
2816
+ ) -> Incomplete: ...
2817
+ @overload
2818
+ def sum(
2819
+ a: ArrayLike,
2820
+ axis: _ShapeLike | None,
2821
+ dtype: DTypeLike | None,
2822
+ out: _ArrayT,
2823
+ keepdims: bool | _NoValueType = ...,
2824
+ ) -> _ArrayT: ...
2825
+ @overload
2826
+ def sum(
2827
+ a: ArrayLike,
2828
+ axis: _ShapeLike | None = None,
2829
+ dtype: DTypeLike | None = None,
2830
+ *,
2831
+ out: _ArrayT,
2832
+ keepdims: bool | _NoValueType = ...,
2833
+ ) -> _ArrayT: ...
2834
+
2835
+ # Keep in sync with `product` and `MaskedArray.prod`
2836
+ @overload
2837
+ def prod(
2838
+ a: ArrayLike,
2839
+ axis: _ShapeLike | None = None,
2840
+ dtype: DTypeLike | None = None,
2841
+ out: None = None,
2842
+ keepdims: bool | _NoValueType = ...,
2843
+ ) -> Incomplete: ...
2844
+ @overload
2845
+ def prod(
2846
+ a: ArrayLike,
2847
+ axis: _ShapeLike | None,
2848
+ dtype: DTypeLike | None,
2849
+ out: _ArrayT,
2850
+ keepdims: bool | _NoValueType = ...,
2851
+ ) -> _ArrayT: ...
2852
+ @overload
2853
+ def prod(
2854
+ a: ArrayLike,
2855
+ axis: _ShapeLike | None = None,
2856
+ dtype: DTypeLike | None = None,
2857
+ *,
2858
+ out: _ArrayT,
2859
+ keepdims: bool | _NoValueType = ...,
2860
+ ) -> _ArrayT: ...
2861
+
2862
+ # Keep in sync with `prod` and `MaskedArray.prod`
2863
+ @overload
2864
+ def product(
2865
+ a: ArrayLike,
2866
+ axis: _ShapeLike | None = None,
2867
+ dtype: DTypeLike | None = None,
2868
+ out: None = None,
2869
+ keepdims: bool | _NoValueType = ...,
2870
+ ) -> Incomplete: ...
2871
+ @overload
2872
+ def product(
2873
+ a: ArrayLike,
2874
+ axis: _ShapeLike | None,
2875
+ dtype: DTypeLike | None,
2876
+ out: _ArrayT,
2877
+ keepdims: bool | _NoValueType = ...,
2878
+ ) -> _ArrayT: ...
2879
+ @overload
2880
+ def product(
2881
+ a: ArrayLike,
2882
+ axis: _ShapeLike | None = None,
2883
+ dtype: DTypeLike | None = None,
2884
+ *,
2885
+ out: _ArrayT,
2886
+ keepdims: bool | _NoValueType = ...,
2887
+ ) -> _ArrayT: ...
2888
+
2889
+ # Keep in sync with `MaskedArray.trace` and `_core.fromnumeric.trace`
2890
+ @overload
2891
+ def trace(
2892
+ a: ArrayLike,
2893
+ offset: SupportsIndex = 0,
2894
+ axis1: SupportsIndex = 0,
2895
+ axis2: SupportsIndex = 1,
2896
+ dtype: DTypeLike | None = None,
2897
+ out: None = None,
2898
+ ) -> Incomplete: ...
2899
+ @overload
2900
+ def trace(
2901
+ a: ArrayLike,
2902
+ offset: SupportsIndex,
2903
+ axis1: SupportsIndex,
2904
+ axis2: SupportsIndex,
2905
+ dtype: DTypeLike | None,
2906
+ out: _ArrayT,
2907
+ ) -> _ArrayT: ...
2908
+ @overload
2909
+ def trace(
2910
+ a: ArrayLike,
2911
+ offset: SupportsIndex = 0,
2912
+ axis1: SupportsIndex = 0,
2913
+ axis2: SupportsIndex = 1,
2914
+ dtype: DTypeLike | None = None,
2915
+ *,
2916
+ out: _ArrayT,
2917
+ ) -> _ArrayT: ...
2918
+
2919
+ # keep in sync with `std` and `MaskedArray.var`
2920
+ @overload
2921
+ def std(
2922
+ a: ArrayLike,
2923
+ axis: _ShapeLike | None = None,
2924
+ dtype: DTypeLike | None = None,
2925
+ out: None = None,
2926
+ ddof: float = 0,
2927
+ keepdims: bool | _NoValueType = ...,
2928
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
2929
+ ) -> Incomplete: ...
2930
+ @overload
2931
+ def std(
2932
+ a: ArrayLike,
2933
+ axis: _ShapeLike | None,
2934
+ dtype: DTypeLike | None,
2935
+ out: _ArrayT,
2936
+ ddof: float = 0,
2937
+ keepdims: bool | _NoValueType = ...,
2938
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
2939
+ ) -> _ArrayT: ...
2940
+ @overload
2941
+ def std(
2942
+ a: ArrayLike,
2943
+ axis: _ShapeLike | None = None,
2944
+ dtype: DTypeLike | None = None,
2945
+ *,
2946
+ out: _ArrayT,
2947
+ ddof: float = 0,
2948
+ keepdims: bool | _NoValueType = ...,
2949
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
2950
+ ) -> _ArrayT: ...
2951
+
2952
+ # keep in sync with `std` and `MaskedArray.var`
2953
+ @overload
2954
+ def var(
2955
+ a: ArrayLike,
2956
+ axis: _ShapeLike | None = None,
2957
+ dtype: DTypeLike | None = None,
2958
+ out: None = None,
2959
+ ddof: float = 0,
2960
+ keepdims: bool | _NoValueType = ...,
2961
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
2962
+ ) -> Incomplete: ...
2963
+ @overload
2964
+ def var(
2965
+ a: ArrayLike,
2966
+ axis: _ShapeLike | None,
2967
+ dtype: DTypeLike | None,
2968
+ out: _ArrayT,
2969
+ ddof: float = 0,
2970
+ keepdims: bool | _NoValueType = ...,
2971
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
2972
+ ) -> _ArrayT: ...
2973
+ @overload
2974
+ def var(
2975
+ a: ArrayLike,
2976
+ axis: _ShapeLike | None = None,
2977
+ dtype: DTypeLike | None = None,
2978
+ *,
2979
+ out: _ArrayT,
2980
+ ddof: float = 0,
2981
+ keepdims: bool | _NoValueType = ...,
2982
+ mean: _ArrayLikeNumber_co | _NoValueType = ...,
2983
+ ) -> _ArrayT: ...
2984
+
2985
+ # (a, b)
2986
+ minimum: _extrema_operation = ...
2987
+ maximum: _extrema_operation = ...
2988
+
2989
+ # NOTE: this is a `_frommethod` instance at runtime
2990
+ @overload
2991
+ def count(a: ArrayLike, axis: None = None, keepdims: Literal[False] | _NoValueType = ...) -> int: ...
2992
+ @overload
2993
+ def count(a: ArrayLike, axis: _ShapeLike, keepdims: bool | _NoValueType = ...) -> NDArray[int_]: ...
2994
+ @overload
2995
+ def count(a: ArrayLike, axis: _ShapeLike | None = None, *, keepdims: Literal[True]) -> NDArray[int_]: ...
2996
+ @overload
2997
+ def count(a: ArrayLike, axis: _ShapeLike | None, keepdims: Literal[True]) -> NDArray[int_]: ...
2998
+
2999
+ # NOTE: this is a `_frommethod` instance at runtime
3000
+ @overload
3001
+ def argmin(
3002
+ a: ArrayLike,
3003
+ axis: None = None,
3004
+ fill_value: _ScalarLike_co | None = None,
3005
+ out: None = None,
3006
+ *,
3007
+ keepdims: Literal[False] | _NoValueType = ...,
3008
+ ) -> intp: ...
3009
+ @overload
3010
+ def argmin(
3011
+ a: ArrayLike,
3012
+ axis: SupportsIndex | None = None,
3013
+ fill_value: _ScalarLike_co | None = None,
3014
+ out: None = None,
3015
+ *,
3016
+ keepdims: bool | _NoValueType = ...,
3017
+ ) -> Any: ...
3018
+ @overload
3019
+ def argmin(
3020
+ a: ArrayLike,
3021
+ axis: SupportsIndex | None = None,
3022
+ fill_value: _ScalarLike_co | None = None,
3023
+ *,
3024
+ out: _ArrayT,
3025
+ keepdims: bool | _NoValueType = ...,
3026
+ ) -> _ArrayT: ...
3027
+ @overload
3028
+ def argmin(
3029
+ a: ArrayLike,
3030
+ axis: SupportsIndex | None,
3031
+ fill_value: _ScalarLike_co | None,
3032
+ out: _ArrayT,
3033
+ *,
3034
+ keepdims: bool | _NoValueType = ...,
3035
+ ) -> _ArrayT: ...
3036
+
3037
+ # keep in sync with `argmin`
3038
+ @overload
3039
+ def argmax(
3040
+ a: ArrayLike,
3041
+ axis: None = None,
3042
+ fill_value: _ScalarLike_co | None = None,
3043
+ out: None = None,
3044
+ *,
3045
+ keepdims: Literal[False] | _NoValueType = ...,
3046
+ ) -> intp: ...
3047
+ @overload
3048
+ def argmax(
3049
+ a: ArrayLike,
3050
+ axis: SupportsIndex | None = None,
3051
+ fill_value: _ScalarLike_co | None = None,
3052
+ out: None = None,
3053
+ *,
3054
+ keepdims: bool | _NoValueType = ...,
3055
+ ) -> Any: ...
3056
+ @overload
3057
+ def argmax(
3058
+ a: ArrayLike,
3059
+ axis: SupportsIndex | None = None,
3060
+ fill_value: _ScalarLike_co | None = None,
3061
+ *,
3062
+ out: _ArrayT,
3063
+ keepdims: bool | _NoValueType = ...,
3064
+ ) -> _ArrayT: ...
3065
+ @overload
3066
+ def argmax(
3067
+ a: ArrayLike,
3068
+ axis: SupportsIndex | None,
3069
+ fill_value: _ScalarLike_co | None,
3070
+ out: _ArrayT,
3071
+ *,
3072
+ keepdims: bool | _NoValueType = ...,
3073
+ ) -> _ArrayT: ...
3074
+
3075
+ @overload
3076
+ def take(
3077
+ a: _ArrayLike[_ScalarT],
3078
+ indices: _IntLike_co,
3079
+ axis: None = None,
3080
+ out: None = None,
3081
+ mode: _ModeKind = "raise"
3082
+ ) -> _ScalarT: ...
3083
+ @overload
3084
+ def take(
3085
+ a: _ArrayLike[_ScalarT],
3086
+ indices: _ArrayLikeInt_co,
3087
+ axis: SupportsIndex | None = None,
3088
+ out: None = None,
3089
+ mode: _ModeKind = "raise",
3090
+ ) -> _MaskedArray[_ScalarT]: ...
3091
+ @overload
3092
+ def take(
3093
+ a: ArrayLike,
3094
+ indices: _IntLike_co,
3095
+ axis: SupportsIndex | None = None,
3096
+ out: None = None,
3097
+ mode: _ModeKind = "raise",
3098
+ ) -> Any: ...
3099
+ @overload
3100
+ def take(
3101
+ a: ArrayLike,
3102
+ indices: _ArrayLikeInt_co,
3103
+ axis: SupportsIndex | None = None,
3104
+ out: None = None,
3105
+ mode: _ModeKind = "raise",
3106
+ ) -> _MaskedArray[Any]: ...
3107
+ @overload
3108
+ def take(
3109
+ a: ArrayLike,
3110
+ indices: _ArrayLikeInt_co,
3111
+ axis: SupportsIndex | None,
3112
+ out: _ArrayT,
3113
+ mode: _ModeKind = "raise",
3114
+ ) -> _ArrayT: ...
3115
+ @overload
3116
+ def take(
3117
+ a: ArrayLike,
3118
+ indices: _ArrayLikeInt_co,
3119
+ axis: SupportsIndex | None = None,
3120
+ *,
3121
+ out: _ArrayT,
3122
+ mode: _ModeKind = "raise",
3123
+ ) -> _ArrayT: ...
3124
+
3125
+ def power(a, b, third=None): ...
3126
+ def argsort(a, axis=..., kind=None, order=None, endwith=True, fill_value=None, *, stable=None): ...
3127
+ @overload
3128
+ def sort(
3129
+ a: _ArrayT,
3130
+ axis: SupportsIndex = -1,
3131
+ kind: _SortKind | None = None,
3132
+ order: str | Sequence[str] | None = None,
3133
+ endwith: bool | None = True,
3134
+ fill_value: _ScalarLike_co | None = None,
3135
+ *,
3136
+ stable: Literal[False] | None = None,
3137
+ ) -> _ArrayT: ...
3138
+ @overload
3139
+ def sort(
3140
+ a: ArrayLike,
3141
+ axis: SupportsIndex = -1,
3142
+ kind: _SortKind | None = None,
3143
+ order: str | Sequence[str] | None = None,
3144
+ endwith: bool | None = True,
3145
+ fill_value: _ScalarLike_co | None = None,
3146
+ *,
3147
+ stable: Literal[False] | None = None,
3148
+ ) -> NDArray[Any]: ...
3149
+ @overload
3150
+ def compressed(x: _ArrayLike[_ScalarT_co]) -> _Array1D[_ScalarT_co]: ...
3151
+ @overload
3152
+ def compressed(x: ArrayLike) -> _Array1D[Any]: ...
3153
+ def concatenate(arrays, axis=0): ...
3154
+ def diag(v, k=0): ...
3155
+ def left_shift(a, n): ...
3156
+ def right_shift(a, n): ...
3157
+ def put(a: NDArray[Any], indices: _ArrayLikeInt_co, values: ArrayLike, mode: _ModeKind = "raise") -> None: ...
3158
+ def putmask(a: NDArray[Any], mask: _ArrayLikeBool_co, values: ArrayLike) -> None: ...
3159
+ def transpose(a, axes=None): ...
3160
+ def reshape(a, new_shape, order="C"): ...
3161
+ def resize(x, new_shape): ...
3162
+ def ndim(obj: ArrayLike) -> int: ...
3163
+ def shape(obj): ...
3164
+ def size(obj: ArrayLike, axis: SupportsIndex | None = None) -> int: ...
3165
+ def diff(a, /, n=1, axis=-1, prepend=..., append=...): ...
3166
+ def where(condition, x=..., y=...): ...
3167
+ def choose(indices, choices, out=None, mode="raise"): ...
3168
+ def round_(a, decimals=0, out=None): ...
3169
+ round = round_
3170
+
3171
+ def inner(a, b): ...
3172
+ innerproduct = inner
3173
+
3174
+ def outer(a, b): ...
3175
+ outerproduct = outer
3176
+
3177
+ def correlate(a, v, mode="valid", propagate_mask=True): ...
3178
+ def convolve(a, v, mode="full", propagate_mask=True): ...
3179
+
3180
+ def allequal(a: ArrayLike, b: ArrayLike, fill_value: bool = True) -> bool: ...
3181
+
3182
+ def allclose(a: ArrayLike, b: ArrayLike, masked_equal: bool = True, rtol: float = 1e-5, atol: float = 1e-8) -> bool: ...
3183
+
3184
+ def fromflex(fxarray): ...
3185
+
3186
+ def append(a, b, axis=None): ...
3187
+ def dot(a, b, strict=False, out=None): ...
3188
+
3189
+ # internal wrapper functions for the functions below
3190
+ def _convert2ma(
3191
+ funcname: str,
3192
+ np_ret: str,
3193
+ np_ma_ret: str,
3194
+ params: dict[str, Any] | None = None,
3195
+ ) -> Callable[..., Any]: ...
3196
+
3197
+ # keep in sync with `_core.multiarray.arange`
3198
+ @overload # dtype=<known>
3199
+ def arange(
3200
+ start_or_stop: _ArangeScalar | float,
3201
+ /,
3202
+ stop: _ArangeScalar | float | None = None,
3203
+ step: _ArangeScalar | float | None = 1,
3204
+ *,
3205
+ dtype: _DTypeLike[_ArangeScalarT],
3206
+ device: Literal["cpu"] | None = None,
3207
+ like: _SupportsArrayFunc | None = None,
3208
+ fill_value: _FillValue | None = None,
3209
+ hardmask: bool = False,
3210
+ ) -> _Masked1D[_ArangeScalarT]: ...
3211
+ @overload # (int-like, int-like?, int-like?)
3212
+ def arange(
3213
+ start_or_stop: _IntLike_co,
3214
+ /,
3215
+ stop: _IntLike_co | None = None,
3216
+ step: _IntLike_co | None = 1,
3217
+ *,
3218
+ dtype: type[int] | _DTypeLike[np.int_] | None = None,
3219
+ device: Literal["cpu"] | None = None,
3220
+ like: _SupportsArrayFunc | None = None,
3221
+ fill_value: _FillValue | None = None,
3222
+ hardmask: bool = False,
3223
+ ) -> _Masked1D[np.int_]: ...
3224
+ @overload # (float, float-like?, float-like?)
3225
+ def arange(
3226
+ start_or_stop: float | floating,
3227
+ /,
3228
+ stop: _FloatLike_co | None = None,
3229
+ step: _FloatLike_co | None = 1,
3230
+ *,
3231
+ dtype: type[float] | _DTypeLike[np.float64] | None = None,
3232
+ device: Literal["cpu"] | None = None,
3233
+ like: _SupportsArrayFunc | None = None,
3234
+ fill_value: _FillValue | None = None,
3235
+ hardmask: bool = False,
3236
+ ) -> _Masked1D[np.float64 | Any]: ...
3237
+ @overload # (float-like, float, float-like?)
3238
+ def arange(
3239
+ start_or_stop: _FloatLike_co,
3240
+ /,
3241
+ stop: float | floating,
3242
+ step: _FloatLike_co | None = 1,
3243
+ *,
3244
+ dtype: type[float] | _DTypeLike[np.float64] | None = None,
3245
+ device: Literal["cpu"] | None = None,
3246
+ like: _SupportsArrayFunc | None = None,
3247
+ fill_value: _FillValue | None = None,
3248
+ hardmask: bool = False,
3249
+ ) -> _Masked1D[np.float64 | Any]: ...
3250
+ @overload # (timedelta, timedelta-like?, timedelta-like?)
3251
+ def arange(
3252
+ start_or_stop: np.timedelta64,
3253
+ /,
3254
+ stop: _TD64Like_co | None = None,
3255
+ step: _TD64Like_co | None = 1,
3256
+ *,
3257
+ dtype: _DTypeLike[np.timedelta64] | None = None,
3258
+ device: Literal["cpu"] | None = None,
3259
+ like: _SupportsArrayFunc | None = None,
3260
+ fill_value: _FillValue | None = None,
3261
+ hardmask: bool = False,
3262
+ ) -> _Masked1D[np.timedelta64[Incomplete]]: ...
3263
+ @overload # (timedelta-like, timedelta, timedelta-like?)
3264
+ def arange(
3265
+ start_or_stop: _TD64Like_co,
3266
+ /,
3267
+ stop: np.timedelta64,
3268
+ step: _TD64Like_co | None = 1,
3269
+ *,
3270
+ dtype: _DTypeLike[np.timedelta64] | None = None,
3271
+ device: Literal["cpu"] | None = None,
3272
+ like: _SupportsArrayFunc | None = None,
3273
+ fill_value: _FillValue | None = None,
3274
+ hardmask: bool = False,
3275
+ ) -> _Masked1D[np.timedelta64[Incomplete]]: ...
3276
+ @overload # (datetime, datetime, timedelta-like) (requires both start and stop)
3277
+ def arange(
3278
+ start_or_stop: np.datetime64,
3279
+ /,
3280
+ stop: np.datetime64,
3281
+ step: _TD64Like_co | None = 1,
3282
+ *,
3283
+ dtype: _DTypeLike[np.datetime64] | None = None,
3284
+ device: Literal["cpu"] | None = None,
3285
+ like: _SupportsArrayFunc | None = None,
3286
+ fill_value: _FillValue | None = None,
3287
+ hardmask: bool = False,
3288
+ ) -> _Masked1D[np.datetime64[Incomplete]]: ...
3289
+ @overload # dtype=<unknown>
3290
+ def arange(
3291
+ start_or_stop: _ArangeScalar | float,
3292
+ /,
3293
+ stop: _ArangeScalar | float | None = None,
3294
+ step: _ArangeScalar | float | None = 1,
3295
+ *,
3296
+ dtype: DTypeLike | None = None,
3297
+ device: Literal["cpu"] | None = None,
3298
+ like: _SupportsArrayFunc | None = None,
3299
+ fill_value: _FillValue | None = None,
3300
+ hardmask: bool = False,
3301
+ ) -> _Masked1D[Incomplete]: ...
3302
+
3303
+ # based on `_core.fromnumeric.clip`
3304
+ @overload
3305
+ def clip(
3306
+ a: _ScalarT,
3307
+ a_min: ArrayLike | _NoValueType | None = ...,
3308
+ a_max: ArrayLike | _NoValueType | None = ...,
3309
+ out: None = None,
3310
+ *,
3311
+ min: ArrayLike | _NoValueType | None = ...,
3312
+ max: ArrayLike | _NoValueType | None = ...,
3313
+ fill_value: _FillValue | None = None,
3314
+ hardmask: bool = False,
3315
+ dtype: None = None,
3316
+ **kwargs: Unpack[_UFuncKwargs],
3317
+ ) -> _ScalarT: ...
3318
+ @overload
3319
+ def clip(
3320
+ a: NDArray[_ScalarT],
3321
+ a_min: ArrayLike | _NoValueType | None = ...,
3322
+ a_max: ArrayLike | _NoValueType | None = ...,
3323
+ out: None = None,
3324
+ *,
3325
+ min: ArrayLike | _NoValueType | None = ...,
3326
+ max: ArrayLike | _NoValueType | None = ...,
3327
+ fill_value: _FillValue | None = None,
3328
+ hardmask: bool = False,
3329
+ dtype: None = None,
3330
+ **kwargs: Unpack[_UFuncKwargs],
3331
+ ) -> _MaskedArray[_ScalarT]: ...
3332
+ @overload
3333
+ def clip(
3334
+ a: ArrayLike,
3335
+ a_min: ArrayLike | None,
3336
+ a_max: ArrayLike | None,
3337
+ out: _MArrayT,
3338
+ *,
3339
+ min: ArrayLike | _NoValueType | None = ...,
3340
+ max: ArrayLike | _NoValueType | None = ...,
3341
+ fill_value: _FillValue | None = None,
3342
+ hardmask: bool = False,
3343
+ dtype: DTypeLike | None = None,
3344
+ **kwargs: Unpack[_UFuncKwargs],
3345
+ ) -> _MArrayT: ...
3346
+ @overload
3347
+ def clip(
3348
+ a: ArrayLike,
3349
+ a_min: ArrayLike | _NoValueType | None = ...,
3350
+ a_max: ArrayLike | _NoValueType | None = ...,
3351
+ *,
3352
+ out: _MArrayT,
3353
+ min: ArrayLike | _NoValueType | None = ...,
3354
+ max: ArrayLike | _NoValueType | None = ...,
3355
+ fill_value: _FillValue | None = None,
3356
+ hardmask: bool = False,
3357
+ dtype: DTypeLike | None = None,
3358
+ **kwargs: Unpack[_UFuncKwargs],
3359
+ ) -> _MArrayT: ...
3360
+ @overload
3361
+ def clip(
3362
+ a: ArrayLike,
3363
+ a_min: ArrayLike | _NoValueType | None = ...,
3364
+ a_max: ArrayLike | _NoValueType | None = ...,
3365
+ out: None = None,
3366
+ *,
3367
+ min: ArrayLike | _NoValueType | None = ...,
3368
+ max: ArrayLike | _NoValueType | None = ...,
3369
+ fill_value: _FillValue | None = None,
3370
+ hardmask: bool = False,
3371
+ dtype: DTypeLike | None = None,
3372
+ **kwargs: Unpack[_UFuncKwargs],
3373
+ ) -> Incomplete: ...
3374
+
3375
+ # keep in sync with `_core.multiarray.ones`
3376
+ @overload
3377
+ def empty(
3378
+ shape: SupportsIndex,
3379
+ dtype: None = None,
3380
+ order: _OrderCF = "C",
3381
+ *,
3382
+ device: Literal["cpu"] | None = None,
3383
+ like: _SupportsArrayFunc | None = None,
3384
+ fill_value: _FillValue | None = None,
3385
+ hardmask: bool = False,
3386
+ ) -> MaskedArray[tuple[int], np.dtype[np.float64]]: ...
3387
+ @overload
3388
+ def empty(
3389
+ shape: SupportsIndex,
3390
+ dtype: _DTypeT | _SupportsDType[_DTypeT],
3391
+ order: _OrderCF = "C",
3392
+ *,
3393
+ device: Literal["cpu"] | None = None,
3394
+ like: _SupportsArrayFunc | None = None,
3395
+ fill_value: _FillValue | None = None,
3396
+ hardmask: bool = False,
3397
+ ) -> MaskedArray[tuple[int], _DTypeT]: ...
3398
+ @overload
3399
+ def empty(
3400
+ shape: SupportsIndex,
3401
+ dtype: type[_ScalarT],
3402
+ order: _OrderCF = "C",
3403
+ *,
3404
+ device: Literal["cpu"] | None = None,
3405
+ like: _SupportsArrayFunc | None = None,
3406
+ fill_value: _FillValue | None = None,
3407
+ hardmask: bool = False,
3408
+ ) -> MaskedArray[tuple[int], np.dtype[_ScalarT]]: ...
3409
+ @overload
3410
+ def empty(
3411
+ shape: SupportsIndex,
3412
+ dtype: DTypeLike | None = None,
3413
+ order: _OrderCF = "C",
3414
+ *,
3415
+ device: Literal["cpu"] | None = None,
3416
+ like: _SupportsArrayFunc | None = None,
3417
+ fill_value: _FillValue | None = None,
3418
+ hardmask: bool = False,
3419
+ ) -> MaskedArray[tuple[int]]: ...
3420
+ @overload # known shape
3421
+ def empty(
3422
+ shape: _AnyShapeT,
3423
+ dtype: None = None,
3424
+ order: _OrderCF = "C",
3425
+ *,
3426
+ device: Literal["cpu"] | None = None,
3427
+ like: _SupportsArrayFunc | None = None,
3428
+ fill_value: _FillValue | None = None,
3429
+ hardmask: bool = False,
3430
+ ) -> MaskedArray[_AnyShapeT, np.dtype[np.float64]]: ...
3431
+ @overload
3432
+ def empty(
3433
+ shape: _AnyShapeT,
3434
+ dtype: _DTypeT | _SupportsDType[_DTypeT],
3435
+ order: _OrderCF = "C",
3436
+ *,
3437
+ device: Literal["cpu"] | None = None,
3438
+ like: _SupportsArrayFunc | None = None,
3439
+ fill_value: _FillValue | None = None,
3440
+ hardmask: bool = False,
3441
+ ) -> MaskedArray[_AnyShapeT, _DTypeT]: ...
3442
+ @overload
3443
+ def empty(
3444
+ shape: _AnyShapeT,
3445
+ dtype: type[_ScalarT],
3446
+ order: _OrderCF = "C",
3447
+ *,
3448
+ device: Literal["cpu"] | None = None,
3449
+ like: _SupportsArrayFunc | None = None,
3450
+ fill_value: _FillValue | None = None,
3451
+ hardmask: bool = False,
3452
+ ) -> MaskedArray[_AnyShapeT, np.dtype[_ScalarT]]: ...
3453
+ @overload
3454
+ def empty(
3455
+ shape: _AnyShapeT,
3456
+ dtype: DTypeLike | None = None,
3457
+ order: _OrderCF = "C",
3458
+ *,
3459
+ device: Literal["cpu"] | None = None,
3460
+ like: _SupportsArrayFunc | None = None,
3461
+ fill_value: _FillValue | None = None,
3462
+ hardmask: bool = False,
3463
+ ) -> MaskedArray[_AnyShapeT]: ...
3464
+ @overload # unknown shape
3465
+ def empty(
3466
+ shape: _ShapeLike,
3467
+ dtype: None = None,
3468
+ order: _OrderCF = "C",
3469
+ *,
3470
+ device: Literal["cpu"] | None = None,
3471
+ like: _SupportsArrayFunc | None = None,
3472
+ fill_value: _FillValue | None = None,
3473
+ hardmask: bool = False,
3474
+ ) -> _MaskedArray[np.float64]: ...
3475
+ @overload
3476
+ def empty(
3477
+ shape: _ShapeLike,
3478
+ dtype: _DTypeT | _SupportsDType[_DTypeT],
3479
+ order: _OrderCF = "C",
3480
+ *,
3481
+ device: Literal["cpu"] | None = None,
3482
+ like: _SupportsArrayFunc | None = None,
3483
+ fill_value: _FillValue | None = None,
3484
+ hardmask: bool = False,
3485
+ ) -> MaskedArray[_AnyShape, _DTypeT]: ...
3486
+ @overload
3487
+ def empty(
3488
+ shape: _ShapeLike,
3489
+ dtype: type[_ScalarT],
3490
+ order: _OrderCF = "C",
3491
+ *,
3492
+ device: Literal["cpu"] | None = None,
3493
+ like: _SupportsArrayFunc | None = None,
3494
+ fill_value: _FillValue | None = None,
3495
+ hardmask: bool = False,
3496
+ ) -> _MaskedArray[_ScalarT]: ...
3497
+ @overload
3498
+ def empty(
3499
+ shape: _ShapeLike,
3500
+ dtype: DTypeLike | None = None,
3501
+ *,
3502
+ device: Literal["cpu"] | None = None,
3503
+ like: _SupportsArrayFunc | None = None,
3504
+ fill_value: _FillValue | None = None,
3505
+ hardmask: bool = False,
3506
+ ) -> MaskedArray: ...
3507
+
3508
+ # keep in sync with `_core.multiarray.empty_like`
3509
+ @overload
3510
+ def empty_like(
3511
+ a: _MArrayT,
3512
+ /,
3513
+ dtype: None = None,
3514
+ order: _OrderKACF = "K",
3515
+ subok: bool = True,
3516
+ shape: _ShapeLike | None = None,
3517
+ *,
3518
+ device: Literal["cpu"] | None = None,
3519
+ ) -> _MArrayT: ...
3520
+ @overload
3521
+ def empty_like(
3522
+ a: _ArrayLike[_ScalarT],
3523
+ /,
3524
+ dtype: None = None,
3525
+ order: _OrderKACF = "K",
3526
+ subok: bool = True,
3527
+ shape: _ShapeLike | None = None,
3528
+ *,
3529
+ device: Literal["cpu"] | None = None,
3530
+ ) -> _MaskedArray[_ScalarT]: ...
3531
+ @overload
3532
+ def empty_like(
3533
+ a: Incomplete,
3534
+ /,
3535
+ dtype: _DTypeLike[_ScalarT],
3536
+ order: _OrderKACF = "K",
3537
+ subok: bool = True,
3538
+ shape: _ShapeLike | None = None,
3539
+ *,
3540
+ device: Literal["cpu"] | None = None,
3541
+ ) -> _MaskedArray[_ScalarT]: ...
3542
+ @overload
3543
+ def empty_like(
3544
+ a: Incomplete,
3545
+ /,
3546
+ dtype: DTypeLike | None = None,
3547
+ order: _OrderKACF = "K",
3548
+ subok: bool = True,
3549
+ shape: _ShapeLike | None = None,
3550
+ *,
3551
+ device: Literal["cpu"] | None = None,
3552
+ ) -> _MaskedArray[Incomplete]: ...
3553
+
3554
+ # This is a bit of a hack to avoid having to duplicate all those `empty` overloads for
3555
+ # `ones` and `zeros`, that relies on the fact that empty/zeros/ones have identical
3556
+ # type signatures, but may cause some type-checkers to report incorrect names in case
3557
+ # of user errors. Mypy and Pyright seem to handle this just fine.
3558
+ ones = empty
3559
+ ones_like = empty_like
3560
+ zeros = empty
3561
+ zeros_like = empty_like
3562
+
3563
+ # keep in sync with `_core.multiarray.frombuffer`
3564
+ @overload
3565
+ def frombuffer(
3566
+ buffer: Buffer,
3567
+ *,
3568
+ count: SupportsIndex = -1,
3569
+ offset: SupportsIndex = 0,
3570
+ like: _SupportsArrayFunc | None = None,
3571
+ ) -> _MaskedArray[np.float64]: ...
3572
+ @overload
3573
+ def frombuffer(
3574
+ buffer: Buffer,
3575
+ dtype: _DTypeLike[_ScalarT],
3576
+ count: SupportsIndex = -1,
3577
+ offset: SupportsIndex = 0,
3578
+ *,
3579
+ like: _SupportsArrayFunc | None = None,
3580
+ ) -> _MaskedArray[_ScalarT]: ...
3581
+ @overload
3582
+ def frombuffer(
3583
+ buffer: Buffer,
3584
+ dtype: DTypeLike | None = float,
3585
+ count: SupportsIndex = -1,
3586
+ offset: SupportsIndex = 0,
3587
+ *,
3588
+ like: _SupportsArrayFunc | None = None,
3589
+ ) -> _MaskedArray[Incomplete]: ...
3590
+
3591
+ # keep roughly in sync with `_core.numeric.fromfunction`
3592
+ def fromfunction(
3593
+ function: Callable[..., np.ndarray[_ShapeT, _DTypeT]],
3594
+ shape: Sequence[int],
3595
+ *,
3596
+ dtype: DTypeLike | None = float,
3597
+ like: _SupportsArrayFunc | None = None,
3598
+ **kwargs: object,
3599
+ ) -> MaskedArray[_ShapeT, _DTypeT]: ...
3600
+
3601
+ # keep roughly in sync with `_core.numeric.identity`
3602
+ @overload
3603
+ def identity(
3604
+ n: int,
3605
+ dtype: None = None,
3606
+ *,
3607
+ like: _SupportsArrayFunc | None = None,
3608
+ fill_value: _FillValue | None = None,
3609
+ hardmask: bool = False,
3610
+ ) -> MaskedArray[tuple[int, int], np.dtype[np.float64]]: ...
3611
+ @overload
3612
+ def identity(
3613
+ n: int,
3614
+ dtype: _DTypeLike[_ScalarT],
3615
+ *,
3616
+ like: _SupportsArrayFunc | None = None,
3617
+ fill_value: _FillValue | None = None,
3618
+ hardmask: bool = False,
3619
+ ) -> MaskedArray[tuple[int, int], np.dtype[_ScalarT]]: ...
3620
+ @overload
3621
+ def identity(
3622
+ n: int,
3623
+ dtype: DTypeLike | None = None,
3624
+ *,
3625
+ like: _SupportsArrayFunc | None = None,
3626
+ fill_value: _FillValue | None = None,
3627
+ hardmask: bool = False,
3628
+ ) -> MaskedArray[tuple[int, int], np.dtype[Incomplete]]: ...
3629
+
3630
+ # keep roughly in sync with `_core.numeric.indices`
3631
+ @overload
3632
+ def indices(
3633
+ dimensions: Sequence[int],
3634
+ dtype: type[int] = int,
3635
+ sparse: Literal[False] = False,
3636
+ *,
3637
+ fill_value: _FillValue | None = None,
3638
+ hardmask: bool = False,
3639
+ ) -> _MaskedArray[np.intp]: ...
3640
+ @overload
3641
+ def indices(
3642
+ dimensions: Sequence[int],
3643
+ dtype: type[int],
3644
+ sparse: Literal[True],
3645
+ *,
3646
+ fill_value: _FillValue | None = None,
3647
+ hardmask: bool = False,
3648
+ ) -> tuple[_MaskedArray[np.intp], ...]: ...
3649
+ @overload
3650
+ def indices(
3651
+ dimensions: Sequence[int],
3652
+ dtype: type[int] = int,
3653
+ *,
3654
+ sparse: Literal[True],
3655
+ fill_value: _FillValue | None = None,
3656
+ hardmask: bool = False,
3657
+ ) -> tuple[_MaskedArray[np.intp], ...]: ...
3658
+ @overload
3659
+ def indices(
3660
+ dimensions: Sequence[int],
3661
+ dtype: _DTypeLike[_ScalarT],
3662
+ sparse: Literal[False] = False,
3663
+ *,
3664
+ fill_value: _FillValue | None = None,
3665
+ hardmask: bool = False,
3666
+ ) -> _MaskedArray[_ScalarT]: ...
3667
+ @overload
3668
+ def indices(
3669
+ dimensions: Sequence[int],
3670
+ dtype: _DTypeLike[_ScalarT],
3671
+ sparse: Literal[True],
3672
+ *,
3673
+ fill_value: _FillValue | None = None,
3674
+ hardmask: bool = False,
3675
+ ) -> tuple[_MaskedArray[_ScalarT], ...]: ...
3676
+ @overload
3677
+ def indices(
3678
+ dimensions: Sequence[int],
3679
+ dtype: DTypeLike | None = int,
3680
+ sparse: Literal[False] = False,
3681
+ *,
3682
+ fill_value: _FillValue | None = None,
3683
+ hardmask: bool = False,
3684
+ ) -> _MaskedArray[Incomplete]: ...
3685
+ @overload
3686
+ def indices(
3687
+ dimensions: Sequence[int],
3688
+ dtype: DTypeLike | None,
3689
+ sparse: Literal[True],
3690
+ *,
3691
+ fill_value: _FillValue | None = None,
3692
+ hardmask: bool = False,
3693
+ ) -> tuple[_MaskedArray[Incomplete], ...]: ...
3694
+ @overload
3695
+ def indices(
3696
+ dimensions: Sequence[int],
3697
+ dtype: DTypeLike | None = int,
3698
+ *,
3699
+ sparse: Literal[True],
3700
+ fill_value: _FillValue | None = None,
3701
+ hardmask: bool = False,
3702
+ ) -> tuple[_MaskedArray[Incomplete], ...]: ...
3703
+
3704
+ # keep roughly in sync with `_core.fromnumeric.squeeze`
3705
+ @overload
3706
+ def squeeze(
3707
+ a: _ArrayLike[_ScalarT],
3708
+ axis: _ShapeLike | None = None,
3709
+ *,
3710
+ fill_value: _FillValue | None = None,
3711
+ hardmask: bool = False,
3712
+ ) -> _MaskedArray[_ScalarT]: ...
3713
+ @overload
3714
+ def squeeze(
3715
+ a: ArrayLike,
3716
+ axis: _ShapeLike | None = None,
3717
+ *,
3718
+ fill_value: _FillValue | None = None,
3719
+ hardmask: bool = False,
3720
+ ) -> _MaskedArray[Incomplete]: ...