numpy 2.4.1__pp311-pypy311_pp73-macosx_14_0_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 (1039) 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 +942 -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.pypy311-pp73-darwin.so +0 -0
  30. numpy/_core/_multiarray_umath.pypy311-pp73-darwin.so +0 -0
  31. numpy/_core/_operand_flag_tests.pypy311-pp73-darwin.so +0 -0
  32. numpy/_core/_rational_tests.pypy311-pp73-darwin.so +0 -0
  33. numpy/_core/_simd.pyi +35 -0
  34. numpy/_core/_simd.pypy311-pp73-darwin.so +0 -0
  35. numpy/_core/_string_helpers.py +100 -0
  36. numpy/_core/_string_helpers.pyi +12 -0
  37. numpy/_core/_struct_ufunc_tests.pypy311-pp73-darwin.so +0 -0
  38. numpy/_core/_type_aliases.py +131 -0
  39. numpy/_core/_type_aliases.pyi +86 -0
  40. numpy/_core/_ufunc_config.py +515 -0
  41. numpy/_core/_ufunc_config.pyi +69 -0
  42. numpy/_core/_umath_tests.pyi +47 -0
  43. numpy/_core/_umath_tests.pypy311-pp73-darwin.so +0 -0
  44. numpy/_core/arrayprint.py +1779 -0
  45. numpy/_core/arrayprint.pyi +158 -0
  46. numpy/_core/cversions.py +13 -0
  47. numpy/_core/defchararray.py +1414 -0
  48. numpy/_core/defchararray.pyi +1150 -0
  49. numpy/_core/einsumfunc.py +1650 -0
  50. numpy/_core/einsumfunc.pyi +184 -0
  51. numpy/_core/fromnumeric.py +4233 -0
  52. numpy/_core/fromnumeric.pyi +1735 -0
  53. numpy/_core/function_base.py +547 -0
  54. numpy/_core/function_base.pyi +276 -0
  55. numpy/_core/getlimits.py +462 -0
  56. numpy/_core/getlimits.pyi +124 -0
  57. numpy/_core/include/numpy/__multiarray_api.c +376 -0
  58. numpy/_core/include/numpy/__multiarray_api.h +1628 -0
  59. numpy/_core/include/numpy/__ufunc_api.c +55 -0
  60. numpy/_core/include/numpy/__ufunc_api.h +349 -0
  61. numpy/_core/include/numpy/_neighborhood_iterator_imp.h +90 -0
  62. numpy/_core/include/numpy/_numpyconfig.h +33 -0
  63. numpy/_core/include/numpy/_public_dtype_api_table.h +86 -0
  64. numpy/_core/include/numpy/arrayobject.h +7 -0
  65. numpy/_core/include/numpy/arrayscalars.h +198 -0
  66. numpy/_core/include/numpy/dtype_api.h +547 -0
  67. numpy/_core/include/numpy/halffloat.h +70 -0
  68. numpy/_core/include/numpy/ndarrayobject.h +304 -0
  69. numpy/_core/include/numpy/ndarraytypes.h +1982 -0
  70. numpy/_core/include/numpy/npy_2_compat.h +249 -0
  71. numpy/_core/include/numpy/npy_2_complexcompat.h +28 -0
  72. numpy/_core/include/numpy/npy_3kcompat.h +374 -0
  73. numpy/_core/include/numpy/npy_common.h +989 -0
  74. numpy/_core/include/numpy/npy_cpu.h +126 -0
  75. numpy/_core/include/numpy/npy_endian.h +79 -0
  76. numpy/_core/include/numpy/npy_math.h +602 -0
  77. numpy/_core/include/numpy/npy_no_deprecated_api.h +20 -0
  78. numpy/_core/include/numpy/npy_os.h +42 -0
  79. numpy/_core/include/numpy/numpyconfig.h +185 -0
  80. numpy/_core/include/numpy/random/LICENSE.txt +21 -0
  81. numpy/_core/include/numpy/random/bitgen.h +20 -0
  82. numpy/_core/include/numpy/random/distributions.h +209 -0
  83. numpy/_core/include/numpy/random/libdivide.h +2079 -0
  84. numpy/_core/include/numpy/ufuncobject.h +343 -0
  85. numpy/_core/include/numpy/utils.h +37 -0
  86. numpy/_core/lib/libnpymath.a +0 -0
  87. numpy/_core/lib/npy-pkg-config/mlib.ini +12 -0
  88. numpy/_core/lib/npy-pkg-config/npymath.ini +20 -0
  89. numpy/_core/lib/pkgconfig/numpy.pc +7 -0
  90. numpy/_core/memmap.py +363 -0
  91. numpy/_core/memmap.pyi +3 -0
  92. numpy/_core/multiarray.py +1740 -0
  93. numpy/_core/multiarray.pyi +1316 -0
  94. numpy/_core/numeric.py +2758 -0
  95. numpy/_core/numeric.pyi +1276 -0
  96. numpy/_core/numerictypes.py +633 -0
  97. numpy/_core/numerictypes.pyi +196 -0
  98. numpy/_core/overrides.py +188 -0
  99. numpy/_core/overrides.pyi +47 -0
  100. numpy/_core/printoptions.py +32 -0
  101. numpy/_core/printoptions.pyi +28 -0
  102. numpy/_core/records.py +1088 -0
  103. numpy/_core/records.pyi +340 -0
  104. numpy/_core/shape_base.py +996 -0
  105. numpy/_core/shape_base.pyi +182 -0
  106. numpy/_core/strings.py +1813 -0
  107. numpy/_core/strings.pyi +536 -0
  108. numpy/_core/tests/_locales.py +72 -0
  109. numpy/_core/tests/_natype.py +144 -0
  110. numpy/_core/tests/data/astype_copy.pkl +0 -0
  111. numpy/_core/tests/data/generate_umath_validation_data.cpp +170 -0
  112. numpy/_core/tests/data/recarray_from_file.fits +0 -0
  113. numpy/_core/tests/data/umath-validation-set-README.txt +15 -0
  114. numpy/_core/tests/data/umath-validation-set-arccos.csv +1429 -0
  115. numpy/_core/tests/data/umath-validation-set-arccosh.csv +1429 -0
  116. numpy/_core/tests/data/umath-validation-set-arcsin.csv +1429 -0
  117. numpy/_core/tests/data/umath-validation-set-arcsinh.csv +1429 -0
  118. numpy/_core/tests/data/umath-validation-set-arctan.csv +1429 -0
  119. numpy/_core/tests/data/umath-validation-set-arctanh.csv +1429 -0
  120. numpy/_core/tests/data/umath-validation-set-cbrt.csv +1429 -0
  121. numpy/_core/tests/data/umath-validation-set-cos.csv +1375 -0
  122. numpy/_core/tests/data/umath-validation-set-cosh.csv +1429 -0
  123. numpy/_core/tests/data/umath-validation-set-exp.csv +412 -0
  124. numpy/_core/tests/data/umath-validation-set-exp2.csv +1429 -0
  125. numpy/_core/tests/data/umath-validation-set-expm1.csv +1429 -0
  126. numpy/_core/tests/data/umath-validation-set-log.csv +271 -0
  127. numpy/_core/tests/data/umath-validation-set-log10.csv +1629 -0
  128. numpy/_core/tests/data/umath-validation-set-log1p.csv +1429 -0
  129. numpy/_core/tests/data/umath-validation-set-log2.csv +1629 -0
  130. numpy/_core/tests/data/umath-validation-set-sin.csv +1370 -0
  131. numpy/_core/tests/data/umath-validation-set-sinh.csv +1429 -0
  132. numpy/_core/tests/data/umath-validation-set-tan.csv +1429 -0
  133. numpy/_core/tests/data/umath-validation-set-tanh.csv +1429 -0
  134. numpy/_core/tests/examples/cython/checks.pyx +373 -0
  135. numpy/_core/tests/examples/cython/meson.build +43 -0
  136. numpy/_core/tests/examples/cython/setup.py +39 -0
  137. numpy/_core/tests/examples/limited_api/limited_api1.c +17 -0
  138. numpy/_core/tests/examples/limited_api/limited_api2.pyx +11 -0
  139. numpy/_core/tests/examples/limited_api/limited_api_latest.c +19 -0
  140. numpy/_core/tests/examples/limited_api/meson.build +59 -0
  141. numpy/_core/tests/examples/limited_api/setup.py +24 -0
  142. numpy/_core/tests/test__exceptions.py +90 -0
  143. numpy/_core/tests/test_abc.py +54 -0
  144. numpy/_core/tests/test_api.py +655 -0
  145. numpy/_core/tests/test_argparse.py +90 -0
  146. numpy/_core/tests/test_array_api_info.py +113 -0
  147. numpy/_core/tests/test_array_coercion.py +928 -0
  148. numpy/_core/tests/test_array_interface.py +222 -0
  149. numpy/_core/tests/test_arraymethod.py +84 -0
  150. numpy/_core/tests/test_arrayobject.py +75 -0
  151. numpy/_core/tests/test_arrayprint.py +1324 -0
  152. numpy/_core/tests/test_casting_floatingpoint_errors.py +154 -0
  153. numpy/_core/tests/test_casting_unittests.py +955 -0
  154. numpy/_core/tests/test_conversion_utils.py +209 -0
  155. numpy/_core/tests/test_cpu_dispatcher.py +48 -0
  156. numpy/_core/tests/test_cpu_features.py +450 -0
  157. numpy/_core/tests/test_custom_dtypes.py +393 -0
  158. numpy/_core/tests/test_cython.py +352 -0
  159. numpy/_core/tests/test_datetime.py +2792 -0
  160. numpy/_core/tests/test_defchararray.py +858 -0
  161. numpy/_core/tests/test_deprecations.py +460 -0
  162. numpy/_core/tests/test_dlpack.py +190 -0
  163. numpy/_core/tests/test_dtype.py +2110 -0
  164. numpy/_core/tests/test_einsum.py +1351 -0
  165. numpy/_core/tests/test_errstate.py +131 -0
  166. numpy/_core/tests/test_extint128.py +217 -0
  167. numpy/_core/tests/test_finfo.py +86 -0
  168. numpy/_core/tests/test_function_base.py +504 -0
  169. numpy/_core/tests/test_getlimits.py +171 -0
  170. numpy/_core/tests/test_half.py +593 -0
  171. numpy/_core/tests/test_hashtable.py +36 -0
  172. numpy/_core/tests/test_indexerrors.py +122 -0
  173. numpy/_core/tests/test_indexing.py +1692 -0
  174. numpy/_core/tests/test_item_selection.py +167 -0
  175. numpy/_core/tests/test_limited_api.py +102 -0
  176. numpy/_core/tests/test_longdouble.py +370 -0
  177. numpy/_core/tests/test_mem_overlap.py +933 -0
  178. numpy/_core/tests/test_mem_policy.py +453 -0
  179. numpy/_core/tests/test_memmap.py +248 -0
  180. numpy/_core/tests/test_multiarray.py +11008 -0
  181. numpy/_core/tests/test_multiprocessing.py +55 -0
  182. numpy/_core/tests/test_multithreading.py +377 -0
  183. numpy/_core/tests/test_nditer.py +3533 -0
  184. numpy/_core/tests/test_nep50_promotions.py +287 -0
  185. numpy/_core/tests/test_numeric.py +4295 -0
  186. numpy/_core/tests/test_numerictypes.py +650 -0
  187. numpy/_core/tests/test_overrides.py +800 -0
  188. numpy/_core/tests/test_print.py +202 -0
  189. numpy/_core/tests/test_protocols.py +46 -0
  190. numpy/_core/tests/test_records.py +544 -0
  191. numpy/_core/tests/test_regression.py +2677 -0
  192. numpy/_core/tests/test_scalar_ctors.py +203 -0
  193. numpy/_core/tests/test_scalar_methods.py +328 -0
  194. numpy/_core/tests/test_scalarbuffer.py +153 -0
  195. numpy/_core/tests/test_scalarinherit.py +105 -0
  196. numpy/_core/tests/test_scalarmath.py +1168 -0
  197. numpy/_core/tests/test_scalarprint.py +403 -0
  198. numpy/_core/tests/test_shape_base.py +904 -0
  199. numpy/_core/tests/test_simd.py +1345 -0
  200. numpy/_core/tests/test_simd_module.py +105 -0
  201. numpy/_core/tests/test_stringdtype.py +1855 -0
  202. numpy/_core/tests/test_strings.py +1523 -0
  203. numpy/_core/tests/test_ufunc.py +3405 -0
  204. numpy/_core/tests/test_umath.py +4962 -0
  205. numpy/_core/tests/test_umath_accuracy.py +132 -0
  206. numpy/_core/tests/test_umath_complex.py +631 -0
  207. numpy/_core/tests/test_unicode.py +369 -0
  208. numpy/_core/umath.py +60 -0
  209. numpy/_core/umath.pyi +232 -0
  210. numpy/_distributor_init.py +15 -0
  211. numpy/_distributor_init.pyi +1 -0
  212. numpy/_expired_attrs_2_0.py +78 -0
  213. numpy/_expired_attrs_2_0.pyi +61 -0
  214. numpy/_globals.py +121 -0
  215. numpy/_globals.pyi +17 -0
  216. numpy/_pyinstaller/__init__.py +0 -0
  217. numpy/_pyinstaller/__init__.pyi +0 -0
  218. numpy/_pyinstaller/hook-numpy.py +36 -0
  219. numpy/_pyinstaller/hook-numpy.pyi +6 -0
  220. numpy/_pyinstaller/tests/__init__.py +16 -0
  221. numpy/_pyinstaller/tests/pyinstaller-smoke.py +32 -0
  222. numpy/_pyinstaller/tests/test_pyinstaller.py +35 -0
  223. numpy/_pytesttester.py +201 -0
  224. numpy/_pytesttester.pyi +18 -0
  225. numpy/_typing/__init__.py +173 -0
  226. numpy/_typing/_add_docstring.py +153 -0
  227. numpy/_typing/_array_like.py +106 -0
  228. numpy/_typing/_char_codes.py +213 -0
  229. numpy/_typing/_dtype_like.py +114 -0
  230. numpy/_typing/_extended_precision.py +15 -0
  231. numpy/_typing/_nbit.py +19 -0
  232. numpy/_typing/_nbit_base.py +94 -0
  233. numpy/_typing/_nbit_base.pyi +39 -0
  234. numpy/_typing/_nested_sequence.py +79 -0
  235. numpy/_typing/_scalars.py +20 -0
  236. numpy/_typing/_shape.py +8 -0
  237. numpy/_typing/_ufunc.py +7 -0
  238. numpy/_typing/_ufunc.pyi +975 -0
  239. numpy/_utils/__init__.py +95 -0
  240. numpy/_utils/__init__.pyi +28 -0
  241. numpy/_utils/_convertions.py +18 -0
  242. numpy/_utils/_convertions.pyi +4 -0
  243. numpy/_utils/_inspect.py +192 -0
  244. numpy/_utils/_inspect.pyi +70 -0
  245. numpy/_utils/_pep440.py +486 -0
  246. numpy/_utils/_pep440.pyi +118 -0
  247. numpy/char/__init__.py +2 -0
  248. numpy/char/__init__.pyi +111 -0
  249. numpy/conftest.py +248 -0
  250. numpy/core/__init__.py +33 -0
  251. numpy/core/__init__.pyi +0 -0
  252. numpy/core/_dtype.py +10 -0
  253. numpy/core/_dtype.pyi +0 -0
  254. numpy/core/_dtype_ctypes.py +10 -0
  255. numpy/core/_dtype_ctypes.pyi +0 -0
  256. numpy/core/_internal.py +27 -0
  257. numpy/core/_multiarray_umath.py +57 -0
  258. numpy/core/_utils.py +21 -0
  259. numpy/core/arrayprint.py +10 -0
  260. numpy/core/defchararray.py +10 -0
  261. numpy/core/einsumfunc.py +10 -0
  262. numpy/core/fromnumeric.py +10 -0
  263. numpy/core/function_base.py +10 -0
  264. numpy/core/getlimits.py +10 -0
  265. numpy/core/multiarray.py +25 -0
  266. numpy/core/numeric.py +12 -0
  267. numpy/core/numerictypes.py +10 -0
  268. numpy/core/overrides.py +10 -0
  269. numpy/core/overrides.pyi +7 -0
  270. numpy/core/records.py +10 -0
  271. numpy/core/shape_base.py +10 -0
  272. numpy/core/umath.py +10 -0
  273. numpy/ctypeslib/__init__.py +13 -0
  274. numpy/ctypeslib/__init__.pyi +15 -0
  275. numpy/ctypeslib/_ctypeslib.py +603 -0
  276. numpy/ctypeslib/_ctypeslib.pyi +236 -0
  277. numpy/distutils/__init__.py +64 -0
  278. numpy/distutils/__init__.pyi +4 -0
  279. numpy/distutils/__pycache__/conv_template.pypy311.pyc +0 -0
  280. numpy/distutils/_shell_utils.py +87 -0
  281. numpy/distutils/armccompiler.py +26 -0
  282. numpy/distutils/ccompiler.py +826 -0
  283. numpy/distutils/ccompiler_opt.py +2668 -0
  284. numpy/distutils/checks/cpu_asimd.c +27 -0
  285. numpy/distutils/checks/cpu_asimddp.c +16 -0
  286. numpy/distutils/checks/cpu_asimdfhm.c +19 -0
  287. numpy/distutils/checks/cpu_asimdhp.c +15 -0
  288. numpy/distutils/checks/cpu_avx.c +20 -0
  289. numpy/distutils/checks/cpu_avx2.c +20 -0
  290. numpy/distutils/checks/cpu_avx512_clx.c +22 -0
  291. numpy/distutils/checks/cpu_avx512_cnl.c +24 -0
  292. numpy/distutils/checks/cpu_avx512_icl.c +26 -0
  293. numpy/distutils/checks/cpu_avx512_knl.c +25 -0
  294. numpy/distutils/checks/cpu_avx512_knm.c +30 -0
  295. numpy/distutils/checks/cpu_avx512_skx.c +26 -0
  296. numpy/distutils/checks/cpu_avx512_spr.c +26 -0
  297. numpy/distutils/checks/cpu_avx512cd.c +20 -0
  298. numpy/distutils/checks/cpu_avx512f.c +20 -0
  299. numpy/distutils/checks/cpu_f16c.c +22 -0
  300. numpy/distutils/checks/cpu_fma3.c +22 -0
  301. numpy/distutils/checks/cpu_fma4.c +13 -0
  302. numpy/distutils/checks/cpu_lsx.c +11 -0
  303. numpy/distutils/checks/cpu_neon.c +19 -0
  304. numpy/distutils/checks/cpu_neon_fp16.c +11 -0
  305. numpy/distutils/checks/cpu_neon_vfpv4.c +21 -0
  306. numpy/distutils/checks/cpu_popcnt.c +32 -0
  307. numpy/distutils/checks/cpu_rvv.c +13 -0
  308. numpy/distutils/checks/cpu_sse.c +20 -0
  309. numpy/distutils/checks/cpu_sse2.c +20 -0
  310. numpy/distutils/checks/cpu_sse3.c +20 -0
  311. numpy/distutils/checks/cpu_sse41.c +20 -0
  312. numpy/distutils/checks/cpu_sse42.c +20 -0
  313. numpy/distutils/checks/cpu_ssse3.c +20 -0
  314. numpy/distutils/checks/cpu_sve.c +14 -0
  315. numpy/distutils/checks/cpu_vsx.c +21 -0
  316. numpy/distutils/checks/cpu_vsx2.c +13 -0
  317. numpy/distutils/checks/cpu_vsx3.c +13 -0
  318. numpy/distutils/checks/cpu_vsx4.c +14 -0
  319. numpy/distutils/checks/cpu_vx.c +16 -0
  320. numpy/distutils/checks/cpu_vxe.c +25 -0
  321. numpy/distutils/checks/cpu_vxe2.c +21 -0
  322. numpy/distutils/checks/cpu_xop.c +12 -0
  323. numpy/distutils/checks/extra_avx512bw_mask.c +18 -0
  324. numpy/distutils/checks/extra_avx512dq_mask.c +16 -0
  325. numpy/distutils/checks/extra_avx512f_reduce.c +41 -0
  326. numpy/distutils/checks/extra_vsx3_half_double.c +12 -0
  327. numpy/distutils/checks/extra_vsx4_mma.c +21 -0
  328. numpy/distutils/checks/extra_vsx_asm.c +36 -0
  329. numpy/distutils/checks/test_flags.c +1 -0
  330. numpy/distutils/command/__init__.py +41 -0
  331. numpy/distutils/command/autodist.py +148 -0
  332. numpy/distutils/command/bdist_rpm.py +22 -0
  333. numpy/distutils/command/build.py +62 -0
  334. numpy/distutils/command/build_clib.py +469 -0
  335. numpy/distutils/command/build_ext.py +752 -0
  336. numpy/distutils/command/build_py.py +31 -0
  337. numpy/distutils/command/build_scripts.py +49 -0
  338. numpy/distutils/command/build_src.py +773 -0
  339. numpy/distutils/command/config.py +516 -0
  340. numpy/distutils/command/config_compiler.py +126 -0
  341. numpy/distutils/command/develop.py +15 -0
  342. numpy/distutils/command/egg_info.py +25 -0
  343. numpy/distutils/command/install.py +79 -0
  344. numpy/distutils/command/install_clib.py +40 -0
  345. numpy/distutils/command/install_data.py +24 -0
  346. numpy/distutils/command/install_headers.py +25 -0
  347. numpy/distutils/command/sdist.py +27 -0
  348. numpy/distutils/conv_template.py +329 -0
  349. numpy/distutils/core.py +215 -0
  350. numpy/distutils/cpuinfo.py +683 -0
  351. numpy/distutils/exec_command.py +315 -0
  352. numpy/distutils/extension.py +101 -0
  353. numpy/distutils/fcompiler/__init__.py +1035 -0
  354. numpy/distutils/fcompiler/absoft.py +158 -0
  355. numpy/distutils/fcompiler/arm.py +71 -0
  356. numpy/distutils/fcompiler/compaq.py +120 -0
  357. numpy/distutils/fcompiler/environment.py +88 -0
  358. numpy/distutils/fcompiler/fujitsu.py +46 -0
  359. numpy/distutils/fcompiler/g95.py +42 -0
  360. numpy/distutils/fcompiler/gnu.py +555 -0
  361. numpy/distutils/fcompiler/hpux.py +41 -0
  362. numpy/distutils/fcompiler/ibm.py +97 -0
  363. numpy/distutils/fcompiler/intel.py +211 -0
  364. numpy/distutils/fcompiler/lahey.py +45 -0
  365. numpy/distutils/fcompiler/mips.py +54 -0
  366. numpy/distutils/fcompiler/nag.py +87 -0
  367. numpy/distutils/fcompiler/none.py +28 -0
  368. numpy/distutils/fcompiler/nv.py +53 -0
  369. numpy/distutils/fcompiler/pathf95.py +33 -0
  370. numpy/distutils/fcompiler/pg.py +128 -0
  371. numpy/distutils/fcompiler/sun.py +51 -0
  372. numpy/distutils/fcompiler/vast.py +52 -0
  373. numpy/distutils/from_template.py +261 -0
  374. numpy/distutils/fujitsuccompiler.py +28 -0
  375. numpy/distutils/intelccompiler.py +106 -0
  376. numpy/distutils/lib2def.py +116 -0
  377. numpy/distutils/line_endings.py +77 -0
  378. numpy/distutils/log.py +111 -0
  379. numpy/distutils/mingw/gfortran_vs2003_hack.c +6 -0
  380. numpy/distutils/mingw32ccompiler.py +620 -0
  381. numpy/distutils/misc_util.py +2484 -0
  382. numpy/distutils/msvc9compiler.py +63 -0
  383. numpy/distutils/msvccompiler.py +76 -0
  384. numpy/distutils/npy_pkg_config.py +441 -0
  385. numpy/distutils/numpy_distribution.py +17 -0
  386. numpy/distutils/pathccompiler.py +21 -0
  387. numpy/distutils/system_info.py +3267 -0
  388. numpy/distutils/tests/__init__.py +0 -0
  389. numpy/distutils/tests/test_build_ext.py +74 -0
  390. numpy/distutils/tests/test_ccompiler_opt.py +808 -0
  391. numpy/distutils/tests/test_ccompiler_opt_conf.py +176 -0
  392. numpy/distutils/tests/test_exec_command.py +217 -0
  393. numpy/distutils/tests/test_fcompiler.py +43 -0
  394. numpy/distutils/tests/test_fcompiler_gnu.py +55 -0
  395. numpy/distutils/tests/test_fcompiler_intel.py +30 -0
  396. numpy/distutils/tests/test_fcompiler_nagfor.py +22 -0
  397. numpy/distutils/tests/test_from_template.py +44 -0
  398. numpy/distutils/tests/test_log.py +34 -0
  399. numpy/distutils/tests/test_mingw32ccompiler.py +47 -0
  400. numpy/distutils/tests/test_misc_util.py +88 -0
  401. numpy/distutils/tests/test_npy_pkg_config.py +84 -0
  402. numpy/distutils/tests/test_shell_utils.py +79 -0
  403. numpy/distutils/tests/test_system_info.py +334 -0
  404. numpy/distutils/tests/utilities.py +90 -0
  405. numpy/distutils/unixccompiler.py +141 -0
  406. numpy/doc/ufuncs.py +138 -0
  407. numpy/dtypes.py +41 -0
  408. numpy/dtypes.pyi +630 -0
  409. numpy/exceptions.py +246 -0
  410. numpy/exceptions.pyi +27 -0
  411. numpy/f2py/__init__.py +86 -0
  412. numpy/f2py/__init__.pyi +5 -0
  413. numpy/f2py/__main__.py +5 -0
  414. numpy/f2py/__version__.py +1 -0
  415. numpy/f2py/__version__.pyi +1 -0
  416. numpy/f2py/_backends/__init__.py +9 -0
  417. numpy/f2py/_backends/__init__.pyi +5 -0
  418. numpy/f2py/_backends/_backend.py +44 -0
  419. numpy/f2py/_backends/_backend.pyi +46 -0
  420. numpy/f2py/_backends/_distutils.py +76 -0
  421. numpy/f2py/_backends/_distutils.pyi +13 -0
  422. numpy/f2py/_backends/_meson.py +244 -0
  423. numpy/f2py/_backends/_meson.pyi +62 -0
  424. numpy/f2py/_backends/meson.build.template +58 -0
  425. numpy/f2py/_isocbind.py +62 -0
  426. numpy/f2py/_isocbind.pyi +13 -0
  427. numpy/f2py/_src_pyf.py +247 -0
  428. numpy/f2py/_src_pyf.pyi +28 -0
  429. numpy/f2py/auxfuncs.py +1004 -0
  430. numpy/f2py/auxfuncs.pyi +262 -0
  431. numpy/f2py/capi_maps.py +811 -0
  432. numpy/f2py/capi_maps.pyi +33 -0
  433. numpy/f2py/cb_rules.py +665 -0
  434. numpy/f2py/cb_rules.pyi +17 -0
  435. numpy/f2py/cfuncs.py +1563 -0
  436. numpy/f2py/cfuncs.pyi +31 -0
  437. numpy/f2py/common_rules.py +143 -0
  438. numpy/f2py/common_rules.pyi +9 -0
  439. numpy/f2py/crackfortran.py +3725 -0
  440. numpy/f2py/crackfortran.pyi +266 -0
  441. numpy/f2py/diagnose.py +149 -0
  442. numpy/f2py/diagnose.pyi +1 -0
  443. numpy/f2py/f2py2e.py +788 -0
  444. numpy/f2py/f2py2e.pyi +74 -0
  445. numpy/f2py/f90mod_rules.py +269 -0
  446. numpy/f2py/f90mod_rules.pyi +16 -0
  447. numpy/f2py/func2subr.py +329 -0
  448. numpy/f2py/func2subr.pyi +7 -0
  449. numpy/f2py/rules.py +1629 -0
  450. numpy/f2py/rules.pyi +41 -0
  451. numpy/f2py/setup.cfg +3 -0
  452. numpy/f2py/src/fortranobject.c +1436 -0
  453. numpy/f2py/src/fortranobject.h +173 -0
  454. numpy/f2py/symbolic.py +1518 -0
  455. numpy/f2py/symbolic.pyi +219 -0
  456. numpy/f2py/tests/__init__.py +16 -0
  457. numpy/f2py/tests/src/abstract_interface/foo.f90 +34 -0
  458. numpy/f2py/tests/src/abstract_interface/gh18403_mod.f90 +6 -0
  459. numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +235 -0
  460. numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap +1 -0
  461. numpy/f2py/tests/src/assumed_shape/foo_free.f90 +34 -0
  462. numpy/f2py/tests/src/assumed_shape/foo_mod.f90 +41 -0
  463. numpy/f2py/tests/src/assumed_shape/foo_use.f90 +19 -0
  464. numpy/f2py/tests/src/assumed_shape/precision.f90 +4 -0
  465. numpy/f2py/tests/src/block_docstring/foo.f +6 -0
  466. numpy/f2py/tests/src/callback/foo.f +62 -0
  467. numpy/f2py/tests/src/callback/gh17797.f90 +7 -0
  468. numpy/f2py/tests/src/callback/gh18335.f90 +17 -0
  469. numpy/f2py/tests/src/callback/gh25211.f +10 -0
  470. numpy/f2py/tests/src/callback/gh25211.pyf +18 -0
  471. numpy/f2py/tests/src/callback/gh26681.f90 +18 -0
  472. numpy/f2py/tests/src/cli/gh_22819.pyf +6 -0
  473. numpy/f2py/tests/src/cli/hi77.f +3 -0
  474. numpy/f2py/tests/src/cli/hiworld.f90 +3 -0
  475. numpy/f2py/tests/src/common/block.f +11 -0
  476. numpy/f2py/tests/src/common/gh19161.f90 +10 -0
  477. numpy/f2py/tests/src/crackfortran/accesstype.f90 +13 -0
  478. numpy/f2py/tests/src/crackfortran/common_with_division.f +17 -0
  479. numpy/f2py/tests/src/crackfortran/data_common.f +8 -0
  480. numpy/f2py/tests/src/crackfortran/data_multiplier.f +5 -0
  481. numpy/f2py/tests/src/crackfortran/data_stmts.f90 +20 -0
  482. numpy/f2py/tests/src/crackfortran/data_with_comments.f +8 -0
  483. numpy/f2py/tests/src/crackfortran/foo_deps.f90 +6 -0
  484. numpy/f2py/tests/src/crackfortran/gh15035.f +16 -0
  485. numpy/f2py/tests/src/crackfortran/gh17859.f +12 -0
  486. numpy/f2py/tests/src/crackfortran/gh22648.pyf +7 -0
  487. numpy/f2py/tests/src/crackfortran/gh23533.f +5 -0
  488. numpy/f2py/tests/src/crackfortran/gh23598.f90 +4 -0
  489. numpy/f2py/tests/src/crackfortran/gh23598Warn.f90 +11 -0
  490. numpy/f2py/tests/src/crackfortran/gh23879.f90 +20 -0
  491. numpy/f2py/tests/src/crackfortran/gh27697.f90 +12 -0
  492. numpy/f2py/tests/src/crackfortran/gh2848.f90 +13 -0
  493. numpy/f2py/tests/src/crackfortran/operators.f90 +49 -0
  494. numpy/f2py/tests/src/crackfortran/privatemod.f90 +11 -0
  495. numpy/f2py/tests/src/crackfortran/publicmod.f90 +10 -0
  496. numpy/f2py/tests/src/crackfortran/pubprivmod.f90 +10 -0
  497. numpy/f2py/tests/src/crackfortran/unicode_comment.f90 +4 -0
  498. numpy/f2py/tests/src/f2cmap/.f2py_f2cmap +1 -0
  499. numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90 +9 -0
  500. numpy/f2py/tests/src/isocintrin/isoCtests.f90 +34 -0
  501. numpy/f2py/tests/src/kind/foo.f90 +20 -0
  502. numpy/f2py/tests/src/mixed/foo.f +5 -0
  503. numpy/f2py/tests/src/mixed/foo_fixed.f90 +8 -0
  504. numpy/f2py/tests/src/mixed/foo_free.f90 +8 -0
  505. numpy/f2py/tests/src/modules/gh25337/data.f90 +8 -0
  506. numpy/f2py/tests/src/modules/gh25337/use_data.f90 +6 -0
  507. numpy/f2py/tests/src/modules/gh26920/two_mods_with_no_public_entities.f90 +21 -0
  508. numpy/f2py/tests/src/modules/gh26920/two_mods_with_one_public_routine.f90 +21 -0
  509. numpy/f2py/tests/src/modules/module_data_docstring.f90 +12 -0
  510. numpy/f2py/tests/src/modules/use_modules.f90 +20 -0
  511. numpy/f2py/tests/src/negative_bounds/issue_20853.f90 +7 -0
  512. numpy/f2py/tests/src/parameter/constant_array.f90 +45 -0
  513. numpy/f2py/tests/src/parameter/constant_both.f90 +57 -0
  514. numpy/f2py/tests/src/parameter/constant_compound.f90 +15 -0
  515. numpy/f2py/tests/src/parameter/constant_integer.f90 +22 -0
  516. numpy/f2py/tests/src/parameter/constant_non_compound.f90 +23 -0
  517. numpy/f2py/tests/src/parameter/constant_real.f90 +23 -0
  518. numpy/f2py/tests/src/quoted_character/foo.f +14 -0
  519. numpy/f2py/tests/src/regression/AB.inc +1 -0
  520. numpy/f2py/tests/src/regression/assignOnlyModule.f90 +25 -0
  521. numpy/f2py/tests/src/regression/datonly.f90 +17 -0
  522. numpy/f2py/tests/src/regression/f77comments.f +26 -0
  523. numpy/f2py/tests/src/regression/f77fixedform.f95 +5 -0
  524. numpy/f2py/tests/src/regression/f90continuation.f90 +9 -0
  525. numpy/f2py/tests/src/regression/incfile.f90 +5 -0
  526. numpy/f2py/tests/src/regression/inout.f90 +9 -0
  527. numpy/f2py/tests/src/regression/lower_f2py_fortran.f90 +5 -0
  528. numpy/f2py/tests/src/regression/mod_derived_types.f90 +23 -0
  529. numpy/f2py/tests/src/return_character/foo77.f +45 -0
  530. numpy/f2py/tests/src/return_character/foo90.f90 +48 -0
  531. numpy/f2py/tests/src/return_complex/foo77.f +45 -0
  532. numpy/f2py/tests/src/return_complex/foo90.f90 +48 -0
  533. numpy/f2py/tests/src/return_integer/foo77.f +56 -0
  534. numpy/f2py/tests/src/return_integer/foo90.f90 +59 -0
  535. numpy/f2py/tests/src/return_logical/foo77.f +56 -0
  536. numpy/f2py/tests/src/return_logical/foo90.f90 +59 -0
  537. numpy/f2py/tests/src/return_real/foo77.f +45 -0
  538. numpy/f2py/tests/src/return_real/foo90.f90 +48 -0
  539. numpy/f2py/tests/src/routines/funcfortranname.f +5 -0
  540. numpy/f2py/tests/src/routines/funcfortranname.pyf +11 -0
  541. numpy/f2py/tests/src/routines/subrout.f +4 -0
  542. numpy/f2py/tests/src/routines/subrout.pyf +10 -0
  543. numpy/f2py/tests/src/size/foo.f90 +44 -0
  544. numpy/f2py/tests/src/string/char.f90 +29 -0
  545. numpy/f2py/tests/src/string/fixed_string.f90 +34 -0
  546. numpy/f2py/tests/src/string/gh24008.f +8 -0
  547. numpy/f2py/tests/src/string/gh24662.f90 +7 -0
  548. numpy/f2py/tests/src/string/gh25286.f90 +14 -0
  549. numpy/f2py/tests/src/string/gh25286.pyf +12 -0
  550. numpy/f2py/tests/src/string/gh25286_bc.pyf +12 -0
  551. numpy/f2py/tests/src/string/scalar_string.f90 +9 -0
  552. numpy/f2py/tests/src/string/string.f +12 -0
  553. numpy/f2py/tests/src/value_attrspec/gh21665.f90 +9 -0
  554. numpy/f2py/tests/test_abstract_interface.py +26 -0
  555. numpy/f2py/tests/test_array_from_pyobj.py +678 -0
  556. numpy/f2py/tests/test_assumed_shape.py +50 -0
  557. numpy/f2py/tests/test_block_docstring.py +20 -0
  558. numpy/f2py/tests/test_callback.py +263 -0
  559. numpy/f2py/tests/test_character.py +641 -0
  560. numpy/f2py/tests/test_common.py +23 -0
  561. numpy/f2py/tests/test_crackfortran.py +421 -0
  562. numpy/f2py/tests/test_data.py +71 -0
  563. numpy/f2py/tests/test_docs.py +66 -0
  564. numpy/f2py/tests/test_f2cmap.py +17 -0
  565. numpy/f2py/tests/test_f2py2e.py +983 -0
  566. numpy/f2py/tests/test_isoc.py +56 -0
  567. numpy/f2py/tests/test_kind.py +52 -0
  568. numpy/f2py/tests/test_mixed.py +35 -0
  569. numpy/f2py/tests/test_modules.py +83 -0
  570. numpy/f2py/tests/test_parameter.py +129 -0
  571. numpy/f2py/tests/test_pyf_src.py +43 -0
  572. numpy/f2py/tests/test_quoted_character.py +18 -0
  573. numpy/f2py/tests/test_regression.py +187 -0
  574. numpy/f2py/tests/test_return_character.py +48 -0
  575. numpy/f2py/tests/test_return_complex.py +67 -0
  576. numpy/f2py/tests/test_return_integer.py +55 -0
  577. numpy/f2py/tests/test_return_logical.py +65 -0
  578. numpy/f2py/tests/test_return_real.py +109 -0
  579. numpy/f2py/tests/test_routines.py +29 -0
  580. numpy/f2py/tests/test_semicolon_split.py +75 -0
  581. numpy/f2py/tests/test_size.py +45 -0
  582. numpy/f2py/tests/test_string.py +100 -0
  583. numpy/f2py/tests/test_symbolic.py +500 -0
  584. numpy/f2py/tests/test_value_attrspec.py +15 -0
  585. numpy/f2py/tests/util.py +442 -0
  586. numpy/f2py/use_rules.py +99 -0
  587. numpy/f2py/use_rules.pyi +9 -0
  588. numpy/fft/__init__.py +213 -0
  589. numpy/fft/__init__.pyi +38 -0
  590. numpy/fft/_helper.py +235 -0
  591. numpy/fft/_helper.pyi +44 -0
  592. numpy/fft/_pocketfft.py +1693 -0
  593. numpy/fft/_pocketfft.pyi +137 -0
  594. numpy/fft/_pocketfft_umath.pypy311-pp73-darwin.so +0 -0
  595. numpy/fft/tests/__init__.py +0 -0
  596. numpy/fft/tests/test_helper.py +167 -0
  597. numpy/fft/tests/test_pocketfft.py +589 -0
  598. numpy/lib/__init__.py +97 -0
  599. numpy/lib/__init__.pyi +52 -0
  600. numpy/lib/_array_utils_impl.py +62 -0
  601. numpy/lib/_array_utils_impl.pyi +10 -0
  602. numpy/lib/_arraypad_impl.py +926 -0
  603. numpy/lib/_arraypad_impl.pyi +88 -0
  604. numpy/lib/_arraysetops_impl.py +1158 -0
  605. numpy/lib/_arraysetops_impl.pyi +462 -0
  606. numpy/lib/_arrayterator_impl.py +224 -0
  607. numpy/lib/_arrayterator_impl.pyi +45 -0
  608. numpy/lib/_datasource.py +700 -0
  609. numpy/lib/_datasource.pyi +30 -0
  610. numpy/lib/_format_impl.py +1036 -0
  611. numpy/lib/_format_impl.pyi +56 -0
  612. numpy/lib/_function_base_impl.py +5760 -0
  613. numpy/lib/_function_base_impl.pyi +2324 -0
  614. numpy/lib/_histograms_impl.py +1085 -0
  615. numpy/lib/_histograms_impl.pyi +40 -0
  616. numpy/lib/_index_tricks_impl.py +1048 -0
  617. numpy/lib/_index_tricks_impl.pyi +267 -0
  618. numpy/lib/_iotools.py +900 -0
  619. numpy/lib/_iotools.pyi +116 -0
  620. numpy/lib/_nanfunctions_impl.py +2006 -0
  621. numpy/lib/_nanfunctions_impl.pyi +48 -0
  622. numpy/lib/_npyio_impl.py +2583 -0
  623. numpy/lib/_npyio_impl.pyi +299 -0
  624. numpy/lib/_polynomial_impl.py +1465 -0
  625. numpy/lib/_polynomial_impl.pyi +338 -0
  626. numpy/lib/_scimath_impl.py +642 -0
  627. numpy/lib/_scimath_impl.pyi +93 -0
  628. numpy/lib/_shape_base_impl.py +1289 -0
  629. numpy/lib/_shape_base_impl.pyi +236 -0
  630. numpy/lib/_stride_tricks_impl.py +582 -0
  631. numpy/lib/_stride_tricks_impl.pyi +73 -0
  632. numpy/lib/_twodim_base_impl.py +1201 -0
  633. numpy/lib/_twodim_base_impl.pyi +408 -0
  634. numpy/lib/_type_check_impl.py +710 -0
  635. numpy/lib/_type_check_impl.pyi +348 -0
  636. numpy/lib/_ufunclike_impl.py +199 -0
  637. numpy/lib/_ufunclike_impl.pyi +60 -0
  638. numpy/lib/_user_array_impl.py +310 -0
  639. numpy/lib/_user_array_impl.pyi +226 -0
  640. numpy/lib/_utils_impl.py +784 -0
  641. numpy/lib/_utils_impl.pyi +22 -0
  642. numpy/lib/_version.py +153 -0
  643. numpy/lib/_version.pyi +17 -0
  644. numpy/lib/array_utils.py +7 -0
  645. numpy/lib/array_utils.pyi +6 -0
  646. numpy/lib/format.py +24 -0
  647. numpy/lib/format.pyi +24 -0
  648. numpy/lib/introspect.py +94 -0
  649. numpy/lib/introspect.pyi +3 -0
  650. numpy/lib/mixins.py +180 -0
  651. numpy/lib/mixins.pyi +78 -0
  652. numpy/lib/npyio.py +1 -0
  653. numpy/lib/npyio.pyi +5 -0
  654. numpy/lib/recfunctions.py +1681 -0
  655. numpy/lib/recfunctions.pyi +444 -0
  656. numpy/lib/scimath.py +13 -0
  657. numpy/lib/scimath.pyi +12 -0
  658. numpy/lib/stride_tricks.py +1 -0
  659. numpy/lib/stride_tricks.pyi +4 -0
  660. numpy/lib/tests/__init__.py +0 -0
  661. numpy/lib/tests/data/py2-np0-objarr.npy +0 -0
  662. numpy/lib/tests/data/py2-objarr.npy +0 -0
  663. numpy/lib/tests/data/py2-objarr.npz +0 -0
  664. numpy/lib/tests/data/py3-objarr.npy +0 -0
  665. numpy/lib/tests/data/py3-objarr.npz +0 -0
  666. numpy/lib/tests/data/python3.npy +0 -0
  667. numpy/lib/tests/data/win64python2.npy +0 -0
  668. numpy/lib/tests/test__datasource.py +328 -0
  669. numpy/lib/tests/test__iotools.py +358 -0
  670. numpy/lib/tests/test__version.py +64 -0
  671. numpy/lib/tests/test_array_utils.py +32 -0
  672. numpy/lib/tests/test_arraypad.py +1427 -0
  673. numpy/lib/tests/test_arraysetops.py +1302 -0
  674. numpy/lib/tests/test_arrayterator.py +45 -0
  675. numpy/lib/tests/test_format.py +1054 -0
  676. numpy/lib/tests/test_function_base.py +4750 -0
  677. numpy/lib/tests/test_histograms.py +855 -0
  678. numpy/lib/tests/test_index_tricks.py +693 -0
  679. numpy/lib/tests/test_io.py +2857 -0
  680. numpy/lib/tests/test_loadtxt.py +1099 -0
  681. numpy/lib/tests/test_mixins.py +215 -0
  682. numpy/lib/tests/test_nanfunctions.py +1438 -0
  683. numpy/lib/tests/test_packbits.py +376 -0
  684. numpy/lib/tests/test_polynomial.py +325 -0
  685. numpy/lib/tests/test_recfunctions.py +1042 -0
  686. numpy/lib/tests/test_regression.py +231 -0
  687. numpy/lib/tests/test_shape_base.py +813 -0
  688. numpy/lib/tests/test_stride_tricks.py +655 -0
  689. numpy/lib/tests/test_twodim_base.py +559 -0
  690. numpy/lib/tests/test_type_check.py +473 -0
  691. numpy/lib/tests/test_ufunclike.py +97 -0
  692. numpy/lib/tests/test_utils.py +80 -0
  693. numpy/lib/user_array.py +1 -0
  694. numpy/lib/user_array.pyi +1 -0
  695. numpy/linalg/__init__.py +95 -0
  696. numpy/linalg/__init__.pyi +71 -0
  697. numpy/linalg/_linalg.py +3657 -0
  698. numpy/linalg/_linalg.pyi +548 -0
  699. numpy/linalg/_umath_linalg.pyi +60 -0
  700. numpy/linalg/_umath_linalg.pypy311-pp73-darwin.so +0 -0
  701. numpy/linalg/lapack_lite.pyi +143 -0
  702. numpy/linalg/lapack_lite.pypy311-pp73-darwin.so +0 -0
  703. numpy/linalg/tests/__init__.py +0 -0
  704. numpy/linalg/tests/test_deprecations.py +21 -0
  705. numpy/linalg/tests/test_linalg.py +2442 -0
  706. numpy/linalg/tests/test_regression.py +182 -0
  707. numpy/ma/API_CHANGES.txt +135 -0
  708. numpy/ma/LICENSE +24 -0
  709. numpy/ma/README.rst +236 -0
  710. numpy/ma/__init__.py +53 -0
  711. numpy/ma/__init__.pyi +458 -0
  712. numpy/ma/core.py +8929 -0
  713. numpy/ma/core.pyi +3720 -0
  714. numpy/ma/extras.py +2266 -0
  715. numpy/ma/extras.pyi +297 -0
  716. numpy/ma/mrecords.py +762 -0
  717. numpy/ma/mrecords.pyi +96 -0
  718. numpy/ma/tests/__init__.py +0 -0
  719. numpy/ma/tests/test_arrayobject.py +40 -0
  720. numpy/ma/tests/test_core.py +6008 -0
  721. numpy/ma/tests/test_deprecations.py +65 -0
  722. numpy/ma/tests/test_extras.py +1945 -0
  723. numpy/ma/tests/test_mrecords.py +495 -0
  724. numpy/ma/tests/test_old_ma.py +939 -0
  725. numpy/ma/tests/test_regression.py +83 -0
  726. numpy/ma/tests/test_subclassing.py +469 -0
  727. numpy/ma/testutils.py +294 -0
  728. numpy/ma/testutils.pyi +69 -0
  729. numpy/matlib.py +380 -0
  730. numpy/matlib.pyi +580 -0
  731. numpy/matrixlib/__init__.py +12 -0
  732. numpy/matrixlib/__init__.pyi +3 -0
  733. numpy/matrixlib/defmatrix.py +1119 -0
  734. numpy/matrixlib/defmatrix.pyi +218 -0
  735. numpy/matrixlib/tests/__init__.py +0 -0
  736. numpy/matrixlib/tests/test_defmatrix.py +455 -0
  737. numpy/matrixlib/tests/test_interaction.py +360 -0
  738. numpy/matrixlib/tests/test_masked_matrix.py +240 -0
  739. numpy/matrixlib/tests/test_matrix_linalg.py +110 -0
  740. numpy/matrixlib/tests/test_multiarray.py +17 -0
  741. numpy/matrixlib/tests/test_numeric.py +18 -0
  742. numpy/matrixlib/tests/test_regression.py +31 -0
  743. numpy/polynomial/__init__.py +187 -0
  744. numpy/polynomial/__init__.pyi +31 -0
  745. numpy/polynomial/_polybase.py +1191 -0
  746. numpy/polynomial/_polybase.pyi +262 -0
  747. numpy/polynomial/_polytypes.pyi +501 -0
  748. numpy/polynomial/chebyshev.py +2001 -0
  749. numpy/polynomial/chebyshev.pyi +180 -0
  750. numpy/polynomial/hermite.py +1738 -0
  751. numpy/polynomial/hermite.pyi +106 -0
  752. numpy/polynomial/hermite_e.py +1640 -0
  753. numpy/polynomial/hermite_e.pyi +106 -0
  754. numpy/polynomial/laguerre.py +1673 -0
  755. numpy/polynomial/laguerre.pyi +100 -0
  756. numpy/polynomial/legendre.py +1603 -0
  757. numpy/polynomial/legendre.pyi +100 -0
  758. numpy/polynomial/polynomial.py +1625 -0
  759. numpy/polynomial/polynomial.pyi +109 -0
  760. numpy/polynomial/polyutils.py +759 -0
  761. numpy/polynomial/polyutils.pyi +307 -0
  762. numpy/polynomial/tests/__init__.py +0 -0
  763. numpy/polynomial/tests/test_chebyshev.py +618 -0
  764. numpy/polynomial/tests/test_classes.py +613 -0
  765. numpy/polynomial/tests/test_hermite.py +553 -0
  766. numpy/polynomial/tests/test_hermite_e.py +554 -0
  767. numpy/polynomial/tests/test_laguerre.py +535 -0
  768. numpy/polynomial/tests/test_legendre.py +566 -0
  769. numpy/polynomial/tests/test_polynomial.py +691 -0
  770. numpy/polynomial/tests/test_polyutils.py +123 -0
  771. numpy/polynomial/tests/test_printing.py +557 -0
  772. numpy/polynomial/tests/test_symbol.py +217 -0
  773. numpy/py.typed +0 -0
  774. numpy/random/LICENSE.md +71 -0
  775. numpy/random/__init__.pxd +14 -0
  776. numpy/random/__init__.py +213 -0
  777. numpy/random/__init__.pyi +124 -0
  778. numpy/random/_bounded_integers.pxd +29 -0
  779. numpy/random/_bounded_integers.pyi +1 -0
  780. numpy/random/_bounded_integers.pypy311-pp73-darwin.so +0 -0
  781. numpy/random/_common.pxd +110 -0
  782. numpy/random/_common.pyi +16 -0
  783. numpy/random/_common.pypy311-pp73-darwin.so +0 -0
  784. numpy/random/_examples/cffi/extending.py +44 -0
  785. numpy/random/_examples/cffi/parse.py +53 -0
  786. numpy/random/_examples/cython/extending.pyx +77 -0
  787. numpy/random/_examples/cython/extending_distributions.pyx +117 -0
  788. numpy/random/_examples/cython/meson.build +53 -0
  789. numpy/random/_examples/numba/extending.py +86 -0
  790. numpy/random/_examples/numba/extending_distributions.py +67 -0
  791. numpy/random/_generator.pyi +862 -0
  792. numpy/random/_generator.pypy311-pp73-darwin.so +0 -0
  793. numpy/random/_mt19937.pyi +27 -0
  794. numpy/random/_mt19937.pypy311-pp73-darwin.so +0 -0
  795. numpy/random/_pcg64.pyi +41 -0
  796. numpy/random/_pcg64.pypy311-pp73-darwin.so +0 -0
  797. numpy/random/_philox.pyi +36 -0
  798. numpy/random/_philox.pypy311-pp73-darwin.so +0 -0
  799. numpy/random/_pickle.py +88 -0
  800. numpy/random/_pickle.pyi +43 -0
  801. numpy/random/_sfc64.pyi +25 -0
  802. numpy/random/_sfc64.pypy311-pp73-darwin.so +0 -0
  803. numpy/random/bit_generator.pxd +40 -0
  804. numpy/random/bit_generator.pyi +123 -0
  805. numpy/random/bit_generator.pypy311-pp73-darwin.so +0 -0
  806. numpy/random/c_distributions.pxd +119 -0
  807. numpy/random/lib/libnpyrandom.a +0 -0
  808. numpy/random/mtrand.pyi +759 -0
  809. numpy/random/mtrand.pypy311-pp73-darwin.so +0 -0
  810. numpy/random/tests/__init__.py +0 -0
  811. numpy/random/tests/data/__init__.py +0 -0
  812. numpy/random/tests/data/generator_pcg64_np121.pkl.gz +0 -0
  813. numpy/random/tests/data/generator_pcg64_np126.pkl.gz +0 -0
  814. numpy/random/tests/data/mt19937-testset-1.csv +1001 -0
  815. numpy/random/tests/data/mt19937-testset-2.csv +1001 -0
  816. numpy/random/tests/data/pcg64-testset-1.csv +1001 -0
  817. numpy/random/tests/data/pcg64-testset-2.csv +1001 -0
  818. numpy/random/tests/data/pcg64dxsm-testset-1.csv +1001 -0
  819. numpy/random/tests/data/pcg64dxsm-testset-2.csv +1001 -0
  820. numpy/random/tests/data/philox-testset-1.csv +1001 -0
  821. numpy/random/tests/data/philox-testset-2.csv +1001 -0
  822. numpy/random/tests/data/sfc64-testset-1.csv +1001 -0
  823. numpy/random/tests/data/sfc64-testset-2.csv +1001 -0
  824. numpy/random/tests/data/sfc64_np126.pkl.gz +0 -0
  825. numpy/random/tests/test_direct.py +595 -0
  826. numpy/random/tests/test_extending.py +131 -0
  827. numpy/random/tests/test_generator_mt19937.py +2825 -0
  828. numpy/random/tests/test_generator_mt19937_regressions.py +221 -0
  829. numpy/random/tests/test_random.py +1724 -0
  830. numpy/random/tests/test_randomstate.py +2099 -0
  831. numpy/random/tests/test_randomstate_regression.py +213 -0
  832. numpy/random/tests/test_regression.py +175 -0
  833. numpy/random/tests/test_seed_sequence.py +79 -0
  834. numpy/random/tests/test_smoke.py +882 -0
  835. numpy/rec/__init__.py +2 -0
  836. numpy/rec/__init__.pyi +23 -0
  837. numpy/strings/__init__.py +2 -0
  838. numpy/strings/__init__.pyi +97 -0
  839. numpy/testing/__init__.py +22 -0
  840. numpy/testing/__init__.pyi +107 -0
  841. numpy/testing/_private/__init__.py +0 -0
  842. numpy/testing/_private/__init__.pyi +0 -0
  843. numpy/testing/_private/extbuild.py +250 -0
  844. numpy/testing/_private/extbuild.pyi +25 -0
  845. numpy/testing/_private/utils.py +2830 -0
  846. numpy/testing/_private/utils.pyi +505 -0
  847. numpy/testing/overrides.py +84 -0
  848. numpy/testing/overrides.pyi +10 -0
  849. numpy/testing/print_coercion_tables.py +207 -0
  850. numpy/testing/print_coercion_tables.pyi +26 -0
  851. numpy/testing/tests/__init__.py +0 -0
  852. numpy/testing/tests/test_utils.py +2123 -0
  853. numpy/tests/__init__.py +0 -0
  854. numpy/tests/test__all__.py +10 -0
  855. numpy/tests/test_configtool.py +51 -0
  856. numpy/tests/test_ctypeslib.py +383 -0
  857. numpy/tests/test_lazyloading.py +42 -0
  858. numpy/tests/test_matlib.py +59 -0
  859. numpy/tests/test_numpy_config.py +47 -0
  860. numpy/tests/test_numpy_version.py +54 -0
  861. numpy/tests/test_public_api.py +807 -0
  862. numpy/tests/test_reloading.py +76 -0
  863. numpy/tests/test_scripts.py +48 -0
  864. numpy/tests/test_warnings.py +79 -0
  865. numpy/typing/__init__.py +233 -0
  866. numpy/typing/__init__.pyi +3 -0
  867. numpy/typing/mypy_plugin.py +200 -0
  868. numpy/typing/tests/__init__.py +0 -0
  869. numpy/typing/tests/data/fail/arithmetic.pyi +126 -0
  870. numpy/typing/tests/data/fail/array_constructors.pyi +34 -0
  871. numpy/typing/tests/data/fail/array_like.pyi +15 -0
  872. numpy/typing/tests/data/fail/array_pad.pyi +6 -0
  873. numpy/typing/tests/data/fail/arrayprint.pyi +15 -0
  874. numpy/typing/tests/data/fail/arrayterator.pyi +14 -0
  875. numpy/typing/tests/data/fail/bitwise_ops.pyi +17 -0
  876. numpy/typing/tests/data/fail/char.pyi +63 -0
  877. numpy/typing/tests/data/fail/chararray.pyi +61 -0
  878. numpy/typing/tests/data/fail/comparisons.pyi +27 -0
  879. numpy/typing/tests/data/fail/constants.pyi +3 -0
  880. numpy/typing/tests/data/fail/datasource.pyi +16 -0
  881. numpy/typing/tests/data/fail/dtype.pyi +17 -0
  882. numpy/typing/tests/data/fail/einsumfunc.pyi +12 -0
  883. numpy/typing/tests/data/fail/flatiter.pyi +38 -0
  884. numpy/typing/tests/data/fail/fromnumeric.pyi +148 -0
  885. numpy/typing/tests/data/fail/histograms.pyi +12 -0
  886. numpy/typing/tests/data/fail/index_tricks.pyi +14 -0
  887. numpy/typing/tests/data/fail/lib_function_base.pyi +60 -0
  888. numpy/typing/tests/data/fail/lib_polynomial.pyi +29 -0
  889. numpy/typing/tests/data/fail/lib_utils.pyi +3 -0
  890. numpy/typing/tests/data/fail/lib_version.pyi +6 -0
  891. numpy/typing/tests/data/fail/linalg.pyi +52 -0
  892. numpy/typing/tests/data/fail/ma.pyi +155 -0
  893. numpy/typing/tests/data/fail/memmap.pyi +5 -0
  894. numpy/typing/tests/data/fail/modules.pyi +17 -0
  895. numpy/typing/tests/data/fail/multiarray.pyi +52 -0
  896. numpy/typing/tests/data/fail/ndarray.pyi +11 -0
  897. numpy/typing/tests/data/fail/ndarray_misc.pyi +49 -0
  898. numpy/typing/tests/data/fail/nditer.pyi +8 -0
  899. numpy/typing/tests/data/fail/nested_sequence.pyi +17 -0
  900. numpy/typing/tests/data/fail/npyio.pyi +24 -0
  901. numpy/typing/tests/data/fail/numerictypes.pyi +5 -0
  902. numpy/typing/tests/data/fail/random.pyi +62 -0
  903. numpy/typing/tests/data/fail/rec.pyi +17 -0
  904. numpy/typing/tests/data/fail/scalars.pyi +86 -0
  905. numpy/typing/tests/data/fail/shape.pyi +7 -0
  906. numpy/typing/tests/data/fail/shape_base.pyi +8 -0
  907. numpy/typing/tests/data/fail/stride_tricks.pyi +9 -0
  908. numpy/typing/tests/data/fail/strings.pyi +52 -0
  909. numpy/typing/tests/data/fail/testing.pyi +28 -0
  910. numpy/typing/tests/data/fail/twodim_base.pyi +39 -0
  911. numpy/typing/tests/data/fail/type_check.pyi +12 -0
  912. numpy/typing/tests/data/fail/ufunc_config.pyi +21 -0
  913. numpy/typing/tests/data/fail/ufunclike.pyi +21 -0
  914. numpy/typing/tests/data/fail/ufuncs.pyi +17 -0
  915. numpy/typing/tests/data/fail/warnings_and_errors.pyi +5 -0
  916. numpy/typing/tests/data/misc/extended_precision.pyi +9 -0
  917. numpy/typing/tests/data/mypy.ini +8 -0
  918. numpy/typing/tests/data/pass/arithmetic.py +614 -0
  919. numpy/typing/tests/data/pass/array_constructors.py +138 -0
  920. numpy/typing/tests/data/pass/array_like.py +43 -0
  921. numpy/typing/tests/data/pass/arrayprint.py +37 -0
  922. numpy/typing/tests/data/pass/arrayterator.py +28 -0
  923. numpy/typing/tests/data/pass/bitwise_ops.py +131 -0
  924. numpy/typing/tests/data/pass/comparisons.py +316 -0
  925. numpy/typing/tests/data/pass/dtype.py +57 -0
  926. numpy/typing/tests/data/pass/einsumfunc.py +36 -0
  927. numpy/typing/tests/data/pass/flatiter.py +26 -0
  928. numpy/typing/tests/data/pass/fromnumeric.py +272 -0
  929. numpy/typing/tests/data/pass/index_tricks.py +62 -0
  930. numpy/typing/tests/data/pass/lib_user_array.py +22 -0
  931. numpy/typing/tests/data/pass/lib_utils.py +19 -0
  932. numpy/typing/tests/data/pass/lib_version.py +18 -0
  933. numpy/typing/tests/data/pass/literal.py +52 -0
  934. numpy/typing/tests/data/pass/ma.py +199 -0
  935. numpy/typing/tests/data/pass/mod.py +149 -0
  936. numpy/typing/tests/data/pass/modules.py +45 -0
  937. numpy/typing/tests/data/pass/multiarray.py +77 -0
  938. numpy/typing/tests/data/pass/ndarray_conversion.py +81 -0
  939. numpy/typing/tests/data/pass/ndarray_misc.py +199 -0
  940. numpy/typing/tests/data/pass/ndarray_shape_manipulation.py +47 -0
  941. numpy/typing/tests/data/pass/nditer.py +4 -0
  942. numpy/typing/tests/data/pass/numeric.py +90 -0
  943. numpy/typing/tests/data/pass/numerictypes.py +17 -0
  944. numpy/typing/tests/data/pass/random.py +1498 -0
  945. numpy/typing/tests/data/pass/recfunctions.py +164 -0
  946. numpy/typing/tests/data/pass/scalars.py +249 -0
  947. numpy/typing/tests/data/pass/shape.py +19 -0
  948. numpy/typing/tests/data/pass/simple.py +170 -0
  949. numpy/typing/tests/data/pass/ufunc_config.py +64 -0
  950. numpy/typing/tests/data/pass/ufunclike.py +52 -0
  951. numpy/typing/tests/data/pass/ufuncs.py +16 -0
  952. numpy/typing/tests/data/pass/warnings_and_errors.py +6 -0
  953. numpy/typing/tests/data/reveal/arithmetic.pyi +719 -0
  954. numpy/typing/tests/data/reveal/array_api_info.pyi +70 -0
  955. numpy/typing/tests/data/reveal/array_constructors.pyi +277 -0
  956. numpy/typing/tests/data/reveal/arraypad.pyi +27 -0
  957. numpy/typing/tests/data/reveal/arrayprint.pyi +25 -0
  958. numpy/typing/tests/data/reveal/arraysetops.pyi +74 -0
  959. numpy/typing/tests/data/reveal/arrayterator.pyi +27 -0
  960. numpy/typing/tests/data/reveal/bitwise_ops.pyi +166 -0
  961. numpy/typing/tests/data/reveal/char.pyi +225 -0
  962. numpy/typing/tests/data/reveal/chararray.pyi +138 -0
  963. numpy/typing/tests/data/reveal/comparisons.pyi +264 -0
  964. numpy/typing/tests/data/reveal/constants.pyi +14 -0
  965. numpy/typing/tests/data/reveal/ctypeslib.pyi +81 -0
  966. numpy/typing/tests/data/reveal/datasource.pyi +23 -0
  967. numpy/typing/tests/data/reveal/dtype.pyi +132 -0
  968. numpy/typing/tests/data/reveal/einsumfunc.pyi +39 -0
  969. numpy/typing/tests/data/reveal/emath.pyi +54 -0
  970. numpy/typing/tests/data/reveal/fft.pyi +37 -0
  971. numpy/typing/tests/data/reveal/flatiter.pyi +86 -0
  972. numpy/typing/tests/data/reveal/fromnumeric.pyi +347 -0
  973. numpy/typing/tests/data/reveal/getlimits.pyi +53 -0
  974. numpy/typing/tests/data/reveal/histograms.pyi +25 -0
  975. numpy/typing/tests/data/reveal/index_tricks.pyi +70 -0
  976. numpy/typing/tests/data/reveal/lib_function_base.pyi +409 -0
  977. numpy/typing/tests/data/reveal/lib_polynomial.pyi +147 -0
  978. numpy/typing/tests/data/reveal/lib_utils.pyi +17 -0
  979. numpy/typing/tests/data/reveal/lib_version.pyi +20 -0
  980. numpy/typing/tests/data/reveal/linalg.pyi +154 -0
  981. numpy/typing/tests/data/reveal/ma.pyi +1098 -0
  982. numpy/typing/tests/data/reveal/matrix.pyi +73 -0
  983. numpy/typing/tests/data/reveal/memmap.pyi +19 -0
  984. numpy/typing/tests/data/reveal/mod.pyi +178 -0
  985. numpy/typing/tests/data/reveal/modules.pyi +51 -0
  986. numpy/typing/tests/data/reveal/multiarray.pyi +197 -0
  987. numpy/typing/tests/data/reveal/nbit_base_example.pyi +20 -0
  988. numpy/typing/tests/data/reveal/ndarray_assignability.pyi +82 -0
  989. numpy/typing/tests/data/reveal/ndarray_conversion.pyi +83 -0
  990. numpy/typing/tests/data/reveal/ndarray_misc.pyi +246 -0
  991. numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi +47 -0
  992. numpy/typing/tests/data/reveal/nditer.pyi +49 -0
  993. numpy/typing/tests/data/reveal/nested_sequence.pyi +25 -0
  994. numpy/typing/tests/data/reveal/npyio.pyi +83 -0
  995. numpy/typing/tests/data/reveal/numeric.pyi +170 -0
  996. numpy/typing/tests/data/reveal/numerictypes.pyi +16 -0
  997. numpy/typing/tests/data/reveal/polynomial_polybase.pyi +217 -0
  998. numpy/typing/tests/data/reveal/polynomial_polyutils.pyi +218 -0
  999. numpy/typing/tests/data/reveal/polynomial_series.pyi +138 -0
  1000. numpy/typing/tests/data/reveal/random.pyi +1546 -0
  1001. numpy/typing/tests/data/reveal/rec.pyi +171 -0
  1002. numpy/typing/tests/data/reveal/scalars.pyi +191 -0
  1003. numpy/typing/tests/data/reveal/shape.pyi +13 -0
  1004. numpy/typing/tests/data/reveal/shape_base.pyi +52 -0
  1005. numpy/typing/tests/data/reveal/stride_tricks.pyi +27 -0
  1006. numpy/typing/tests/data/reveal/strings.pyi +196 -0
  1007. numpy/typing/tests/data/reveal/testing.pyi +198 -0
  1008. numpy/typing/tests/data/reveal/twodim_base.pyi +225 -0
  1009. numpy/typing/tests/data/reveal/type_check.pyi +67 -0
  1010. numpy/typing/tests/data/reveal/ufunc_config.pyi +29 -0
  1011. numpy/typing/tests/data/reveal/ufunclike.pyi +31 -0
  1012. numpy/typing/tests/data/reveal/ufuncs.pyi +142 -0
  1013. numpy/typing/tests/data/reveal/warnings_and_errors.pyi +11 -0
  1014. numpy/typing/tests/test_isfile.py +38 -0
  1015. numpy/typing/tests/test_runtime.py +110 -0
  1016. numpy/typing/tests/test_typing.py +205 -0
  1017. numpy/version.py +11 -0
  1018. numpy/version.pyi +9 -0
  1019. numpy-2.4.1.dist-info/METADATA +139 -0
  1020. numpy-2.4.1.dist-info/RECORD +1039 -0
  1021. numpy-2.4.1.dist-info/WHEEL +6 -0
  1022. numpy-2.4.1.dist-info/entry_points.txt +13 -0
  1023. numpy-2.4.1.dist-info/licenses/LICENSE.txt +935 -0
  1024. numpy-2.4.1.dist-info/licenses/numpy/_core/include/numpy/libdivide/LICENSE.txt +21 -0
  1025. numpy-2.4.1.dist-info/licenses/numpy/_core/src/common/pythoncapi-compat/COPYING +14 -0
  1026. numpy-2.4.1.dist-info/licenses/numpy/_core/src/highway/LICENSE +371 -0
  1027. numpy-2.4.1.dist-info/licenses/numpy/_core/src/multiarray/dragon4_LICENSE.txt +27 -0
  1028. numpy-2.4.1.dist-info/licenses/numpy/_core/src/npysort/x86-simd-sort/LICENSE.md +28 -0
  1029. numpy-2.4.1.dist-info/licenses/numpy/_core/src/umath/svml/LICENSE +30 -0
  1030. numpy-2.4.1.dist-info/licenses/numpy/fft/pocketfft/LICENSE.md +25 -0
  1031. numpy-2.4.1.dist-info/licenses/numpy/linalg/lapack_lite/LICENSE.txt +48 -0
  1032. numpy-2.4.1.dist-info/licenses/numpy/ma/LICENSE +24 -0
  1033. numpy-2.4.1.dist-info/licenses/numpy/random/LICENSE.md +71 -0
  1034. numpy-2.4.1.dist-info/licenses/numpy/random/src/distributions/LICENSE.md +61 -0
  1035. numpy-2.4.1.dist-info/licenses/numpy/random/src/mt19937/LICENSE.md +61 -0
  1036. numpy-2.4.1.dist-info/licenses/numpy/random/src/pcg64/LICENSE.md +22 -0
  1037. numpy-2.4.1.dist-info/licenses/numpy/random/src/philox/LICENSE.md +31 -0
  1038. numpy-2.4.1.dist-info/licenses/numpy/random/src/sfc64/LICENSE.md +27 -0
  1039. numpy-2.4.1.dist-info/licenses/numpy/random/src/splitmix64/LICENSE.md +9 -0
@@ -0,0 +1,1414 @@
1
+ """
2
+ This module contains a set of functions for vectorized string
3
+ operations and methods.
4
+
5
+ .. note::
6
+ The `chararray` class exists for backwards compatibility with
7
+ Numarray, it is not recommended for new development. Starting from numpy
8
+ 1.4, if one needs arrays of strings, it is recommended to use arrays of
9
+ `dtype` `object_`, `bytes_` or `str_`, and use the free functions
10
+ in the `numpy.char` module for fast vectorized string operations.
11
+
12
+ Some methods will only be available if the corresponding string method is
13
+ available in your version of Python.
14
+
15
+ The preferred alias for `defchararray` is `numpy.char`.
16
+
17
+ """
18
+ import functools
19
+
20
+ import numpy as np
21
+ from numpy._core import overrides
22
+ from numpy._core.multiarray import compare_chararrays
23
+ from numpy._core.strings import (
24
+ _join as join,
25
+ _rsplit as rsplit,
26
+ _split as split,
27
+ _splitlines as splitlines,
28
+ )
29
+ from numpy._utils import set_module
30
+ from numpy.strings import *
31
+ from numpy.strings import (
32
+ multiply as strings_multiply,
33
+ partition as strings_partition,
34
+ rpartition as strings_rpartition,
35
+ )
36
+
37
+ from .numeric import array as narray, asarray as asnarray, ndarray
38
+ from .numerictypes import bytes_, character, str_
39
+
40
+ __all__ = [
41
+ 'equal', 'not_equal', 'greater_equal', 'less_equal',
42
+ 'greater', 'less', 'str_len', 'add', 'multiply', 'mod', 'capitalize',
43
+ 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
44
+ 'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace',
45
+ 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition',
46
+ 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit',
47
+ 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase',
48
+ 'title', 'translate', 'upper', 'zfill', 'isnumeric', 'isdecimal',
49
+ 'array', 'asarray', 'compare_chararrays', 'chararray'
50
+ ]
51
+
52
+
53
+ array_function_dispatch = functools.partial(
54
+ overrides.array_function_dispatch, module='numpy.char')
55
+
56
+
57
+ def _binary_op_dispatcher(x1, x2):
58
+ return (x1, x2)
59
+
60
+
61
+ @array_function_dispatch(_binary_op_dispatcher)
62
+ def equal(x1, x2):
63
+ """
64
+ Return (x1 == x2) element-wise.
65
+
66
+ Unlike `numpy.equal`, this comparison is performed by first
67
+ stripping whitespace characters from the end of the string. This
68
+ behavior is provided for backward-compatibility with numarray.
69
+
70
+ Parameters
71
+ ----------
72
+ x1, x2 : array_like of str or unicode
73
+ Input arrays of the same shape.
74
+
75
+ Returns
76
+ -------
77
+ out : ndarray
78
+ Output array of bools.
79
+
80
+ Examples
81
+ --------
82
+ >>> import numpy as np
83
+ >>> y = "aa "
84
+ >>> x = "aa"
85
+ >>> np.char.equal(x, y)
86
+ array(True)
87
+
88
+ See Also
89
+ --------
90
+ not_equal, greater_equal, less_equal, greater, less
91
+ """
92
+ return compare_chararrays(x1, x2, '==', True)
93
+
94
+
95
+ @array_function_dispatch(_binary_op_dispatcher)
96
+ def not_equal(x1, x2):
97
+ """
98
+ Return (x1 != x2) element-wise.
99
+
100
+ Unlike `numpy.not_equal`, this comparison is performed by first
101
+ stripping whitespace characters from the end of the string. This
102
+ behavior is provided for backward-compatibility with numarray.
103
+
104
+ Parameters
105
+ ----------
106
+ x1, x2 : array_like of str or unicode
107
+ Input arrays of the same shape.
108
+
109
+ Returns
110
+ -------
111
+ out : ndarray
112
+ Output array of bools.
113
+
114
+ See Also
115
+ --------
116
+ equal, greater_equal, less_equal, greater, less
117
+
118
+ Examples
119
+ --------
120
+ >>> import numpy as np
121
+ >>> x1 = np.array(['a', 'b', 'c'])
122
+ >>> np.char.not_equal(x1, 'b')
123
+ array([ True, False, True])
124
+
125
+ """
126
+ return compare_chararrays(x1, x2, '!=', True)
127
+
128
+
129
+ @array_function_dispatch(_binary_op_dispatcher)
130
+ def greater_equal(x1, x2):
131
+ """
132
+ Return (x1 >= x2) element-wise.
133
+
134
+ Unlike `numpy.greater_equal`, this comparison is performed by
135
+ first stripping whitespace characters from the end of the string.
136
+ This behavior is provided for backward-compatibility with
137
+ numarray.
138
+
139
+ Parameters
140
+ ----------
141
+ x1, x2 : array_like of str or unicode
142
+ Input arrays of the same shape.
143
+
144
+ Returns
145
+ -------
146
+ out : ndarray
147
+ Output array of bools.
148
+
149
+ See Also
150
+ --------
151
+ equal, not_equal, less_equal, greater, less
152
+
153
+ Examples
154
+ --------
155
+ >>> import numpy as np
156
+ >>> x1 = np.array(['a', 'b', 'c'])
157
+ >>> np.char.greater_equal(x1, 'b')
158
+ array([False, True, True])
159
+
160
+ """
161
+ return compare_chararrays(x1, x2, '>=', True)
162
+
163
+
164
+ @array_function_dispatch(_binary_op_dispatcher)
165
+ def less_equal(x1, x2):
166
+ """
167
+ Return (x1 <= x2) element-wise.
168
+
169
+ Unlike `numpy.less_equal`, this comparison is performed by first
170
+ stripping whitespace characters from the end of the string. This
171
+ behavior is provided for backward-compatibility with numarray.
172
+
173
+ Parameters
174
+ ----------
175
+ x1, x2 : array_like of str or unicode
176
+ Input arrays of the same shape.
177
+
178
+ Returns
179
+ -------
180
+ out : ndarray
181
+ Output array of bools.
182
+
183
+ See Also
184
+ --------
185
+ equal, not_equal, greater_equal, greater, less
186
+
187
+ Examples
188
+ --------
189
+ >>> import numpy as np
190
+ >>> x1 = np.array(['a', 'b', 'c'])
191
+ >>> np.char.less_equal(x1, 'b')
192
+ array([ True, True, False])
193
+
194
+ """
195
+ return compare_chararrays(x1, x2, '<=', True)
196
+
197
+
198
+ @array_function_dispatch(_binary_op_dispatcher)
199
+ def greater(x1, x2):
200
+ """
201
+ Return (x1 > x2) element-wise.
202
+
203
+ Unlike `numpy.greater`, this comparison is performed by first
204
+ stripping whitespace characters from the end of the string. This
205
+ behavior is provided for backward-compatibility with numarray.
206
+
207
+ Parameters
208
+ ----------
209
+ x1, x2 : array_like of str or unicode
210
+ Input arrays of the same shape.
211
+
212
+ Returns
213
+ -------
214
+ out : ndarray
215
+ Output array of bools.
216
+
217
+ See Also
218
+ --------
219
+ equal, not_equal, greater_equal, less_equal, less
220
+
221
+ Examples
222
+ --------
223
+ >>> import numpy as np
224
+ >>> x1 = np.array(['a', 'b', 'c'])
225
+ >>> np.char.greater(x1, 'b')
226
+ array([False, False, True])
227
+
228
+ """
229
+ return compare_chararrays(x1, x2, '>', True)
230
+
231
+
232
+ @array_function_dispatch(_binary_op_dispatcher)
233
+ def less(x1, x2):
234
+ """
235
+ Return (x1 < x2) element-wise.
236
+
237
+ Unlike `numpy.greater`, this comparison is performed by first
238
+ stripping whitespace characters from the end of the string. This
239
+ behavior is provided for backward-compatibility with numarray.
240
+
241
+ Parameters
242
+ ----------
243
+ x1, x2 : array_like of str or unicode
244
+ Input arrays of the same shape.
245
+
246
+ Returns
247
+ -------
248
+ out : ndarray
249
+ Output array of bools.
250
+
251
+ See Also
252
+ --------
253
+ equal, not_equal, greater_equal, less_equal, greater
254
+
255
+ Examples
256
+ --------
257
+ >>> import numpy as np
258
+ >>> x1 = np.array(['a', 'b', 'c'])
259
+ >>> np.char.less(x1, 'b')
260
+ array([True, False, False])
261
+
262
+ """
263
+ return compare_chararrays(x1, x2, '<', True)
264
+
265
+
266
+ @set_module("numpy.char")
267
+ def multiply(a, i):
268
+ """
269
+ Return (a * i), that is string multiple concatenation,
270
+ element-wise.
271
+
272
+ Values in ``i`` of less than 0 are treated as 0 (which yields an
273
+ empty string).
274
+
275
+ Parameters
276
+ ----------
277
+ a : array_like, with `np.bytes_` or `np.str_` dtype
278
+
279
+ i : array_like, with any integer dtype
280
+
281
+ Returns
282
+ -------
283
+ out : ndarray
284
+ Output array of str or unicode, depending on input types
285
+
286
+ Notes
287
+ -----
288
+ This is a thin wrapper around np.strings.multiply that raises
289
+ `ValueError` when ``i`` is not an integer. It only
290
+ exists for backwards-compatibility.
291
+
292
+ Examples
293
+ --------
294
+ >>> import numpy as np
295
+ >>> a = np.array(["a", "b", "c"])
296
+ >>> np.strings.multiply(a, 3)
297
+ array(['aaa', 'bbb', 'ccc'], dtype='<U3')
298
+ >>> i = np.array([1, 2, 3])
299
+ >>> np.strings.multiply(a, i)
300
+ array(['a', 'bb', 'ccc'], dtype='<U3')
301
+ >>> np.strings.multiply(np.array(['a']), i)
302
+ array(['a', 'aa', 'aaa'], dtype='<U3')
303
+ >>> a = np.array(['a', 'b', 'c', 'd', 'e', 'f']).reshape((2, 3))
304
+ >>> np.strings.multiply(a, 3)
305
+ array([['aaa', 'bbb', 'ccc'],
306
+ ['ddd', 'eee', 'fff']], dtype='<U3')
307
+ >>> np.strings.multiply(a, i)
308
+ array([['a', 'bb', 'ccc'],
309
+ ['d', 'ee', 'fff']], dtype='<U3')
310
+
311
+ """
312
+ try:
313
+ return strings_multiply(a, i)
314
+ except TypeError:
315
+ raise ValueError("Can only multiply by integers")
316
+
317
+
318
+ @set_module("numpy.char")
319
+ def partition(a, sep):
320
+ """
321
+ Partition each element in `a` around `sep`.
322
+
323
+ Calls :meth:`str.partition` element-wise.
324
+
325
+ For each element in `a`, split the element as the first
326
+ occurrence of `sep`, and return 3 strings containing the part
327
+ before the separator, the separator itself, and the part after
328
+ the separator. If the separator is not found, return 3 strings
329
+ containing the string itself, followed by two empty strings.
330
+
331
+ Parameters
332
+ ----------
333
+ a : array-like, with ``StringDType``, ``bytes_``, or ``str_`` dtype
334
+ Input array
335
+ sep : {str, unicode}
336
+ Separator to split each string element in `a`.
337
+
338
+ Returns
339
+ -------
340
+ out : ndarray
341
+ Output array of ``StringDType``, ``bytes_`` or ``str_`` dtype,
342
+ depending on input types. The output array will have an extra
343
+ dimension with 3 elements per input element.
344
+
345
+ Examples
346
+ --------
347
+ >>> import numpy as np
348
+ >>> x = np.array(["Numpy is nice!"])
349
+ >>> np.char.partition(x, " ")
350
+ array([['Numpy', ' ', 'is nice!']], dtype='<U8')
351
+
352
+ See Also
353
+ --------
354
+ str.partition
355
+
356
+ """
357
+ return np.stack(strings_partition(a, sep), axis=-1)
358
+
359
+
360
+ @set_module("numpy.char")
361
+ def rpartition(a, sep):
362
+ """
363
+ Partition (split) each element around the right-most separator.
364
+
365
+ Calls :meth:`str.rpartition` element-wise.
366
+
367
+ For each element in `a`, split the element as the last
368
+ occurrence of `sep`, and return 3 strings containing the part
369
+ before the separator, the separator itself, and the part after
370
+ the separator. If the separator is not found, return 3 strings
371
+ containing the string itself, followed by two empty strings.
372
+
373
+ Parameters
374
+ ----------
375
+ a : array-like, with ``StringDType``, ``bytes_``, or ``str_`` dtype
376
+ Input array
377
+ sep : str or unicode
378
+ Right-most separator to split each element in array.
379
+
380
+ Returns
381
+ -------
382
+ out : ndarray
383
+ Output array of ``StringDType``, ``bytes_`` or ``str_`` dtype,
384
+ depending on input types. The output array will have an extra
385
+ dimension with 3 elements per input element.
386
+
387
+ See Also
388
+ --------
389
+ str.rpartition
390
+
391
+ Examples
392
+ --------
393
+ >>> import numpy as np
394
+ >>> a = np.array(['aAaAaA', ' aA ', 'abBABba'])
395
+ >>> np.char.rpartition(a, 'A')
396
+ array([['aAaAa', 'A', ''],
397
+ [' a', 'A', ' '],
398
+ ['abB', 'A', 'Bba']], dtype='<U5')
399
+
400
+ """
401
+ return np.stack(strings_rpartition(a, sep), axis=-1)
402
+
403
+
404
+ @set_module("numpy.char")
405
+ class chararray(ndarray):
406
+ """
407
+ chararray(shape, itemsize=1, unicode=False, buffer=None, offset=0,
408
+ strides=None, order=None)
409
+
410
+ Provides a convenient view on arrays of string and unicode values.
411
+
412
+ .. note::
413
+ The `chararray` class exists for backwards compatibility with
414
+ Numarray, it is not recommended for new development. Starting from numpy
415
+ 1.4, if one needs arrays of strings, it is recommended to use arrays of
416
+ `dtype` `~numpy.object_`, `~numpy.bytes_` or `~numpy.str_`, and use
417
+ the free functions in the `numpy.char` module for fast vectorized
418
+ string operations.
419
+
420
+ Versus a NumPy array of dtype `~numpy.bytes_` or `~numpy.str_`, this
421
+ class adds the following functionality:
422
+
423
+ 1) values automatically have whitespace removed from the end
424
+ when indexed
425
+
426
+ 2) comparison operators automatically remove whitespace from the
427
+ end when comparing values
428
+
429
+ 3) vectorized string operations are provided as methods
430
+ (e.g. `.endswith`) and infix operators (e.g. ``"+", "*", "%"``)
431
+
432
+ chararrays should be created using `numpy.char.array` or
433
+ `numpy.char.asarray`, rather than this constructor directly.
434
+
435
+ This constructor creates the array, using `buffer` (with `offset`
436
+ and `strides`) if it is not ``None``. If `buffer` is ``None``, then
437
+ constructs a new array with `strides` in "C order", unless both
438
+ ``len(shape) >= 2`` and ``order='F'``, in which case `strides`
439
+ is in "Fortran order".
440
+
441
+ Methods
442
+ -------
443
+ astype
444
+ argsort
445
+ copy
446
+ count
447
+ decode
448
+ dump
449
+ dumps
450
+ encode
451
+ endswith
452
+ expandtabs
453
+ fill
454
+ find
455
+ flatten
456
+ getfield
457
+ index
458
+ isalnum
459
+ isalpha
460
+ isdecimal
461
+ isdigit
462
+ islower
463
+ isnumeric
464
+ isspace
465
+ istitle
466
+ isupper
467
+ item
468
+ join
469
+ ljust
470
+ lower
471
+ lstrip
472
+ nonzero
473
+ put
474
+ ravel
475
+ repeat
476
+ replace
477
+ reshape
478
+ resize
479
+ rfind
480
+ rindex
481
+ rjust
482
+ rsplit
483
+ rstrip
484
+ searchsorted
485
+ setfield
486
+ setflags
487
+ sort
488
+ split
489
+ splitlines
490
+ squeeze
491
+ startswith
492
+ strip
493
+ swapaxes
494
+ swapcase
495
+ take
496
+ title
497
+ tofile
498
+ tolist
499
+ translate
500
+ transpose
501
+ upper
502
+ view
503
+ zfill
504
+
505
+ Parameters
506
+ ----------
507
+ shape : tuple
508
+ Shape of the array.
509
+ itemsize : int, optional
510
+ Length of each array element, in number of characters. Default is 1.
511
+ unicode : bool, optional
512
+ Are the array elements of type unicode (True) or string (False).
513
+ Default is False.
514
+ buffer : object exposing the buffer interface or str, optional
515
+ Memory address of the start of the array data. Default is None,
516
+ in which case a new array is created.
517
+ offset : int, optional
518
+ Fixed stride displacement from the beginning of an axis?
519
+ Default is 0. Needs to be >=0.
520
+ strides : array_like of ints, optional
521
+ Strides for the array (see `~numpy.ndarray.strides` for
522
+ full description). Default is None.
523
+ order : {'C', 'F'}, optional
524
+ The order in which the array data is stored in memory: 'C' ->
525
+ "row major" order (the default), 'F' -> "column major"
526
+ (Fortran) order.
527
+
528
+ Examples
529
+ --------
530
+ >>> import numpy as np
531
+ >>> charar = np.char.chararray((3, 3))
532
+ >>> charar[:] = 'a'
533
+ >>> charar
534
+ chararray([[b'a', b'a', b'a'],
535
+ [b'a', b'a', b'a'],
536
+ [b'a', b'a', b'a']], dtype='|S1')
537
+
538
+ >>> charar = np.char.chararray(charar.shape, itemsize=5)
539
+ >>> charar[:] = 'abc'
540
+ >>> charar
541
+ chararray([[b'abc', b'abc', b'abc'],
542
+ [b'abc', b'abc', b'abc'],
543
+ [b'abc', b'abc', b'abc']], dtype='|S5')
544
+
545
+ """
546
+ def __new__(subtype, shape, itemsize=1, unicode=False, buffer=None,
547
+ offset=0, strides=None, order='C'):
548
+ if unicode:
549
+ dtype = str_
550
+ else:
551
+ dtype = bytes_
552
+
553
+ # force itemsize to be a Python int, since using NumPy integer
554
+ # types results in itemsize.itemsize being used as the size of
555
+ # strings in the new array.
556
+ itemsize = int(itemsize)
557
+
558
+ if isinstance(buffer, str):
559
+ # unicode objects do not have the buffer interface
560
+ filler = buffer
561
+ buffer = None
562
+ else:
563
+ filler = None
564
+
565
+ if buffer is None:
566
+ self = ndarray.__new__(subtype, shape, (dtype, itemsize),
567
+ order=order)
568
+ else:
569
+ self = ndarray.__new__(subtype, shape, (dtype, itemsize),
570
+ buffer=buffer,
571
+ offset=offset, strides=strides,
572
+ order=order)
573
+ if filler is not None:
574
+ self[...] = filler
575
+
576
+ return self
577
+
578
+ def __array_wrap__(self, arr, context=None, return_scalar=False):
579
+ # When calling a ufunc (and some other functions), we return a
580
+ # chararray if the ufunc output is a string-like array,
581
+ # or an ndarray otherwise
582
+ if arr.dtype.char in "SUbc":
583
+ return arr.view(type(self))
584
+ return arr
585
+
586
+ def __array_finalize__(self, obj):
587
+ # The b is a special case because it is used for reconstructing.
588
+ if self.dtype.char not in 'VSUbc':
589
+ raise ValueError("Can only create a chararray from string data.")
590
+
591
+ def __getitem__(self, obj):
592
+ val = ndarray.__getitem__(self, obj)
593
+ if isinstance(val, character):
594
+ return val.rstrip()
595
+ return val
596
+
597
+ # IMPLEMENTATION NOTE: Most of the methods of this class are
598
+ # direct delegations to the free functions in this module.
599
+ # However, those that return an array of strings should instead
600
+ # return a chararray, so some extra wrapping is required.
601
+
602
+ def __eq__(self, other):
603
+ """
604
+ Return (self == other) element-wise.
605
+
606
+ See Also
607
+ --------
608
+ equal
609
+ """
610
+ return equal(self, other)
611
+
612
+ def __ne__(self, other):
613
+ """
614
+ Return (self != other) element-wise.
615
+
616
+ See Also
617
+ --------
618
+ not_equal
619
+ """
620
+ return not_equal(self, other)
621
+
622
+ def __ge__(self, other):
623
+ """
624
+ Return (self >= other) element-wise.
625
+
626
+ See Also
627
+ --------
628
+ greater_equal
629
+ """
630
+ return greater_equal(self, other)
631
+
632
+ def __le__(self, other):
633
+ """
634
+ Return (self <= other) element-wise.
635
+
636
+ See Also
637
+ --------
638
+ less_equal
639
+ """
640
+ return less_equal(self, other)
641
+
642
+ def __gt__(self, other):
643
+ """
644
+ Return (self > other) element-wise.
645
+
646
+ See Also
647
+ --------
648
+ greater
649
+ """
650
+ return greater(self, other)
651
+
652
+ def __lt__(self, other):
653
+ """
654
+ Return (self < other) element-wise.
655
+
656
+ See Also
657
+ --------
658
+ less
659
+ """
660
+ return less(self, other)
661
+
662
+ def __add__(self, other):
663
+ """
664
+ Return (self + other), that is string concatenation,
665
+ element-wise for a pair of array_likes of str or unicode.
666
+
667
+ See Also
668
+ --------
669
+ add
670
+ """
671
+ return add(self, other)
672
+
673
+ def __radd__(self, other):
674
+ """
675
+ Return (other + self), that is string concatenation,
676
+ element-wise for a pair of array_likes of `bytes_` or `str_`.
677
+
678
+ See Also
679
+ --------
680
+ add
681
+ """
682
+ return add(other, self)
683
+
684
+ def __mul__(self, i):
685
+ """
686
+ Return (self * i), that is string multiple concatenation,
687
+ element-wise.
688
+
689
+ See Also
690
+ --------
691
+ multiply
692
+ """
693
+ return asarray(multiply(self, i))
694
+
695
+ def __rmul__(self, i):
696
+ """
697
+ Return (self * i), that is string multiple concatenation,
698
+ element-wise.
699
+
700
+ See Also
701
+ --------
702
+ multiply
703
+ """
704
+ return asarray(multiply(self, i))
705
+
706
+ def __mod__(self, i):
707
+ """
708
+ Return (self % i), that is pre-Python 2.6 string formatting
709
+ (interpolation), element-wise for a pair of array_likes of `bytes_`
710
+ or `str_`.
711
+
712
+ See Also
713
+ --------
714
+ mod
715
+ """
716
+ return asarray(mod(self, i))
717
+
718
+ def __rmod__(self, other):
719
+ return NotImplemented
720
+
721
+ def argsort(self, axis=-1, kind=None, order=None, *, stable=None):
722
+ """
723
+ Return the indices that sort the array lexicographically.
724
+
725
+ For full documentation see `numpy.argsort`, for which this method is
726
+ in fact merely a "thin wrapper."
727
+
728
+ Examples
729
+ --------
730
+ >>> c = np.array(['a1b c', '1b ca', 'b ca1', 'Ca1b'], 'S5')
731
+ >>> c = c.view(np.char.chararray); c
732
+ chararray(['a1b c', '1b ca', 'b ca1', 'Ca1b'],
733
+ dtype='|S5')
734
+ >>> c[c.argsort()]
735
+ chararray(['1b ca', 'Ca1b', 'a1b c', 'b ca1'],
736
+ dtype='|S5')
737
+
738
+ """
739
+ return self.__array__().argsort(axis, kind, order, stable=stable)
740
+ argsort.__doc__ = ndarray.argsort.__doc__
741
+
742
+ def capitalize(self):
743
+ """
744
+ Return a copy of `self` with only the first character of each element
745
+ capitalized.
746
+
747
+ See Also
748
+ --------
749
+ char.capitalize
750
+
751
+ """
752
+ return asarray(capitalize(self))
753
+
754
+ def center(self, width, fillchar=' '):
755
+ """
756
+ Return a copy of `self` with its elements centered in a
757
+ string of length `width`.
758
+
759
+ See Also
760
+ --------
761
+ center
762
+ """
763
+ return asarray(center(self, width, fillchar))
764
+
765
+ def count(self, sub, start=0, end=None):
766
+ """
767
+ Returns an array with the number of non-overlapping occurrences of
768
+ substring `sub` in the range [`start`, `end`].
769
+
770
+ See Also
771
+ --------
772
+ char.count
773
+
774
+ """
775
+ return count(self, sub, start, end)
776
+
777
+ def decode(self, encoding=None, errors=None):
778
+ """
779
+ Calls ``bytes.decode`` element-wise.
780
+
781
+ See Also
782
+ --------
783
+ char.decode
784
+
785
+ """
786
+ return decode(self, encoding, errors)
787
+
788
+ def encode(self, encoding=None, errors=None):
789
+ """
790
+ Calls :meth:`str.encode` element-wise.
791
+
792
+ See Also
793
+ --------
794
+ char.encode
795
+
796
+ """
797
+ return encode(self, encoding, errors)
798
+
799
+ def endswith(self, suffix, start=0, end=None):
800
+ """
801
+ Returns a boolean array which is `True` where the string element
802
+ in `self` ends with `suffix`, otherwise `False`.
803
+
804
+ See Also
805
+ --------
806
+ char.endswith
807
+
808
+ """
809
+ return endswith(self, suffix, start, end)
810
+
811
+ def expandtabs(self, tabsize=8):
812
+ """
813
+ Return a copy of each string element where all tab characters are
814
+ replaced by one or more spaces.
815
+
816
+ See Also
817
+ --------
818
+ char.expandtabs
819
+
820
+ """
821
+ return asarray(expandtabs(self, tabsize))
822
+
823
+ def find(self, sub, start=0, end=None):
824
+ """
825
+ For each element, return the lowest index in the string where
826
+ substring `sub` is found.
827
+
828
+ See Also
829
+ --------
830
+ char.find
831
+
832
+ """
833
+ return find(self, sub, start, end)
834
+
835
+ def index(self, sub, start=0, end=None):
836
+ """
837
+ Like `find`, but raises :exc:`ValueError` when the substring is not
838
+ found.
839
+
840
+ See Also
841
+ --------
842
+ char.index
843
+
844
+ """
845
+ return index(self, sub, start, end)
846
+
847
+ def isalnum(self):
848
+ """
849
+ Returns true for each element if all characters in the string
850
+ are alphanumeric and there is at least one character, false
851
+ otherwise.
852
+
853
+ See Also
854
+ --------
855
+ char.isalnum
856
+
857
+ """
858
+ return isalnum(self)
859
+
860
+ def isalpha(self):
861
+ """
862
+ Returns true for each element if all characters in the string
863
+ are alphabetic and there is at least one character, false
864
+ otherwise.
865
+
866
+ See Also
867
+ --------
868
+ char.isalpha
869
+
870
+ """
871
+ return isalpha(self)
872
+
873
+ def isdigit(self):
874
+ """
875
+ Returns true for each element if all characters in the string are
876
+ digits and there is at least one character, false otherwise.
877
+
878
+ See Also
879
+ --------
880
+ char.isdigit
881
+
882
+ """
883
+ return isdigit(self)
884
+
885
+ def islower(self):
886
+ """
887
+ Returns true for each element if all cased characters in the
888
+ string are lowercase and there is at least one cased character,
889
+ false otherwise.
890
+
891
+ See Also
892
+ --------
893
+ char.islower
894
+
895
+ """
896
+ return islower(self)
897
+
898
+ def isspace(self):
899
+ """
900
+ Returns true for each element if there are only whitespace
901
+ characters in the string and there is at least one character,
902
+ false otherwise.
903
+
904
+ See Also
905
+ --------
906
+ char.isspace
907
+
908
+ """
909
+ return isspace(self)
910
+
911
+ def istitle(self):
912
+ """
913
+ Returns true for each element if the element is a titlecased
914
+ string and there is at least one character, false otherwise.
915
+
916
+ See Also
917
+ --------
918
+ char.istitle
919
+
920
+ """
921
+ return istitle(self)
922
+
923
+ def isupper(self):
924
+ """
925
+ Returns true for each element if all cased characters in the
926
+ string are uppercase and there is at least one character, false
927
+ otherwise.
928
+
929
+ See Also
930
+ --------
931
+ char.isupper
932
+
933
+ """
934
+ return isupper(self)
935
+
936
+ def join(self, seq):
937
+ """
938
+ Return a string which is the concatenation of the strings in the
939
+ sequence `seq`.
940
+
941
+ See Also
942
+ --------
943
+ char.join
944
+
945
+ """
946
+ return join(self, seq)
947
+
948
+ def ljust(self, width, fillchar=' '):
949
+ """
950
+ Return an array with the elements of `self` left-justified in a
951
+ string of length `width`.
952
+
953
+ See Also
954
+ --------
955
+ char.ljust
956
+
957
+ """
958
+ return asarray(ljust(self, width, fillchar))
959
+
960
+ def lower(self):
961
+ """
962
+ Return an array with the elements of `self` converted to
963
+ lowercase.
964
+
965
+ See Also
966
+ --------
967
+ char.lower
968
+
969
+ """
970
+ return asarray(lower(self))
971
+
972
+ def lstrip(self, chars=None):
973
+ """
974
+ For each element in `self`, return a copy with the leading characters
975
+ removed.
976
+
977
+ See Also
978
+ --------
979
+ char.lstrip
980
+
981
+ """
982
+ return lstrip(self, chars)
983
+
984
+ def partition(self, sep):
985
+ """
986
+ Partition each element in `self` around `sep`.
987
+
988
+ See Also
989
+ --------
990
+ partition
991
+ """
992
+ return asarray(partition(self, sep))
993
+
994
+ def replace(self, old, new, count=None):
995
+ """
996
+ For each element in `self`, return a copy of the string with all
997
+ occurrences of substring `old` replaced by `new`.
998
+
999
+ See Also
1000
+ --------
1001
+ char.replace
1002
+
1003
+ """
1004
+ return replace(self, old, new, count if count is not None else -1)
1005
+
1006
+ def rfind(self, sub, start=0, end=None):
1007
+ """
1008
+ For each element in `self`, return the highest index in the string
1009
+ where substring `sub` is found, such that `sub` is contained
1010
+ within [`start`, `end`].
1011
+
1012
+ See Also
1013
+ --------
1014
+ char.rfind
1015
+
1016
+ """
1017
+ return rfind(self, sub, start, end)
1018
+
1019
+ def rindex(self, sub, start=0, end=None):
1020
+ """
1021
+ Like `rfind`, but raises :exc:`ValueError` when the substring `sub` is
1022
+ not found.
1023
+
1024
+ See Also
1025
+ --------
1026
+ char.rindex
1027
+
1028
+ """
1029
+ return rindex(self, sub, start, end)
1030
+
1031
+ def rjust(self, width, fillchar=' '):
1032
+ """
1033
+ Return an array with the elements of `self`
1034
+ right-justified in a string of length `width`.
1035
+
1036
+ See Also
1037
+ --------
1038
+ char.rjust
1039
+
1040
+ """
1041
+ return asarray(rjust(self, width, fillchar))
1042
+
1043
+ def rpartition(self, sep):
1044
+ """
1045
+ Partition each element in `self` around `sep`.
1046
+
1047
+ See Also
1048
+ --------
1049
+ rpartition
1050
+ """
1051
+ return asarray(rpartition(self, sep))
1052
+
1053
+ def rsplit(self, sep=None, maxsplit=None):
1054
+ """
1055
+ For each element in `self`, return a list of the words in
1056
+ the string, using `sep` as the delimiter string.
1057
+
1058
+ See Also
1059
+ --------
1060
+ char.rsplit
1061
+
1062
+ """
1063
+ return rsplit(self, sep, maxsplit)
1064
+
1065
+ def rstrip(self, chars=None):
1066
+ """
1067
+ For each element in `self`, return a copy with the trailing
1068
+ characters removed.
1069
+
1070
+ See Also
1071
+ --------
1072
+ char.rstrip
1073
+
1074
+ """
1075
+ return rstrip(self, chars)
1076
+
1077
+ def split(self, sep=None, maxsplit=None):
1078
+ """
1079
+ For each element in `self`, return a list of the words in the
1080
+ string, using `sep` as the delimiter string.
1081
+
1082
+ See Also
1083
+ --------
1084
+ char.split
1085
+
1086
+ """
1087
+ return split(self, sep, maxsplit)
1088
+
1089
+ def splitlines(self, keepends=None):
1090
+ """
1091
+ For each element in `self`, return a list of the lines in the
1092
+ element, breaking at line boundaries.
1093
+
1094
+ See Also
1095
+ --------
1096
+ char.splitlines
1097
+
1098
+ """
1099
+ return splitlines(self, keepends)
1100
+
1101
+ def startswith(self, prefix, start=0, end=None):
1102
+ """
1103
+ Returns a boolean array which is `True` where the string element
1104
+ in `self` starts with `prefix`, otherwise `False`.
1105
+
1106
+ See Also
1107
+ --------
1108
+ char.startswith
1109
+
1110
+ """
1111
+ return startswith(self, prefix, start, end)
1112
+
1113
+ def strip(self, chars=None):
1114
+ """
1115
+ For each element in `self`, return a copy with the leading and
1116
+ trailing characters removed.
1117
+
1118
+ See Also
1119
+ --------
1120
+ char.strip
1121
+
1122
+ """
1123
+ return strip(self, chars)
1124
+
1125
+ def swapcase(self):
1126
+ """
1127
+ For each element in `self`, return a copy of the string with
1128
+ uppercase characters converted to lowercase and vice versa.
1129
+
1130
+ See Also
1131
+ --------
1132
+ char.swapcase
1133
+
1134
+ """
1135
+ return asarray(swapcase(self))
1136
+
1137
+ def title(self):
1138
+ """
1139
+ For each element in `self`, return a titlecased version of the
1140
+ string: words start with uppercase characters, all remaining cased
1141
+ characters are lowercase.
1142
+
1143
+ See Also
1144
+ --------
1145
+ char.title
1146
+
1147
+ """
1148
+ return asarray(title(self))
1149
+
1150
+ def translate(self, table, deletechars=None):
1151
+ """
1152
+ For each element in `self`, return a copy of the string where
1153
+ all characters occurring in the optional argument
1154
+ `deletechars` are removed, and the remaining characters have
1155
+ been mapped through the given translation table.
1156
+
1157
+ See Also
1158
+ --------
1159
+ char.translate
1160
+
1161
+ """
1162
+ return asarray(translate(self, table, deletechars))
1163
+
1164
+ def upper(self):
1165
+ """
1166
+ Return an array with the elements of `self` converted to
1167
+ uppercase.
1168
+
1169
+ See Also
1170
+ --------
1171
+ char.upper
1172
+
1173
+ """
1174
+ return asarray(upper(self))
1175
+
1176
+ def zfill(self, width):
1177
+ """
1178
+ Return the numeric string left-filled with zeros in a string of
1179
+ length `width`.
1180
+
1181
+ See Also
1182
+ --------
1183
+ char.zfill
1184
+
1185
+ """
1186
+ return asarray(zfill(self, width))
1187
+
1188
+ def isnumeric(self):
1189
+ """
1190
+ For each element in `self`, return True if there are only
1191
+ numeric characters in the element.
1192
+
1193
+ See Also
1194
+ --------
1195
+ char.isnumeric
1196
+
1197
+ """
1198
+ return isnumeric(self)
1199
+
1200
+ def isdecimal(self):
1201
+ """
1202
+ For each element in `self`, return True if there are only
1203
+ decimal characters in the element.
1204
+
1205
+ See Also
1206
+ --------
1207
+ char.isdecimal
1208
+
1209
+ """
1210
+ return isdecimal(self)
1211
+
1212
+
1213
+ @set_module("numpy.char")
1214
+ def array(obj, itemsize=None, copy=True, unicode=None, order=None):
1215
+ """
1216
+ Create a `~numpy.char.chararray`.
1217
+
1218
+ .. note::
1219
+ This class is provided for numarray backward-compatibility.
1220
+ New code (not concerned with numarray compatibility) should use
1221
+ arrays of type `bytes_` or `str_` and use the free functions
1222
+ in :mod:`numpy.char` for fast vectorized string operations instead.
1223
+
1224
+ Versus a NumPy array of dtype `bytes_` or `str_`, this
1225
+ class adds the following functionality:
1226
+
1227
+ 1) values automatically have whitespace removed from the end
1228
+ when indexed
1229
+
1230
+ 2) comparison operators automatically remove whitespace from the
1231
+ end when comparing values
1232
+
1233
+ 3) vectorized string operations are provided as methods
1234
+ (e.g. `chararray.endswith <numpy.char.chararray.endswith>`)
1235
+ and infix operators (e.g. ``+, *, %``)
1236
+
1237
+ Parameters
1238
+ ----------
1239
+ obj : array of str or unicode-like
1240
+
1241
+ itemsize : int, optional
1242
+ `itemsize` is the number of characters per scalar in the
1243
+ resulting array. If `itemsize` is None, and `obj` is an
1244
+ object array or a Python list, the `itemsize` will be
1245
+ automatically determined. If `itemsize` is provided and `obj`
1246
+ is of type str or unicode, then the `obj` string will be
1247
+ chunked into `itemsize` pieces.
1248
+
1249
+ copy : bool, optional
1250
+ If true (default), then the object is copied. Otherwise, a copy
1251
+ will only be made if ``__array__`` returns a copy, if obj is a
1252
+ nested sequence, or if a copy is needed to satisfy any of the other
1253
+ requirements (`itemsize`, unicode, `order`, etc.).
1254
+
1255
+ unicode : bool, optional
1256
+ When true, the resulting `~numpy.char.chararray` can contain Unicode
1257
+ characters, when false only 8-bit characters. If unicode is
1258
+ None and `obj` is one of the following:
1259
+
1260
+ - a `~numpy.char.chararray`,
1261
+ - an ndarray of type :class:`str_` or :class:`bytes_`
1262
+ - a Python :class:`str` or :class:`bytes` object,
1263
+
1264
+ then the unicode setting of the output array will be
1265
+ automatically determined.
1266
+
1267
+ order : {'C', 'F', 'A'}, optional
1268
+ Specify the order of the array. If order is 'C' (default), then the
1269
+ array will be in C-contiguous order (last-index varies the
1270
+ fastest). If order is 'F', then the returned array
1271
+ will be in Fortran-contiguous order (first-index varies the
1272
+ fastest). If order is 'A', then the returned array may
1273
+ be in any order (either C-, Fortran-contiguous, or even
1274
+ discontiguous).
1275
+
1276
+ Examples
1277
+ --------
1278
+
1279
+ >>> import numpy as np
1280
+ >>> char_array = np.char.array(['hello', 'world', 'numpy','array'])
1281
+ >>> char_array
1282
+ chararray(['hello', 'world', 'numpy', 'array'], dtype='<U5')
1283
+
1284
+ """
1285
+ if isinstance(obj, (bytes, str)):
1286
+ if unicode is None:
1287
+ if isinstance(obj, str):
1288
+ unicode = True
1289
+ else:
1290
+ unicode = False
1291
+
1292
+ if itemsize is None:
1293
+ itemsize = len(obj)
1294
+ shape = len(obj) // itemsize
1295
+
1296
+ return chararray(shape, itemsize=itemsize, unicode=unicode,
1297
+ buffer=obj, order=order)
1298
+
1299
+ if isinstance(obj, (list, tuple)):
1300
+ obj = asnarray(obj)
1301
+
1302
+ if isinstance(obj, ndarray) and issubclass(obj.dtype.type, character):
1303
+ # If we just have a vanilla chararray, create a chararray
1304
+ # view around it.
1305
+ if not isinstance(obj, chararray):
1306
+ obj = obj.view(chararray)
1307
+
1308
+ if itemsize is None:
1309
+ itemsize = obj.itemsize
1310
+ # itemsize is in 8-bit chars, so for Unicode, we need
1311
+ # to divide by the size of a single Unicode character,
1312
+ # which for NumPy is always 4
1313
+ if issubclass(obj.dtype.type, str_):
1314
+ itemsize //= 4
1315
+
1316
+ if unicode is None:
1317
+ if issubclass(obj.dtype.type, str_):
1318
+ unicode = True
1319
+ else:
1320
+ unicode = False
1321
+
1322
+ if unicode:
1323
+ dtype = str_
1324
+ else:
1325
+ dtype = bytes_
1326
+
1327
+ if order is not None:
1328
+ obj = asnarray(obj, order=order)
1329
+ if (copy or
1330
+ (itemsize != obj.itemsize) or
1331
+ (not unicode and isinstance(obj, str_)) or
1332
+ (unicode and isinstance(obj, bytes_))):
1333
+ obj = obj.astype((dtype, int(itemsize)))
1334
+ return obj
1335
+
1336
+ if isinstance(obj, ndarray) and issubclass(obj.dtype.type, object):
1337
+ if itemsize is None:
1338
+ # Since no itemsize was specified, convert the input array to
1339
+ # a list so the ndarray constructor will automatically
1340
+ # determine the itemsize for us.
1341
+ obj = obj.tolist()
1342
+ # Fall through to the default case
1343
+
1344
+ if unicode:
1345
+ dtype = str_
1346
+ else:
1347
+ dtype = bytes_
1348
+
1349
+ if itemsize is None:
1350
+ val = narray(obj, dtype=dtype, order=order, subok=True)
1351
+ else:
1352
+ val = narray(obj, dtype=(dtype, itemsize), order=order, subok=True)
1353
+ return val.view(chararray)
1354
+
1355
+
1356
+ @set_module("numpy.char")
1357
+ def asarray(obj, itemsize=None, unicode=None, order=None):
1358
+ """
1359
+ Convert the input to a `~numpy.char.chararray`, copying the data only if
1360
+ necessary.
1361
+
1362
+ Versus a NumPy array of dtype `bytes_` or `str_`, this
1363
+ class adds the following functionality:
1364
+
1365
+ 1) values automatically have whitespace removed from the end
1366
+ when indexed
1367
+
1368
+ 2) comparison operators automatically remove whitespace from the
1369
+ end when comparing values
1370
+
1371
+ 3) vectorized string operations are provided as methods
1372
+ (e.g. `chararray.endswith <numpy.char.chararray.endswith>`)
1373
+ and infix operators (e.g. ``+``, ``*``, ``%``)
1374
+
1375
+ Parameters
1376
+ ----------
1377
+ obj : array of str or unicode-like
1378
+
1379
+ itemsize : int, optional
1380
+ `itemsize` is the number of characters per scalar in the
1381
+ resulting array. If `itemsize` is None, and `obj` is an
1382
+ object array or a Python list, the `itemsize` will be
1383
+ automatically determined. If `itemsize` is provided and `obj`
1384
+ is of type str or unicode, then the `obj` string will be
1385
+ chunked into `itemsize` pieces.
1386
+
1387
+ unicode : bool, optional
1388
+ When true, the resulting `~numpy.char.chararray` can contain Unicode
1389
+ characters, when false only 8-bit characters. If unicode is
1390
+ None and `obj` is one of the following:
1391
+
1392
+ - a `~numpy.char.chararray`,
1393
+ - an ndarray of type `str_` or `unicode_`
1394
+ - a Python str or unicode object,
1395
+
1396
+ then the unicode setting of the output array will be
1397
+ automatically determined.
1398
+
1399
+ order : {'C', 'F'}, optional
1400
+ Specify the order of the array. If order is 'C' (default), then the
1401
+ array will be in C-contiguous order (last-index varies the
1402
+ fastest). If order is 'F', then the returned array
1403
+ will be in Fortran-contiguous order (first-index varies the
1404
+ fastest).
1405
+
1406
+ Examples
1407
+ --------
1408
+ >>> import numpy as np
1409
+ >>> np.char.asarray(['hello', 'world'])
1410
+ chararray(['hello', 'world'], dtype='<U5')
1411
+
1412
+ """
1413
+ return array(obj, itemsize, copy=False,
1414
+ unicode=unicode, order=order)