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.
- numpy/__config__.py +170 -0
- numpy/__config__.pyi +108 -0
- numpy/__init__.cython-30.pxd +1242 -0
- numpy/__init__.pxd +1155 -0
- numpy/__init__.py +942 -0
- numpy/__init__.pyi +6202 -0
- numpy/_array_api_info.py +346 -0
- numpy/_array_api_info.pyi +206 -0
- numpy/_configtool.py +39 -0
- numpy/_configtool.pyi +1 -0
- numpy/_core/__init__.py +201 -0
- numpy/_core/__init__.pyi +666 -0
- numpy/_core/_add_newdocs.py +7151 -0
- numpy/_core/_add_newdocs.pyi +2 -0
- numpy/_core/_add_newdocs_scalars.py +381 -0
- numpy/_core/_add_newdocs_scalars.pyi +16 -0
- numpy/_core/_asarray.py +130 -0
- numpy/_core/_asarray.pyi +43 -0
- numpy/_core/_dtype.py +366 -0
- numpy/_core/_dtype.pyi +56 -0
- numpy/_core/_dtype_ctypes.py +120 -0
- numpy/_core/_dtype_ctypes.pyi +83 -0
- numpy/_core/_exceptions.py +162 -0
- numpy/_core/_exceptions.pyi +54 -0
- numpy/_core/_internal.py +968 -0
- numpy/_core/_internal.pyi +61 -0
- numpy/_core/_methods.py +252 -0
- numpy/_core/_methods.pyi +22 -0
- numpy/_core/_multiarray_tests.pypy311-pp73-darwin.so +0 -0
- numpy/_core/_multiarray_umath.pypy311-pp73-darwin.so +0 -0
- numpy/_core/_operand_flag_tests.pypy311-pp73-darwin.so +0 -0
- numpy/_core/_rational_tests.pypy311-pp73-darwin.so +0 -0
- numpy/_core/_simd.pyi +35 -0
- numpy/_core/_simd.pypy311-pp73-darwin.so +0 -0
- numpy/_core/_string_helpers.py +100 -0
- numpy/_core/_string_helpers.pyi +12 -0
- numpy/_core/_struct_ufunc_tests.pypy311-pp73-darwin.so +0 -0
- numpy/_core/_type_aliases.py +131 -0
- numpy/_core/_type_aliases.pyi +86 -0
- numpy/_core/_ufunc_config.py +515 -0
- numpy/_core/_ufunc_config.pyi +69 -0
- numpy/_core/_umath_tests.pyi +47 -0
- numpy/_core/_umath_tests.pypy311-pp73-darwin.so +0 -0
- numpy/_core/arrayprint.py +1779 -0
- numpy/_core/arrayprint.pyi +158 -0
- numpy/_core/cversions.py +13 -0
- numpy/_core/defchararray.py +1414 -0
- numpy/_core/defchararray.pyi +1150 -0
- numpy/_core/einsumfunc.py +1650 -0
- numpy/_core/einsumfunc.pyi +184 -0
- numpy/_core/fromnumeric.py +4233 -0
- numpy/_core/fromnumeric.pyi +1735 -0
- numpy/_core/function_base.py +547 -0
- numpy/_core/function_base.pyi +276 -0
- numpy/_core/getlimits.py +462 -0
- numpy/_core/getlimits.pyi +124 -0
- numpy/_core/include/numpy/__multiarray_api.c +376 -0
- numpy/_core/include/numpy/__multiarray_api.h +1628 -0
- numpy/_core/include/numpy/__ufunc_api.c +55 -0
- numpy/_core/include/numpy/__ufunc_api.h +349 -0
- numpy/_core/include/numpy/_neighborhood_iterator_imp.h +90 -0
- numpy/_core/include/numpy/_numpyconfig.h +33 -0
- numpy/_core/include/numpy/_public_dtype_api_table.h +86 -0
- numpy/_core/include/numpy/arrayobject.h +7 -0
- numpy/_core/include/numpy/arrayscalars.h +198 -0
- numpy/_core/include/numpy/dtype_api.h +547 -0
- numpy/_core/include/numpy/halffloat.h +70 -0
- numpy/_core/include/numpy/ndarrayobject.h +304 -0
- numpy/_core/include/numpy/ndarraytypes.h +1982 -0
- numpy/_core/include/numpy/npy_2_compat.h +249 -0
- numpy/_core/include/numpy/npy_2_complexcompat.h +28 -0
- numpy/_core/include/numpy/npy_3kcompat.h +374 -0
- numpy/_core/include/numpy/npy_common.h +989 -0
- numpy/_core/include/numpy/npy_cpu.h +126 -0
- numpy/_core/include/numpy/npy_endian.h +79 -0
- numpy/_core/include/numpy/npy_math.h +602 -0
- numpy/_core/include/numpy/npy_no_deprecated_api.h +20 -0
- numpy/_core/include/numpy/npy_os.h +42 -0
- numpy/_core/include/numpy/numpyconfig.h +185 -0
- numpy/_core/include/numpy/random/LICENSE.txt +21 -0
- numpy/_core/include/numpy/random/bitgen.h +20 -0
- numpy/_core/include/numpy/random/distributions.h +209 -0
- numpy/_core/include/numpy/random/libdivide.h +2079 -0
- numpy/_core/include/numpy/ufuncobject.h +343 -0
- numpy/_core/include/numpy/utils.h +37 -0
- numpy/_core/lib/libnpymath.a +0 -0
- numpy/_core/lib/npy-pkg-config/mlib.ini +12 -0
- numpy/_core/lib/npy-pkg-config/npymath.ini +20 -0
- numpy/_core/lib/pkgconfig/numpy.pc +7 -0
- numpy/_core/memmap.py +363 -0
- numpy/_core/memmap.pyi +3 -0
- numpy/_core/multiarray.py +1740 -0
- numpy/_core/multiarray.pyi +1316 -0
- numpy/_core/numeric.py +2758 -0
- numpy/_core/numeric.pyi +1276 -0
- numpy/_core/numerictypes.py +633 -0
- numpy/_core/numerictypes.pyi +196 -0
- numpy/_core/overrides.py +188 -0
- numpy/_core/overrides.pyi +47 -0
- numpy/_core/printoptions.py +32 -0
- numpy/_core/printoptions.pyi +28 -0
- numpy/_core/records.py +1088 -0
- numpy/_core/records.pyi +340 -0
- numpy/_core/shape_base.py +996 -0
- numpy/_core/shape_base.pyi +182 -0
- numpy/_core/strings.py +1813 -0
- numpy/_core/strings.pyi +536 -0
- numpy/_core/tests/_locales.py +72 -0
- numpy/_core/tests/_natype.py +144 -0
- numpy/_core/tests/data/astype_copy.pkl +0 -0
- numpy/_core/tests/data/generate_umath_validation_data.cpp +170 -0
- numpy/_core/tests/data/recarray_from_file.fits +0 -0
- numpy/_core/tests/data/umath-validation-set-README.txt +15 -0
- numpy/_core/tests/data/umath-validation-set-arccos.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-arccosh.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-arcsin.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-arcsinh.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-arctan.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-arctanh.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-cbrt.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-cos.csv +1375 -0
- numpy/_core/tests/data/umath-validation-set-cosh.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-exp.csv +412 -0
- numpy/_core/tests/data/umath-validation-set-exp2.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-expm1.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-log.csv +271 -0
- numpy/_core/tests/data/umath-validation-set-log10.csv +1629 -0
- numpy/_core/tests/data/umath-validation-set-log1p.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-log2.csv +1629 -0
- numpy/_core/tests/data/umath-validation-set-sin.csv +1370 -0
- numpy/_core/tests/data/umath-validation-set-sinh.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-tan.csv +1429 -0
- numpy/_core/tests/data/umath-validation-set-tanh.csv +1429 -0
- numpy/_core/tests/examples/cython/checks.pyx +373 -0
- numpy/_core/tests/examples/cython/meson.build +43 -0
- numpy/_core/tests/examples/cython/setup.py +39 -0
- numpy/_core/tests/examples/limited_api/limited_api1.c +17 -0
- numpy/_core/tests/examples/limited_api/limited_api2.pyx +11 -0
- numpy/_core/tests/examples/limited_api/limited_api_latest.c +19 -0
- numpy/_core/tests/examples/limited_api/meson.build +59 -0
- numpy/_core/tests/examples/limited_api/setup.py +24 -0
- numpy/_core/tests/test__exceptions.py +90 -0
- numpy/_core/tests/test_abc.py +54 -0
- numpy/_core/tests/test_api.py +655 -0
- numpy/_core/tests/test_argparse.py +90 -0
- numpy/_core/tests/test_array_api_info.py +113 -0
- numpy/_core/tests/test_array_coercion.py +928 -0
- numpy/_core/tests/test_array_interface.py +222 -0
- numpy/_core/tests/test_arraymethod.py +84 -0
- numpy/_core/tests/test_arrayobject.py +75 -0
- numpy/_core/tests/test_arrayprint.py +1324 -0
- numpy/_core/tests/test_casting_floatingpoint_errors.py +154 -0
- numpy/_core/tests/test_casting_unittests.py +955 -0
- numpy/_core/tests/test_conversion_utils.py +209 -0
- numpy/_core/tests/test_cpu_dispatcher.py +48 -0
- numpy/_core/tests/test_cpu_features.py +450 -0
- numpy/_core/tests/test_custom_dtypes.py +393 -0
- numpy/_core/tests/test_cython.py +352 -0
- numpy/_core/tests/test_datetime.py +2792 -0
- numpy/_core/tests/test_defchararray.py +858 -0
- numpy/_core/tests/test_deprecations.py +460 -0
- numpy/_core/tests/test_dlpack.py +190 -0
- numpy/_core/tests/test_dtype.py +2110 -0
- numpy/_core/tests/test_einsum.py +1351 -0
- numpy/_core/tests/test_errstate.py +131 -0
- numpy/_core/tests/test_extint128.py +217 -0
- numpy/_core/tests/test_finfo.py +86 -0
- numpy/_core/tests/test_function_base.py +504 -0
- numpy/_core/tests/test_getlimits.py +171 -0
- numpy/_core/tests/test_half.py +593 -0
- numpy/_core/tests/test_hashtable.py +36 -0
- numpy/_core/tests/test_indexerrors.py +122 -0
- numpy/_core/tests/test_indexing.py +1692 -0
- numpy/_core/tests/test_item_selection.py +167 -0
- numpy/_core/tests/test_limited_api.py +102 -0
- numpy/_core/tests/test_longdouble.py +370 -0
- numpy/_core/tests/test_mem_overlap.py +933 -0
- numpy/_core/tests/test_mem_policy.py +453 -0
- numpy/_core/tests/test_memmap.py +248 -0
- numpy/_core/tests/test_multiarray.py +11008 -0
- numpy/_core/tests/test_multiprocessing.py +55 -0
- numpy/_core/tests/test_multithreading.py +377 -0
- numpy/_core/tests/test_nditer.py +3533 -0
- numpy/_core/tests/test_nep50_promotions.py +287 -0
- numpy/_core/tests/test_numeric.py +4295 -0
- numpy/_core/tests/test_numerictypes.py +650 -0
- numpy/_core/tests/test_overrides.py +800 -0
- numpy/_core/tests/test_print.py +202 -0
- numpy/_core/tests/test_protocols.py +46 -0
- numpy/_core/tests/test_records.py +544 -0
- numpy/_core/tests/test_regression.py +2677 -0
- numpy/_core/tests/test_scalar_ctors.py +203 -0
- numpy/_core/tests/test_scalar_methods.py +328 -0
- numpy/_core/tests/test_scalarbuffer.py +153 -0
- numpy/_core/tests/test_scalarinherit.py +105 -0
- numpy/_core/tests/test_scalarmath.py +1168 -0
- numpy/_core/tests/test_scalarprint.py +403 -0
- numpy/_core/tests/test_shape_base.py +904 -0
- numpy/_core/tests/test_simd.py +1345 -0
- numpy/_core/tests/test_simd_module.py +105 -0
- numpy/_core/tests/test_stringdtype.py +1855 -0
- numpy/_core/tests/test_strings.py +1523 -0
- numpy/_core/tests/test_ufunc.py +3405 -0
- numpy/_core/tests/test_umath.py +4962 -0
- numpy/_core/tests/test_umath_accuracy.py +132 -0
- numpy/_core/tests/test_umath_complex.py +631 -0
- numpy/_core/tests/test_unicode.py +369 -0
- numpy/_core/umath.py +60 -0
- numpy/_core/umath.pyi +232 -0
- numpy/_distributor_init.py +15 -0
- numpy/_distributor_init.pyi +1 -0
- numpy/_expired_attrs_2_0.py +78 -0
- numpy/_expired_attrs_2_0.pyi +61 -0
- numpy/_globals.py +121 -0
- numpy/_globals.pyi +17 -0
- numpy/_pyinstaller/__init__.py +0 -0
- numpy/_pyinstaller/__init__.pyi +0 -0
- numpy/_pyinstaller/hook-numpy.py +36 -0
- numpy/_pyinstaller/hook-numpy.pyi +6 -0
- numpy/_pyinstaller/tests/__init__.py +16 -0
- numpy/_pyinstaller/tests/pyinstaller-smoke.py +32 -0
- numpy/_pyinstaller/tests/test_pyinstaller.py +35 -0
- numpy/_pytesttester.py +201 -0
- numpy/_pytesttester.pyi +18 -0
- numpy/_typing/__init__.py +173 -0
- numpy/_typing/_add_docstring.py +153 -0
- numpy/_typing/_array_like.py +106 -0
- numpy/_typing/_char_codes.py +213 -0
- numpy/_typing/_dtype_like.py +114 -0
- numpy/_typing/_extended_precision.py +15 -0
- numpy/_typing/_nbit.py +19 -0
- numpy/_typing/_nbit_base.py +94 -0
- numpy/_typing/_nbit_base.pyi +39 -0
- numpy/_typing/_nested_sequence.py +79 -0
- numpy/_typing/_scalars.py +20 -0
- numpy/_typing/_shape.py +8 -0
- numpy/_typing/_ufunc.py +7 -0
- numpy/_typing/_ufunc.pyi +975 -0
- numpy/_utils/__init__.py +95 -0
- numpy/_utils/__init__.pyi +28 -0
- numpy/_utils/_convertions.py +18 -0
- numpy/_utils/_convertions.pyi +4 -0
- numpy/_utils/_inspect.py +192 -0
- numpy/_utils/_inspect.pyi +70 -0
- numpy/_utils/_pep440.py +486 -0
- numpy/_utils/_pep440.pyi +118 -0
- numpy/char/__init__.py +2 -0
- numpy/char/__init__.pyi +111 -0
- numpy/conftest.py +248 -0
- numpy/core/__init__.py +33 -0
- numpy/core/__init__.pyi +0 -0
- numpy/core/_dtype.py +10 -0
- numpy/core/_dtype.pyi +0 -0
- numpy/core/_dtype_ctypes.py +10 -0
- numpy/core/_dtype_ctypes.pyi +0 -0
- numpy/core/_internal.py +27 -0
- numpy/core/_multiarray_umath.py +57 -0
- numpy/core/_utils.py +21 -0
- numpy/core/arrayprint.py +10 -0
- numpy/core/defchararray.py +10 -0
- numpy/core/einsumfunc.py +10 -0
- numpy/core/fromnumeric.py +10 -0
- numpy/core/function_base.py +10 -0
- numpy/core/getlimits.py +10 -0
- numpy/core/multiarray.py +25 -0
- numpy/core/numeric.py +12 -0
- numpy/core/numerictypes.py +10 -0
- numpy/core/overrides.py +10 -0
- numpy/core/overrides.pyi +7 -0
- numpy/core/records.py +10 -0
- numpy/core/shape_base.py +10 -0
- numpy/core/umath.py +10 -0
- numpy/ctypeslib/__init__.py +13 -0
- numpy/ctypeslib/__init__.pyi +15 -0
- numpy/ctypeslib/_ctypeslib.py +603 -0
- numpy/ctypeslib/_ctypeslib.pyi +236 -0
- numpy/distutils/__init__.py +64 -0
- numpy/distutils/__init__.pyi +4 -0
- numpy/distutils/__pycache__/conv_template.pypy311.pyc +0 -0
- numpy/distutils/_shell_utils.py +87 -0
- numpy/distutils/armccompiler.py +26 -0
- numpy/distutils/ccompiler.py +826 -0
- numpy/distutils/ccompiler_opt.py +2668 -0
- numpy/distutils/checks/cpu_asimd.c +27 -0
- numpy/distutils/checks/cpu_asimddp.c +16 -0
- numpy/distutils/checks/cpu_asimdfhm.c +19 -0
- numpy/distutils/checks/cpu_asimdhp.c +15 -0
- numpy/distutils/checks/cpu_avx.c +20 -0
- numpy/distutils/checks/cpu_avx2.c +20 -0
- numpy/distutils/checks/cpu_avx512_clx.c +22 -0
- numpy/distutils/checks/cpu_avx512_cnl.c +24 -0
- numpy/distutils/checks/cpu_avx512_icl.c +26 -0
- numpy/distutils/checks/cpu_avx512_knl.c +25 -0
- numpy/distutils/checks/cpu_avx512_knm.c +30 -0
- numpy/distutils/checks/cpu_avx512_skx.c +26 -0
- numpy/distutils/checks/cpu_avx512_spr.c +26 -0
- numpy/distutils/checks/cpu_avx512cd.c +20 -0
- numpy/distutils/checks/cpu_avx512f.c +20 -0
- numpy/distutils/checks/cpu_f16c.c +22 -0
- numpy/distutils/checks/cpu_fma3.c +22 -0
- numpy/distutils/checks/cpu_fma4.c +13 -0
- numpy/distutils/checks/cpu_lsx.c +11 -0
- numpy/distutils/checks/cpu_neon.c +19 -0
- numpy/distutils/checks/cpu_neon_fp16.c +11 -0
- numpy/distutils/checks/cpu_neon_vfpv4.c +21 -0
- numpy/distutils/checks/cpu_popcnt.c +32 -0
- numpy/distutils/checks/cpu_rvv.c +13 -0
- numpy/distutils/checks/cpu_sse.c +20 -0
- numpy/distutils/checks/cpu_sse2.c +20 -0
- numpy/distutils/checks/cpu_sse3.c +20 -0
- numpy/distutils/checks/cpu_sse41.c +20 -0
- numpy/distutils/checks/cpu_sse42.c +20 -0
- numpy/distutils/checks/cpu_ssse3.c +20 -0
- numpy/distutils/checks/cpu_sve.c +14 -0
- numpy/distutils/checks/cpu_vsx.c +21 -0
- numpy/distutils/checks/cpu_vsx2.c +13 -0
- numpy/distutils/checks/cpu_vsx3.c +13 -0
- numpy/distutils/checks/cpu_vsx4.c +14 -0
- numpy/distutils/checks/cpu_vx.c +16 -0
- numpy/distutils/checks/cpu_vxe.c +25 -0
- numpy/distutils/checks/cpu_vxe2.c +21 -0
- numpy/distutils/checks/cpu_xop.c +12 -0
- numpy/distutils/checks/extra_avx512bw_mask.c +18 -0
- numpy/distutils/checks/extra_avx512dq_mask.c +16 -0
- numpy/distutils/checks/extra_avx512f_reduce.c +41 -0
- numpy/distutils/checks/extra_vsx3_half_double.c +12 -0
- numpy/distutils/checks/extra_vsx4_mma.c +21 -0
- numpy/distutils/checks/extra_vsx_asm.c +36 -0
- numpy/distutils/checks/test_flags.c +1 -0
- numpy/distutils/command/__init__.py +41 -0
- numpy/distutils/command/autodist.py +148 -0
- numpy/distutils/command/bdist_rpm.py +22 -0
- numpy/distutils/command/build.py +62 -0
- numpy/distutils/command/build_clib.py +469 -0
- numpy/distutils/command/build_ext.py +752 -0
- numpy/distutils/command/build_py.py +31 -0
- numpy/distutils/command/build_scripts.py +49 -0
- numpy/distutils/command/build_src.py +773 -0
- numpy/distutils/command/config.py +516 -0
- numpy/distutils/command/config_compiler.py +126 -0
- numpy/distutils/command/develop.py +15 -0
- numpy/distutils/command/egg_info.py +25 -0
- numpy/distutils/command/install.py +79 -0
- numpy/distutils/command/install_clib.py +40 -0
- numpy/distutils/command/install_data.py +24 -0
- numpy/distutils/command/install_headers.py +25 -0
- numpy/distutils/command/sdist.py +27 -0
- numpy/distutils/conv_template.py +329 -0
- numpy/distutils/core.py +215 -0
- numpy/distutils/cpuinfo.py +683 -0
- numpy/distutils/exec_command.py +315 -0
- numpy/distutils/extension.py +101 -0
- numpy/distutils/fcompiler/__init__.py +1035 -0
- numpy/distutils/fcompiler/absoft.py +158 -0
- numpy/distutils/fcompiler/arm.py +71 -0
- numpy/distutils/fcompiler/compaq.py +120 -0
- numpy/distutils/fcompiler/environment.py +88 -0
- numpy/distutils/fcompiler/fujitsu.py +46 -0
- numpy/distutils/fcompiler/g95.py +42 -0
- numpy/distutils/fcompiler/gnu.py +555 -0
- numpy/distutils/fcompiler/hpux.py +41 -0
- numpy/distutils/fcompiler/ibm.py +97 -0
- numpy/distutils/fcompiler/intel.py +211 -0
- numpy/distutils/fcompiler/lahey.py +45 -0
- numpy/distutils/fcompiler/mips.py +54 -0
- numpy/distutils/fcompiler/nag.py +87 -0
- numpy/distutils/fcompiler/none.py +28 -0
- numpy/distutils/fcompiler/nv.py +53 -0
- numpy/distutils/fcompiler/pathf95.py +33 -0
- numpy/distutils/fcompiler/pg.py +128 -0
- numpy/distutils/fcompiler/sun.py +51 -0
- numpy/distutils/fcompiler/vast.py +52 -0
- numpy/distutils/from_template.py +261 -0
- numpy/distutils/fujitsuccompiler.py +28 -0
- numpy/distutils/intelccompiler.py +106 -0
- numpy/distutils/lib2def.py +116 -0
- numpy/distutils/line_endings.py +77 -0
- numpy/distutils/log.py +111 -0
- numpy/distutils/mingw/gfortran_vs2003_hack.c +6 -0
- numpy/distutils/mingw32ccompiler.py +620 -0
- numpy/distutils/misc_util.py +2484 -0
- numpy/distutils/msvc9compiler.py +63 -0
- numpy/distutils/msvccompiler.py +76 -0
- numpy/distutils/npy_pkg_config.py +441 -0
- numpy/distutils/numpy_distribution.py +17 -0
- numpy/distutils/pathccompiler.py +21 -0
- numpy/distutils/system_info.py +3267 -0
- numpy/distutils/tests/__init__.py +0 -0
- numpy/distutils/tests/test_build_ext.py +74 -0
- numpy/distutils/tests/test_ccompiler_opt.py +808 -0
- numpy/distutils/tests/test_ccompiler_opt_conf.py +176 -0
- numpy/distutils/tests/test_exec_command.py +217 -0
- numpy/distutils/tests/test_fcompiler.py +43 -0
- numpy/distutils/tests/test_fcompiler_gnu.py +55 -0
- numpy/distutils/tests/test_fcompiler_intel.py +30 -0
- numpy/distutils/tests/test_fcompiler_nagfor.py +22 -0
- numpy/distutils/tests/test_from_template.py +44 -0
- numpy/distutils/tests/test_log.py +34 -0
- numpy/distutils/tests/test_mingw32ccompiler.py +47 -0
- numpy/distutils/tests/test_misc_util.py +88 -0
- numpy/distutils/tests/test_npy_pkg_config.py +84 -0
- numpy/distutils/tests/test_shell_utils.py +79 -0
- numpy/distutils/tests/test_system_info.py +334 -0
- numpy/distutils/tests/utilities.py +90 -0
- numpy/distutils/unixccompiler.py +141 -0
- numpy/doc/ufuncs.py +138 -0
- numpy/dtypes.py +41 -0
- numpy/dtypes.pyi +630 -0
- numpy/exceptions.py +246 -0
- numpy/exceptions.pyi +27 -0
- numpy/f2py/__init__.py +86 -0
- numpy/f2py/__init__.pyi +5 -0
- numpy/f2py/__main__.py +5 -0
- numpy/f2py/__version__.py +1 -0
- numpy/f2py/__version__.pyi +1 -0
- numpy/f2py/_backends/__init__.py +9 -0
- numpy/f2py/_backends/__init__.pyi +5 -0
- numpy/f2py/_backends/_backend.py +44 -0
- numpy/f2py/_backends/_backend.pyi +46 -0
- numpy/f2py/_backends/_distutils.py +76 -0
- numpy/f2py/_backends/_distutils.pyi +13 -0
- numpy/f2py/_backends/_meson.py +244 -0
- numpy/f2py/_backends/_meson.pyi +62 -0
- numpy/f2py/_backends/meson.build.template +58 -0
- numpy/f2py/_isocbind.py +62 -0
- numpy/f2py/_isocbind.pyi +13 -0
- numpy/f2py/_src_pyf.py +247 -0
- numpy/f2py/_src_pyf.pyi +28 -0
- numpy/f2py/auxfuncs.py +1004 -0
- numpy/f2py/auxfuncs.pyi +262 -0
- numpy/f2py/capi_maps.py +811 -0
- numpy/f2py/capi_maps.pyi +33 -0
- numpy/f2py/cb_rules.py +665 -0
- numpy/f2py/cb_rules.pyi +17 -0
- numpy/f2py/cfuncs.py +1563 -0
- numpy/f2py/cfuncs.pyi +31 -0
- numpy/f2py/common_rules.py +143 -0
- numpy/f2py/common_rules.pyi +9 -0
- numpy/f2py/crackfortran.py +3725 -0
- numpy/f2py/crackfortran.pyi +266 -0
- numpy/f2py/diagnose.py +149 -0
- numpy/f2py/diagnose.pyi +1 -0
- numpy/f2py/f2py2e.py +788 -0
- numpy/f2py/f2py2e.pyi +74 -0
- numpy/f2py/f90mod_rules.py +269 -0
- numpy/f2py/f90mod_rules.pyi +16 -0
- numpy/f2py/func2subr.py +329 -0
- numpy/f2py/func2subr.pyi +7 -0
- numpy/f2py/rules.py +1629 -0
- numpy/f2py/rules.pyi +41 -0
- numpy/f2py/setup.cfg +3 -0
- numpy/f2py/src/fortranobject.c +1436 -0
- numpy/f2py/src/fortranobject.h +173 -0
- numpy/f2py/symbolic.py +1518 -0
- numpy/f2py/symbolic.pyi +219 -0
- numpy/f2py/tests/__init__.py +16 -0
- numpy/f2py/tests/src/abstract_interface/foo.f90 +34 -0
- numpy/f2py/tests/src/abstract_interface/gh18403_mod.f90 +6 -0
- numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +235 -0
- numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap +1 -0
- numpy/f2py/tests/src/assumed_shape/foo_free.f90 +34 -0
- numpy/f2py/tests/src/assumed_shape/foo_mod.f90 +41 -0
- numpy/f2py/tests/src/assumed_shape/foo_use.f90 +19 -0
- numpy/f2py/tests/src/assumed_shape/precision.f90 +4 -0
- numpy/f2py/tests/src/block_docstring/foo.f +6 -0
- numpy/f2py/tests/src/callback/foo.f +62 -0
- numpy/f2py/tests/src/callback/gh17797.f90 +7 -0
- numpy/f2py/tests/src/callback/gh18335.f90 +17 -0
- numpy/f2py/tests/src/callback/gh25211.f +10 -0
- numpy/f2py/tests/src/callback/gh25211.pyf +18 -0
- numpy/f2py/tests/src/callback/gh26681.f90 +18 -0
- numpy/f2py/tests/src/cli/gh_22819.pyf +6 -0
- numpy/f2py/tests/src/cli/hi77.f +3 -0
- numpy/f2py/tests/src/cli/hiworld.f90 +3 -0
- numpy/f2py/tests/src/common/block.f +11 -0
- numpy/f2py/tests/src/common/gh19161.f90 +10 -0
- numpy/f2py/tests/src/crackfortran/accesstype.f90 +13 -0
- numpy/f2py/tests/src/crackfortran/common_with_division.f +17 -0
- numpy/f2py/tests/src/crackfortran/data_common.f +8 -0
- numpy/f2py/tests/src/crackfortran/data_multiplier.f +5 -0
- numpy/f2py/tests/src/crackfortran/data_stmts.f90 +20 -0
- numpy/f2py/tests/src/crackfortran/data_with_comments.f +8 -0
- numpy/f2py/tests/src/crackfortran/foo_deps.f90 +6 -0
- numpy/f2py/tests/src/crackfortran/gh15035.f +16 -0
- numpy/f2py/tests/src/crackfortran/gh17859.f +12 -0
- numpy/f2py/tests/src/crackfortran/gh22648.pyf +7 -0
- numpy/f2py/tests/src/crackfortran/gh23533.f +5 -0
- numpy/f2py/tests/src/crackfortran/gh23598.f90 +4 -0
- numpy/f2py/tests/src/crackfortran/gh23598Warn.f90 +11 -0
- numpy/f2py/tests/src/crackfortran/gh23879.f90 +20 -0
- numpy/f2py/tests/src/crackfortran/gh27697.f90 +12 -0
- numpy/f2py/tests/src/crackfortran/gh2848.f90 +13 -0
- numpy/f2py/tests/src/crackfortran/operators.f90 +49 -0
- numpy/f2py/tests/src/crackfortran/privatemod.f90 +11 -0
- numpy/f2py/tests/src/crackfortran/publicmod.f90 +10 -0
- numpy/f2py/tests/src/crackfortran/pubprivmod.f90 +10 -0
- numpy/f2py/tests/src/crackfortran/unicode_comment.f90 +4 -0
- numpy/f2py/tests/src/f2cmap/.f2py_f2cmap +1 -0
- numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90 +9 -0
- numpy/f2py/tests/src/isocintrin/isoCtests.f90 +34 -0
- numpy/f2py/tests/src/kind/foo.f90 +20 -0
- numpy/f2py/tests/src/mixed/foo.f +5 -0
- numpy/f2py/tests/src/mixed/foo_fixed.f90 +8 -0
- numpy/f2py/tests/src/mixed/foo_free.f90 +8 -0
- numpy/f2py/tests/src/modules/gh25337/data.f90 +8 -0
- numpy/f2py/tests/src/modules/gh25337/use_data.f90 +6 -0
- numpy/f2py/tests/src/modules/gh26920/two_mods_with_no_public_entities.f90 +21 -0
- numpy/f2py/tests/src/modules/gh26920/two_mods_with_one_public_routine.f90 +21 -0
- numpy/f2py/tests/src/modules/module_data_docstring.f90 +12 -0
- numpy/f2py/tests/src/modules/use_modules.f90 +20 -0
- numpy/f2py/tests/src/negative_bounds/issue_20853.f90 +7 -0
- numpy/f2py/tests/src/parameter/constant_array.f90 +45 -0
- numpy/f2py/tests/src/parameter/constant_both.f90 +57 -0
- numpy/f2py/tests/src/parameter/constant_compound.f90 +15 -0
- numpy/f2py/tests/src/parameter/constant_integer.f90 +22 -0
- numpy/f2py/tests/src/parameter/constant_non_compound.f90 +23 -0
- numpy/f2py/tests/src/parameter/constant_real.f90 +23 -0
- numpy/f2py/tests/src/quoted_character/foo.f +14 -0
- numpy/f2py/tests/src/regression/AB.inc +1 -0
- numpy/f2py/tests/src/regression/assignOnlyModule.f90 +25 -0
- numpy/f2py/tests/src/regression/datonly.f90 +17 -0
- numpy/f2py/tests/src/regression/f77comments.f +26 -0
- numpy/f2py/tests/src/regression/f77fixedform.f95 +5 -0
- numpy/f2py/tests/src/regression/f90continuation.f90 +9 -0
- numpy/f2py/tests/src/regression/incfile.f90 +5 -0
- numpy/f2py/tests/src/regression/inout.f90 +9 -0
- numpy/f2py/tests/src/regression/lower_f2py_fortran.f90 +5 -0
- numpy/f2py/tests/src/regression/mod_derived_types.f90 +23 -0
- numpy/f2py/tests/src/return_character/foo77.f +45 -0
- numpy/f2py/tests/src/return_character/foo90.f90 +48 -0
- numpy/f2py/tests/src/return_complex/foo77.f +45 -0
- numpy/f2py/tests/src/return_complex/foo90.f90 +48 -0
- numpy/f2py/tests/src/return_integer/foo77.f +56 -0
- numpy/f2py/tests/src/return_integer/foo90.f90 +59 -0
- numpy/f2py/tests/src/return_logical/foo77.f +56 -0
- numpy/f2py/tests/src/return_logical/foo90.f90 +59 -0
- numpy/f2py/tests/src/return_real/foo77.f +45 -0
- numpy/f2py/tests/src/return_real/foo90.f90 +48 -0
- numpy/f2py/tests/src/routines/funcfortranname.f +5 -0
- numpy/f2py/tests/src/routines/funcfortranname.pyf +11 -0
- numpy/f2py/tests/src/routines/subrout.f +4 -0
- numpy/f2py/tests/src/routines/subrout.pyf +10 -0
- numpy/f2py/tests/src/size/foo.f90 +44 -0
- numpy/f2py/tests/src/string/char.f90 +29 -0
- numpy/f2py/tests/src/string/fixed_string.f90 +34 -0
- numpy/f2py/tests/src/string/gh24008.f +8 -0
- numpy/f2py/tests/src/string/gh24662.f90 +7 -0
- numpy/f2py/tests/src/string/gh25286.f90 +14 -0
- numpy/f2py/tests/src/string/gh25286.pyf +12 -0
- numpy/f2py/tests/src/string/gh25286_bc.pyf +12 -0
- numpy/f2py/tests/src/string/scalar_string.f90 +9 -0
- numpy/f2py/tests/src/string/string.f +12 -0
- numpy/f2py/tests/src/value_attrspec/gh21665.f90 +9 -0
- numpy/f2py/tests/test_abstract_interface.py +26 -0
- numpy/f2py/tests/test_array_from_pyobj.py +678 -0
- numpy/f2py/tests/test_assumed_shape.py +50 -0
- numpy/f2py/tests/test_block_docstring.py +20 -0
- numpy/f2py/tests/test_callback.py +263 -0
- numpy/f2py/tests/test_character.py +641 -0
- numpy/f2py/tests/test_common.py +23 -0
- numpy/f2py/tests/test_crackfortran.py +421 -0
- numpy/f2py/tests/test_data.py +71 -0
- numpy/f2py/tests/test_docs.py +66 -0
- numpy/f2py/tests/test_f2cmap.py +17 -0
- numpy/f2py/tests/test_f2py2e.py +983 -0
- numpy/f2py/tests/test_isoc.py +56 -0
- numpy/f2py/tests/test_kind.py +52 -0
- numpy/f2py/tests/test_mixed.py +35 -0
- numpy/f2py/tests/test_modules.py +83 -0
- numpy/f2py/tests/test_parameter.py +129 -0
- numpy/f2py/tests/test_pyf_src.py +43 -0
- numpy/f2py/tests/test_quoted_character.py +18 -0
- numpy/f2py/tests/test_regression.py +187 -0
- numpy/f2py/tests/test_return_character.py +48 -0
- numpy/f2py/tests/test_return_complex.py +67 -0
- numpy/f2py/tests/test_return_integer.py +55 -0
- numpy/f2py/tests/test_return_logical.py +65 -0
- numpy/f2py/tests/test_return_real.py +109 -0
- numpy/f2py/tests/test_routines.py +29 -0
- numpy/f2py/tests/test_semicolon_split.py +75 -0
- numpy/f2py/tests/test_size.py +45 -0
- numpy/f2py/tests/test_string.py +100 -0
- numpy/f2py/tests/test_symbolic.py +500 -0
- numpy/f2py/tests/test_value_attrspec.py +15 -0
- numpy/f2py/tests/util.py +442 -0
- numpy/f2py/use_rules.py +99 -0
- numpy/f2py/use_rules.pyi +9 -0
- numpy/fft/__init__.py +213 -0
- numpy/fft/__init__.pyi +38 -0
- numpy/fft/_helper.py +235 -0
- numpy/fft/_helper.pyi +44 -0
- numpy/fft/_pocketfft.py +1693 -0
- numpy/fft/_pocketfft.pyi +137 -0
- numpy/fft/_pocketfft_umath.pypy311-pp73-darwin.so +0 -0
- numpy/fft/tests/__init__.py +0 -0
- numpy/fft/tests/test_helper.py +167 -0
- numpy/fft/tests/test_pocketfft.py +589 -0
- numpy/lib/__init__.py +97 -0
- numpy/lib/__init__.pyi +52 -0
- numpy/lib/_array_utils_impl.py +62 -0
- numpy/lib/_array_utils_impl.pyi +10 -0
- numpy/lib/_arraypad_impl.py +926 -0
- numpy/lib/_arraypad_impl.pyi +88 -0
- numpy/lib/_arraysetops_impl.py +1158 -0
- numpy/lib/_arraysetops_impl.pyi +462 -0
- numpy/lib/_arrayterator_impl.py +224 -0
- numpy/lib/_arrayterator_impl.pyi +45 -0
- numpy/lib/_datasource.py +700 -0
- numpy/lib/_datasource.pyi +30 -0
- numpy/lib/_format_impl.py +1036 -0
- numpy/lib/_format_impl.pyi +56 -0
- numpy/lib/_function_base_impl.py +5760 -0
- numpy/lib/_function_base_impl.pyi +2324 -0
- numpy/lib/_histograms_impl.py +1085 -0
- numpy/lib/_histograms_impl.pyi +40 -0
- numpy/lib/_index_tricks_impl.py +1048 -0
- numpy/lib/_index_tricks_impl.pyi +267 -0
- numpy/lib/_iotools.py +900 -0
- numpy/lib/_iotools.pyi +116 -0
- numpy/lib/_nanfunctions_impl.py +2006 -0
- numpy/lib/_nanfunctions_impl.pyi +48 -0
- numpy/lib/_npyio_impl.py +2583 -0
- numpy/lib/_npyio_impl.pyi +299 -0
- numpy/lib/_polynomial_impl.py +1465 -0
- numpy/lib/_polynomial_impl.pyi +338 -0
- numpy/lib/_scimath_impl.py +642 -0
- numpy/lib/_scimath_impl.pyi +93 -0
- numpy/lib/_shape_base_impl.py +1289 -0
- numpy/lib/_shape_base_impl.pyi +236 -0
- numpy/lib/_stride_tricks_impl.py +582 -0
- numpy/lib/_stride_tricks_impl.pyi +73 -0
- numpy/lib/_twodim_base_impl.py +1201 -0
- numpy/lib/_twodim_base_impl.pyi +408 -0
- numpy/lib/_type_check_impl.py +710 -0
- numpy/lib/_type_check_impl.pyi +348 -0
- numpy/lib/_ufunclike_impl.py +199 -0
- numpy/lib/_ufunclike_impl.pyi +60 -0
- numpy/lib/_user_array_impl.py +310 -0
- numpy/lib/_user_array_impl.pyi +226 -0
- numpy/lib/_utils_impl.py +784 -0
- numpy/lib/_utils_impl.pyi +22 -0
- numpy/lib/_version.py +153 -0
- numpy/lib/_version.pyi +17 -0
- numpy/lib/array_utils.py +7 -0
- numpy/lib/array_utils.pyi +6 -0
- numpy/lib/format.py +24 -0
- numpy/lib/format.pyi +24 -0
- numpy/lib/introspect.py +94 -0
- numpy/lib/introspect.pyi +3 -0
- numpy/lib/mixins.py +180 -0
- numpy/lib/mixins.pyi +78 -0
- numpy/lib/npyio.py +1 -0
- numpy/lib/npyio.pyi +5 -0
- numpy/lib/recfunctions.py +1681 -0
- numpy/lib/recfunctions.pyi +444 -0
- numpy/lib/scimath.py +13 -0
- numpy/lib/scimath.pyi +12 -0
- numpy/lib/stride_tricks.py +1 -0
- numpy/lib/stride_tricks.pyi +4 -0
- numpy/lib/tests/__init__.py +0 -0
- numpy/lib/tests/data/py2-np0-objarr.npy +0 -0
- numpy/lib/tests/data/py2-objarr.npy +0 -0
- numpy/lib/tests/data/py2-objarr.npz +0 -0
- numpy/lib/tests/data/py3-objarr.npy +0 -0
- numpy/lib/tests/data/py3-objarr.npz +0 -0
- numpy/lib/tests/data/python3.npy +0 -0
- numpy/lib/tests/data/win64python2.npy +0 -0
- numpy/lib/tests/test__datasource.py +328 -0
- numpy/lib/tests/test__iotools.py +358 -0
- numpy/lib/tests/test__version.py +64 -0
- numpy/lib/tests/test_array_utils.py +32 -0
- numpy/lib/tests/test_arraypad.py +1427 -0
- numpy/lib/tests/test_arraysetops.py +1302 -0
- numpy/lib/tests/test_arrayterator.py +45 -0
- numpy/lib/tests/test_format.py +1054 -0
- numpy/lib/tests/test_function_base.py +4750 -0
- numpy/lib/tests/test_histograms.py +855 -0
- numpy/lib/tests/test_index_tricks.py +693 -0
- numpy/lib/tests/test_io.py +2857 -0
- numpy/lib/tests/test_loadtxt.py +1099 -0
- numpy/lib/tests/test_mixins.py +215 -0
- numpy/lib/tests/test_nanfunctions.py +1438 -0
- numpy/lib/tests/test_packbits.py +376 -0
- numpy/lib/tests/test_polynomial.py +325 -0
- numpy/lib/tests/test_recfunctions.py +1042 -0
- numpy/lib/tests/test_regression.py +231 -0
- numpy/lib/tests/test_shape_base.py +813 -0
- numpy/lib/tests/test_stride_tricks.py +655 -0
- numpy/lib/tests/test_twodim_base.py +559 -0
- numpy/lib/tests/test_type_check.py +473 -0
- numpy/lib/tests/test_ufunclike.py +97 -0
- numpy/lib/tests/test_utils.py +80 -0
- numpy/lib/user_array.py +1 -0
- numpy/lib/user_array.pyi +1 -0
- numpy/linalg/__init__.py +95 -0
- numpy/linalg/__init__.pyi +71 -0
- numpy/linalg/_linalg.py +3657 -0
- numpy/linalg/_linalg.pyi +548 -0
- numpy/linalg/_umath_linalg.pyi +60 -0
- numpy/linalg/_umath_linalg.pypy311-pp73-darwin.so +0 -0
- numpy/linalg/lapack_lite.pyi +143 -0
- numpy/linalg/lapack_lite.pypy311-pp73-darwin.so +0 -0
- numpy/linalg/tests/__init__.py +0 -0
- numpy/linalg/tests/test_deprecations.py +21 -0
- numpy/linalg/tests/test_linalg.py +2442 -0
- numpy/linalg/tests/test_regression.py +182 -0
- numpy/ma/API_CHANGES.txt +135 -0
- numpy/ma/LICENSE +24 -0
- numpy/ma/README.rst +236 -0
- numpy/ma/__init__.py +53 -0
- numpy/ma/__init__.pyi +458 -0
- numpy/ma/core.py +8929 -0
- numpy/ma/core.pyi +3720 -0
- numpy/ma/extras.py +2266 -0
- numpy/ma/extras.pyi +297 -0
- numpy/ma/mrecords.py +762 -0
- numpy/ma/mrecords.pyi +96 -0
- numpy/ma/tests/__init__.py +0 -0
- numpy/ma/tests/test_arrayobject.py +40 -0
- numpy/ma/tests/test_core.py +6008 -0
- numpy/ma/tests/test_deprecations.py +65 -0
- numpy/ma/tests/test_extras.py +1945 -0
- numpy/ma/tests/test_mrecords.py +495 -0
- numpy/ma/tests/test_old_ma.py +939 -0
- numpy/ma/tests/test_regression.py +83 -0
- numpy/ma/tests/test_subclassing.py +469 -0
- numpy/ma/testutils.py +294 -0
- numpy/ma/testutils.pyi +69 -0
- numpy/matlib.py +380 -0
- numpy/matlib.pyi +580 -0
- numpy/matrixlib/__init__.py +12 -0
- numpy/matrixlib/__init__.pyi +3 -0
- numpy/matrixlib/defmatrix.py +1119 -0
- numpy/matrixlib/defmatrix.pyi +218 -0
- numpy/matrixlib/tests/__init__.py +0 -0
- numpy/matrixlib/tests/test_defmatrix.py +455 -0
- numpy/matrixlib/tests/test_interaction.py +360 -0
- numpy/matrixlib/tests/test_masked_matrix.py +240 -0
- numpy/matrixlib/tests/test_matrix_linalg.py +110 -0
- numpy/matrixlib/tests/test_multiarray.py +17 -0
- numpy/matrixlib/tests/test_numeric.py +18 -0
- numpy/matrixlib/tests/test_regression.py +31 -0
- numpy/polynomial/__init__.py +187 -0
- numpy/polynomial/__init__.pyi +31 -0
- numpy/polynomial/_polybase.py +1191 -0
- numpy/polynomial/_polybase.pyi +262 -0
- numpy/polynomial/_polytypes.pyi +501 -0
- numpy/polynomial/chebyshev.py +2001 -0
- numpy/polynomial/chebyshev.pyi +180 -0
- numpy/polynomial/hermite.py +1738 -0
- numpy/polynomial/hermite.pyi +106 -0
- numpy/polynomial/hermite_e.py +1640 -0
- numpy/polynomial/hermite_e.pyi +106 -0
- numpy/polynomial/laguerre.py +1673 -0
- numpy/polynomial/laguerre.pyi +100 -0
- numpy/polynomial/legendre.py +1603 -0
- numpy/polynomial/legendre.pyi +100 -0
- numpy/polynomial/polynomial.py +1625 -0
- numpy/polynomial/polynomial.pyi +109 -0
- numpy/polynomial/polyutils.py +759 -0
- numpy/polynomial/polyutils.pyi +307 -0
- numpy/polynomial/tests/__init__.py +0 -0
- numpy/polynomial/tests/test_chebyshev.py +618 -0
- numpy/polynomial/tests/test_classes.py +613 -0
- numpy/polynomial/tests/test_hermite.py +553 -0
- numpy/polynomial/tests/test_hermite_e.py +554 -0
- numpy/polynomial/tests/test_laguerre.py +535 -0
- numpy/polynomial/tests/test_legendre.py +566 -0
- numpy/polynomial/tests/test_polynomial.py +691 -0
- numpy/polynomial/tests/test_polyutils.py +123 -0
- numpy/polynomial/tests/test_printing.py +557 -0
- numpy/polynomial/tests/test_symbol.py +217 -0
- numpy/py.typed +0 -0
- numpy/random/LICENSE.md +71 -0
- numpy/random/__init__.pxd +14 -0
- numpy/random/__init__.py +213 -0
- numpy/random/__init__.pyi +124 -0
- numpy/random/_bounded_integers.pxd +29 -0
- numpy/random/_bounded_integers.pyi +1 -0
- numpy/random/_bounded_integers.pypy311-pp73-darwin.so +0 -0
- numpy/random/_common.pxd +110 -0
- numpy/random/_common.pyi +16 -0
- numpy/random/_common.pypy311-pp73-darwin.so +0 -0
- numpy/random/_examples/cffi/extending.py +44 -0
- numpy/random/_examples/cffi/parse.py +53 -0
- numpy/random/_examples/cython/extending.pyx +77 -0
- numpy/random/_examples/cython/extending_distributions.pyx +117 -0
- numpy/random/_examples/cython/meson.build +53 -0
- numpy/random/_examples/numba/extending.py +86 -0
- numpy/random/_examples/numba/extending_distributions.py +67 -0
- numpy/random/_generator.pyi +862 -0
- numpy/random/_generator.pypy311-pp73-darwin.so +0 -0
- numpy/random/_mt19937.pyi +27 -0
- numpy/random/_mt19937.pypy311-pp73-darwin.so +0 -0
- numpy/random/_pcg64.pyi +41 -0
- numpy/random/_pcg64.pypy311-pp73-darwin.so +0 -0
- numpy/random/_philox.pyi +36 -0
- numpy/random/_philox.pypy311-pp73-darwin.so +0 -0
- numpy/random/_pickle.py +88 -0
- numpy/random/_pickle.pyi +43 -0
- numpy/random/_sfc64.pyi +25 -0
- numpy/random/_sfc64.pypy311-pp73-darwin.so +0 -0
- numpy/random/bit_generator.pxd +40 -0
- numpy/random/bit_generator.pyi +123 -0
- numpy/random/bit_generator.pypy311-pp73-darwin.so +0 -0
- numpy/random/c_distributions.pxd +119 -0
- numpy/random/lib/libnpyrandom.a +0 -0
- numpy/random/mtrand.pyi +759 -0
- numpy/random/mtrand.pypy311-pp73-darwin.so +0 -0
- numpy/random/tests/__init__.py +0 -0
- numpy/random/tests/data/__init__.py +0 -0
- numpy/random/tests/data/generator_pcg64_np121.pkl.gz +0 -0
- numpy/random/tests/data/generator_pcg64_np126.pkl.gz +0 -0
- numpy/random/tests/data/mt19937-testset-1.csv +1001 -0
- numpy/random/tests/data/mt19937-testset-2.csv +1001 -0
- numpy/random/tests/data/pcg64-testset-1.csv +1001 -0
- numpy/random/tests/data/pcg64-testset-2.csv +1001 -0
- numpy/random/tests/data/pcg64dxsm-testset-1.csv +1001 -0
- numpy/random/tests/data/pcg64dxsm-testset-2.csv +1001 -0
- numpy/random/tests/data/philox-testset-1.csv +1001 -0
- numpy/random/tests/data/philox-testset-2.csv +1001 -0
- numpy/random/tests/data/sfc64-testset-1.csv +1001 -0
- numpy/random/tests/data/sfc64-testset-2.csv +1001 -0
- numpy/random/tests/data/sfc64_np126.pkl.gz +0 -0
- numpy/random/tests/test_direct.py +595 -0
- numpy/random/tests/test_extending.py +131 -0
- numpy/random/tests/test_generator_mt19937.py +2825 -0
- numpy/random/tests/test_generator_mt19937_regressions.py +221 -0
- numpy/random/tests/test_random.py +1724 -0
- numpy/random/tests/test_randomstate.py +2099 -0
- numpy/random/tests/test_randomstate_regression.py +213 -0
- numpy/random/tests/test_regression.py +175 -0
- numpy/random/tests/test_seed_sequence.py +79 -0
- numpy/random/tests/test_smoke.py +882 -0
- numpy/rec/__init__.py +2 -0
- numpy/rec/__init__.pyi +23 -0
- numpy/strings/__init__.py +2 -0
- numpy/strings/__init__.pyi +97 -0
- numpy/testing/__init__.py +22 -0
- numpy/testing/__init__.pyi +107 -0
- numpy/testing/_private/__init__.py +0 -0
- numpy/testing/_private/__init__.pyi +0 -0
- numpy/testing/_private/extbuild.py +250 -0
- numpy/testing/_private/extbuild.pyi +25 -0
- numpy/testing/_private/utils.py +2830 -0
- numpy/testing/_private/utils.pyi +505 -0
- numpy/testing/overrides.py +84 -0
- numpy/testing/overrides.pyi +10 -0
- numpy/testing/print_coercion_tables.py +207 -0
- numpy/testing/print_coercion_tables.pyi +26 -0
- numpy/testing/tests/__init__.py +0 -0
- numpy/testing/tests/test_utils.py +2123 -0
- numpy/tests/__init__.py +0 -0
- numpy/tests/test__all__.py +10 -0
- numpy/tests/test_configtool.py +51 -0
- numpy/tests/test_ctypeslib.py +383 -0
- numpy/tests/test_lazyloading.py +42 -0
- numpy/tests/test_matlib.py +59 -0
- numpy/tests/test_numpy_config.py +47 -0
- numpy/tests/test_numpy_version.py +54 -0
- numpy/tests/test_public_api.py +807 -0
- numpy/tests/test_reloading.py +76 -0
- numpy/tests/test_scripts.py +48 -0
- numpy/tests/test_warnings.py +79 -0
- numpy/typing/__init__.py +233 -0
- numpy/typing/__init__.pyi +3 -0
- numpy/typing/mypy_plugin.py +200 -0
- numpy/typing/tests/__init__.py +0 -0
- numpy/typing/tests/data/fail/arithmetic.pyi +126 -0
- numpy/typing/tests/data/fail/array_constructors.pyi +34 -0
- numpy/typing/tests/data/fail/array_like.pyi +15 -0
- numpy/typing/tests/data/fail/array_pad.pyi +6 -0
- numpy/typing/tests/data/fail/arrayprint.pyi +15 -0
- numpy/typing/tests/data/fail/arrayterator.pyi +14 -0
- numpy/typing/tests/data/fail/bitwise_ops.pyi +17 -0
- numpy/typing/tests/data/fail/char.pyi +63 -0
- numpy/typing/tests/data/fail/chararray.pyi +61 -0
- numpy/typing/tests/data/fail/comparisons.pyi +27 -0
- numpy/typing/tests/data/fail/constants.pyi +3 -0
- numpy/typing/tests/data/fail/datasource.pyi +16 -0
- numpy/typing/tests/data/fail/dtype.pyi +17 -0
- numpy/typing/tests/data/fail/einsumfunc.pyi +12 -0
- numpy/typing/tests/data/fail/flatiter.pyi +38 -0
- numpy/typing/tests/data/fail/fromnumeric.pyi +148 -0
- numpy/typing/tests/data/fail/histograms.pyi +12 -0
- numpy/typing/tests/data/fail/index_tricks.pyi +14 -0
- numpy/typing/tests/data/fail/lib_function_base.pyi +60 -0
- numpy/typing/tests/data/fail/lib_polynomial.pyi +29 -0
- numpy/typing/tests/data/fail/lib_utils.pyi +3 -0
- numpy/typing/tests/data/fail/lib_version.pyi +6 -0
- numpy/typing/tests/data/fail/linalg.pyi +52 -0
- numpy/typing/tests/data/fail/ma.pyi +155 -0
- numpy/typing/tests/data/fail/memmap.pyi +5 -0
- numpy/typing/tests/data/fail/modules.pyi +17 -0
- numpy/typing/tests/data/fail/multiarray.pyi +52 -0
- numpy/typing/tests/data/fail/ndarray.pyi +11 -0
- numpy/typing/tests/data/fail/ndarray_misc.pyi +49 -0
- numpy/typing/tests/data/fail/nditer.pyi +8 -0
- numpy/typing/tests/data/fail/nested_sequence.pyi +17 -0
- numpy/typing/tests/data/fail/npyio.pyi +24 -0
- numpy/typing/tests/data/fail/numerictypes.pyi +5 -0
- numpy/typing/tests/data/fail/random.pyi +62 -0
- numpy/typing/tests/data/fail/rec.pyi +17 -0
- numpy/typing/tests/data/fail/scalars.pyi +86 -0
- numpy/typing/tests/data/fail/shape.pyi +7 -0
- numpy/typing/tests/data/fail/shape_base.pyi +8 -0
- numpy/typing/tests/data/fail/stride_tricks.pyi +9 -0
- numpy/typing/tests/data/fail/strings.pyi +52 -0
- numpy/typing/tests/data/fail/testing.pyi +28 -0
- numpy/typing/tests/data/fail/twodim_base.pyi +39 -0
- numpy/typing/tests/data/fail/type_check.pyi +12 -0
- numpy/typing/tests/data/fail/ufunc_config.pyi +21 -0
- numpy/typing/tests/data/fail/ufunclike.pyi +21 -0
- numpy/typing/tests/data/fail/ufuncs.pyi +17 -0
- numpy/typing/tests/data/fail/warnings_and_errors.pyi +5 -0
- numpy/typing/tests/data/misc/extended_precision.pyi +9 -0
- numpy/typing/tests/data/mypy.ini +8 -0
- numpy/typing/tests/data/pass/arithmetic.py +614 -0
- numpy/typing/tests/data/pass/array_constructors.py +138 -0
- numpy/typing/tests/data/pass/array_like.py +43 -0
- numpy/typing/tests/data/pass/arrayprint.py +37 -0
- numpy/typing/tests/data/pass/arrayterator.py +28 -0
- numpy/typing/tests/data/pass/bitwise_ops.py +131 -0
- numpy/typing/tests/data/pass/comparisons.py +316 -0
- numpy/typing/tests/data/pass/dtype.py +57 -0
- numpy/typing/tests/data/pass/einsumfunc.py +36 -0
- numpy/typing/tests/data/pass/flatiter.py +26 -0
- numpy/typing/tests/data/pass/fromnumeric.py +272 -0
- numpy/typing/tests/data/pass/index_tricks.py +62 -0
- numpy/typing/tests/data/pass/lib_user_array.py +22 -0
- numpy/typing/tests/data/pass/lib_utils.py +19 -0
- numpy/typing/tests/data/pass/lib_version.py +18 -0
- numpy/typing/tests/data/pass/literal.py +52 -0
- numpy/typing/tests/data/pass/ma.py +199 -0
- numpy/typing/tests/data/pass/mod.py +149 -0
- numpy/typing/tests/data/pass/modules.py +45 -0
- numpy/typing/tests/data/pass/multiarray.py +77 -0
- numpy/typing/tests/data/pass/ndarray_conversion.py +81 -0
- numpy/typing/tests/data/pass/ndarray_misc.py +199 -0
- numpy/typing/tests/data/pass/ndarray_shape_manipulation.py +47 -0
- numpy/typing/tests/data/pass/nditer.py +4 -0
- numpy/typing/tests/data/pass/numeric.py +90 -0
- numpy/typing/tests/data/pass/numerictypes.py +17 -0
- numpy/typing/tests/data/pass/random.py +1498 -0
- numpy/typing/tests/data/pass/recfunctions.py +164 -0
- numpy/typing/tests/data/pass/scalars.py +249 -0
- numpy/typing/tests/data/pass/shape.py +19 -0
- numpy/typing/tests/data/pass/simple.py +170 -0
- numpy/typing/tests/data/pass/ufunc_config.py +64 -0
- numpy/typing/tests/data/pass/ufunclike.py +52 -0
- numpy/typing/tests/data/pass/ufuncs.py +16 -0
- numpy/typing/tests/data/pass/warnings_and_errors.py +6 -0
- numpy/typing/tests/data/reveal/arithmetic.pyi +719 -0
- numpy/typing/tests/data/reveal/array_api_info.pyi +70 -0
- numpy/typing/tests/data/reveal/array_constructors.pyi +277 -0
- numpy/typing/tests/data/reveal/arraypad.pyi +27 -0
- numpy/typing/tests/data/reveal/arrayprint.pyi +25 -0
- numpy/typing/tests/data/reveal/arraysetops.pyi +74 -0
- numpy/typing/tests/data/reveal/arrayterator.pyi +27 -0
- numpy/typing/tests/data/reveal/bitwise_ops.pyi +166 -0
- numpy/typing/tests/data/reveal/char.pyi +225 -0
- numpy/typing/tests/data/reveal/chararray.pyi +138 -0
- numpy/typing/tests/data/reveal/comparisons.pyi +264 -0
- numpy/typing/tests/data/reveal/constants.pyi +14 -0
- numpy/typing/tests/data/reveal/ctypeslib.pyi +81 -0
- numpy/typing/tests/data/reveal/datasource.pyi +23 -0
- numpy/typing/tests/data/reveal/dtype.pyi +132 -0
- numpy/typing/tests/data/reveal/einsumfunc.pyi +39 -0
- numpy/typing/tests/data/reveal/emath.pyi +54 -0
- numpy/typing/tests/data/reveal/fft.pyi +37 -0
- numpy/typing/tests/data/reveal/flatiter.pyi +86 -0
- numpy/typing/tests/data/reveal/fromnumeric.pyi +347 -0
- numpy/typing/tests/data/reveal/getlimits.pyi +53 -0
- numpy/typing/tests/data/reveal/histograms.pyi +25 -0
- numpy/typing/tests/data/reveal/index_tricks.pyi +70 -0
- numpy/typing/tests/data/reveal/lib_function_base.pyi +409 -0
- numpy/typing/tests/data/reveal/lib_polynomial.pyi +147 -0
- numpy/typing/tests/data/reveal/lib_utils.pyi +17 -0
- numpy/typing/tests/data/reveal/lib_version.pyi +20 -0
- numpy/typing/tests/data/reveal/linalg.pyi +154 -0
- numpy/typing/tests/data/reveal/ma.pyi +1098 -0
- numpy/typing/tests/data/reveal/matrix.pyi +73 -0
- numpy/typing/tests/data/reveal/memmap.pyi +19 -0
- numpy/typing/tests/data/reveal/mod.pyi +178 -0
- numpy/typing/tests/data/reveal/modules.pyi +51 -0
- numpy/typing/tests/data/reveal/multiarray.pyi +197 -0
- numpy/typing/tests/data/reveal/nbit_base_example.pyi +20 -0
- numpy/typing/tests/data/reveal/ndarray_assignability.pyi +82 -0
- numpy/typing/tests/data/reveal/ndarray_conversion.pyi +83 -0
- numpy/typing/tests/data/reveal/ndarray_misc.pyi +246 -0
- numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi +47 -0
- numpy/typing/tests/data/reveal/nditer.pyi +49 -0
- numpy/typing/tests/data/reveal/nested_sequence.pyi +25 -0
- numpy/typing/tests/data/reveal/npyio.pyi +83 -0
- numpy/typing/tests/data/reveal/numeric.pyi +170 -0
- numpy/typing/tests/data/reveal/numerictypes.pyi +16 -0
- numpy/typing/tests/data/reveal/polynomial_polybase.pyi +217 -0
- numpy/typing/tests/data/reveal/polynomial_polyutils.pyi +218 -0
- numpy/typing/tests/data/reveal/polynomial_series.pyi +138 -0
- numpy/typing/tests/data/reveal/random.pyi +1546 -0
- numpy/typing/tests/data/reveal/rec.pyi +171 -0
- numpy/typing/tests/data/reveal/scalars.pyi +191 -0
- numpy/typing/tests/data/reveal/shape.pyi +13 -0
- numpy/typing/tests/data/reveal/shape_base.pyi +52 -0
- numpy/typing/tests/data/reveal/stride_tricks.pyi +27 -0
- numpy/typing/tests/data/reveal/strings.pyi +196 -0
- numpy/typing/tests/data/reveal/testing.pyi +198 -0
- numpy/typing/tests/data/reveal/twodim_base.pyi +225 -0
- numpy/typing/tests/data/reveal/type_check.pyi +67 -0
- numpy/typing/tests/data/reveal/ufunc_config.pyi +29 -0
- numpy/typing/tests/data/reveal/ufunclike.pyi +31 -0
- numpy/typing/tests/data/reveal/ufuncs.pyi +142 -0
- numpy/typing/tests/data/reveal/warnings_and_errors.pyi +11 -0
- numpy/typing/tests/test_isfile.py +38 -0
- numpy/typing/tests/test_runtime.py +110 -0
- numpy/typing/tests/test_typing.py +205 -0
- numpy/version.py +11 -0
- numpy/version.pyi +9 -0
- numpy-2.4.1.dist-info/METADATA +139 -0
- numpy-2.4.1.dist-info/RECORD +1039 -0
- numpy-2.4.1.dist-info/WHEEL +6 -0
- numpy-2.4.1.dist-info/entry_points.txt +13 -0
- numpy-2.4.1.dist-info/licenses/LICENSE.txt +935 -0
- numpy-2.4.1.dist-info/licenses/numpy/_core/include/numpy/libdivide/LICENSE.txt +21 -0
- numpy-2.4.1.dist-info/licenses/numpy/_core/src/common/pythoncapi-compat/COPYING +14 -0
- numpy-2.4.1.dist-info/licenses/numpy/_core/src/highway/LICENSE +371 -0
- numpy-2.4.1.dist-info/licenses/numpy/_core/src/multiarray/dragon4_LICENSE.txt +27 -0
- numpy-2.4.1.dist-info/licenses/numpy/_core/src/npysort/x86-simd-sort/LICENSE.md +28 -0
- numpy-2.4.1.dist-info/licenses/numpy/_core/src/umath/svml/LICENSE +30 -0
- numpy-2.4.1.dist-info/licenses/numpy/fft/pocketfft/LICENSE.md +25 -0
- numpy-2.4.1.dist-info/licenses/numpy/linalg/lapack_lite/LICENSE.txt +48 -0
- numpy-2.4.1.dist-info/licenses/numpy/ma/LICENSE +24 -0
- numpy-2.4.1.dist-info/licenses/numpy/random/LICENSE.md +71 -0
- numpy-2.4.1.dist-info/licenses/numpy/random/src/distributions/LICENSE.md +61 -0
- numpy-2.4.1.dist-info/licenses/numpy/random/src/mt19937/LICENSE.md +61 -0
- numpy-2.4.1.dist-info/licenses/numpy/random/src/pcg64/LICENSE.md +22 -0
- numpy-2.4.1.dist-info/licenses/numpy/random/src/philox/LICENSE.md +31 -0
- numpy-2.4.1.dist-info/licenses/numpy/random/src/sfc64/LICENSE.md +27 -0
- numpy-2.4.1.dist-info/licenses/numpy/random/src/splitmix64/LICENSE.md +9 -0
numpy/conftest.py
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Pytest configuration and fixtures for the Numpy test suite.
|
|
3
|
+
"""
|
|
4
|
+
import os
|
|
5
|
+
import sys
|
|
6
|
+
import tempfile
|
|
7
|
+
import warnings
|
|
8
|
+
from contextlib import contextmanager
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
import hypothesis
|
|
12
|
+
import pytest
|
|
13
|
+
|
|
14
|
+
import numpy
|
|
15
|
+
from numpy._core._multiarray_tests import get_fpu_mode
|
|
16
|
+
from numpy.testing._private.utils import NOGIL_BUILD
|
|
17
|
+
|
|
18
|
+
try:
|
|
19
|
+
from scipy_doctest.conftest import dt_config
|
|
20
|
+
HAVE_SCPDT = True
|
|
21
|
+
except ModuleNotFoundError:
|
|
22
|
+
HAVE_SCPDT = False
|
|
23
|
+
|
|
24
|
+
try:
|
|
25
|
+
import pytest_run_parallel # noqa: F401
|
|
26
|
+
PARALLEL_RUN_AVALIABLE = True
|
|
27
|
+
except ModuleNotFoundError:
|
|
28
|
+
PARALLEL_RUN_AVALIABLE = False
|
|
29
|
+
|
|
30
|
+
_old_fpu_mode = None
|
|
31
|
+
_collect_results = {}
|
|
32
|
+
|
|
33
|
+
# Use a known and persistent tmpdir for hypothesis' caches, which
|
|
34
|
+
# can be automatically cleared by the OS or user.
|
|
35
|
+
hypothesis.configuration.set_hypothesis_home_dir(
|
|
36
|
+
os.path.join(tempfile.gettempdir(), ".hypothesis")
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
# We register two custom profiles for Numpy - for details see
|
|
40
|
+
# https://hypothesis.readthedocs.io/en/latest/settings.html
|
|
41
|
+
# The first is designed for our own CI runs; the latter also
|
|
42
|
+
# forces determinism and is designed for use via np.test()
|
|
43
|
+
hypothesis.settings.register_profile(
|
|
44
|
+
name="numpy-profile", deadline=None, print_blob=True,
|
|
45
|
+
)
|
|
46
|
+
hypothesis.settings.register_profile(
|
|
47
|
+
name="np.test() profile",
|
|
48
|
+
deadline=None, print_blob=True, database=None, derandomize=True,
|
|
49
|
+
suppress_health_check=list(hypothesis.HealthCheck),
|
|
50
|
+
)
|
|
51
|
+
# Note that the default profile is chosen based on the presence
|
|
52
|
+
# of pytest.ini, but can be overridden by passing the
|
|
53
|
+
# --hypothesis-profile=NAME argument to pytest.
|
|
54
|
+
_pytest_ini = os.path.join(os.path.dirname(__file__), "..", "pytest.ini")
|
|
55
|
+
hypothesis.settings.load_profile(
|
|
56
|
+
"numpy-profile" if os.path.isfile(_pytest_ini) else "np.test() profile"
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
# The experimentalAPI is used in _umath_tests
|
|
60
|
+
os.environ["NUMPY_EXPERIMENTAL_DTYPE_API"] = "1"
|
|
61
|
+
|
|
62
|
+
def pytest_configure(config):
|
|
63
|
+
config.addinivalue_line("markers",
|
|
64
|
+
"valgrind_error: Tests that are known to error under valgrind.")
|
|
65
|
+
config.addinivalue_line("markers",
|
|
66
|
+
"leaks_references: Tests that are known to leak references.")
|
|
67
|
+
config.addinivalue_line("markers",
|
|
68
|
+
"slow: Tests that are very slow.")
|
|
69
|
+
config.addinivalue_line("markers",
|
|
70
|
+
"slow_pypy: Tests that are very slow on pypy.")
|
|
71
|
+
if not PARALLEL_RUN_AVALIABLE:
|
|
72
|
+
config.addinivalue_line("markers",
|
|
73
|
+
"parallel_threads(n): run the given test function in parallel "
|
|
74
|
+
"using `n` threads.",
|
|
75
|
+
)
|
|
76
|
+
config.addinivalue_line("markers",
|
|
77
|
+
"iterations(n): run the given test function `n` times in each thread",
|
|
78
|
+
)
|
|
79
|
+
config.addinivalue_line("markers",
|
|
80
|
+
"thread_unsafe: mark the test function as single-threaded",
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def pytest_addoption(parser):
|
|
85
|
+
parser.addoption("--available-memory", action="store", default=None,
|
|
86
|
+
help=("Set amount of memory available for running the "
|
|
87
|
+
"test suite. This can result to tests requiring "
|
|
88
|
+
"especially large amounts of memory to be skipped. "
|
|
89
|
+
"Equivalent to setting environment variable "
|
|
90
|
+
"NPY_AVAILABLE_MEM. Default: determined"
|
|
91
|
+
"automatically."))
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
gil_enabled_at_start = True
|
|
95
|
+
if NOGIL_BUILD:
|
|
96
|
+
gil_enabled_at_start = sys._is_gil_enabled()
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def pytest_sessionstart(session):
|
|
100
|
+
available_mem = session.config.getoption('available_memory')
|
|
101
|
+
if available_mem is not None:
|
|
102
|
+
os.environ['NPY_AVAILABLE_MEM'] = available_mem
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def pytest_terminal_summary(terminalreporter, exitstatus, config):
|
|
106
|
+
if NOGIL_BUILD and not gil_enabled_at_start and sys._is_gil_enabled():
|
|
107
|
+
tr = terminalreporter
|
|
108
|
+
tr.ensure_newline()
|
|
109
|
+
tr.section("GIL re-enabled", sep="=", red=True, bold=True)
|
|
110
|
+
tr.line("The GIL was re-enabled at runtime during the tests.")
|
|
111
|
+
tr.line("This can happen with no test failures if the RuntimeWarning")
|
|
112
|
+
tr.line("raised by Python when this happens is filtered by a test.")
|
|
113
|
+
tr.line("")
|
|
114
|
+
tr.line("Please ensure all new C modules declare support for running")
|
|
115
|
+
tr.line("without the GIL. Any new tests that intentionally imports ")
|
|
116
|
+
tr.line("code that re-enables the GIL should do so in a subprocess.")
|
|
117
|
+
pytest.exit("GIL re-enabled during tests", returncode=1)
|
|
118
|
+
|
|
119
|
+
# FIXME when yield tests are gone.
|
|
120
|
+
@pytest.hookimpl(tryfirst=True)
|
|
121
|
+
def pytest_itemcollected(item):
|
|
122
|
+
"""
|
|
123
|
+
Check FPU precision mode was not changed during test collection.
|
|
124
|
+
|
|
125
|
+
The clumsy way we do it here is mainly necessary because numpy
|
|
126
|
+
still uses yield tests, which can execute code at test collection
|
|
127
|
+
time.
|
|
128
|
+
"""
|
|
129
|
+
global _old_fpu_mode
|
|
130
|
+
|
|
131
|
+
mode = get_fpu_mode()
|
|
132
|
+
|
|
133
|
+
if _old_fpu_mode is None:
|
|
134
|
+
_old_fpu_mode = mode
|
|
135
|
+
elif mode != _old_fpu_mode:
|
|
136
|
+
_collect_results[item] = (_old_fpu_mode, mode)
|
|
137
|
+
_old_fpu_mode = mode
|
|
138
|
+
|
|
139
|
+
# mark f2py tests as thread unsafe
|
|
140
|
+
if Path(item.fspath).parent == Path(__file__).parent / 'f2py' / 'tests':
|
|
141
|
+
item.add_marker(pytest.mark.thread_unsafe(
|
|
142
|
+
reason="f2py tests are thread-unsafe"))
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
@pytest.fixture(scope="function", autouse=True)
|
|
146
|
+
def check_fpu_mode(request):
|
|
147
|
+
"""
|
|
148
|
+
Check FPU precision mode was not changed during the test.
|
|
149
|
+
"""
|
|
150
|
+
old_mode = get_fpu_mode()
|
|
151
|
+
yield
|
|
152
|
+
new_mode = get_fpu_mode()
|
|
153
|
+
|
|
154
|
+
if old_mode != new_mode:
|
|
155
|
+
raise AssertionError(f"FPU precision mode changed from {old_mode:#x} to "
|
|
156
|
+
f"{new_mode:#x} during the test")
|
|
157
|
+
|
|
158
|
+
collect_result = _collect_results.get(request.node)
|
|
159
|
+
if collect_result is not None:
|
|
160
|
+
old_mode, new_mode = collect_result
|
|
161
|
+
raise AssertionError(f"FPU precision mode changed from {old_mode:#x} to "
|
|
162
|
+
f"{new_mode:#x} when collecting the test")
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
@pytest.fixture(autouse=True)
|
|
166
|
+
def add_np(doctest_namespace):
|
|
167
|
+
doctest_namespace['np'] = numpy
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
if HAVE_SCPDT:
|
|
171
|
+
|
|
172
|
+
@contextmanager
|
|
173
|
+
def warnings_errors_and_rng(test=None):
|
|
174
|
+
"""Filter out the wall of DeprecationWarnings.
|
|
175
|
+
"""
|
|
176
|
+
msgs = ["The numpy.linalg.linalg",
|
|
177
|
+
"The numpy.fft.helper",
|
|
178
|
+
"dep_util",
|
|
179
|
+
"pkg_resources",
|
|
180
|
+
"numpy.core.umath",
|
|
181
|
+
"msvccompiler",
|
|
182
|
+
"Deprecated call",
|
|
183
|
+
"numpy.core",
|
|
184
|
+
"Importing from numpy.matlib",
|
|
185
|
+
"This function is deprecated.", # random_integers
|
|
186
|
+
"Data type alias 'a'", # numpy.rec.fromfile
|
|
187
|
+
"Arrays of 2-dimensional vectors", # matlib.cross
|
|
188
|
+
"NumPy warning suppression and assertion utilities are deprecated."
|
|
189
|
+
]
|
|
190
|
+
msg = "|".join(msgs)
|
|
191
|
+
|
|
192
|
+
msgs_r = [
|
|
193
|
+
"invalid value encountered",
|
|
194
|
+
"divide by zero encountered"
|
|
195
|
+
]
|
|
196
|
+
msg_r = "|".join(msgs_r)
|
|
197
|
+
|
|
198
|
+
with warnings.catch_warnings():
|
|
199
|
+
warnings.filterwarnings(
|
|
200
|
+
'ignore', category=DeprecationWarning, message=msg
|
|
201
|
+
)
|
|
202
|
+
warnings.filterwarnings(
|
|
203
|
+
'ignore', category=RuntimeWarning, message=msg_r
|
|
204
|
+
)
|
|
205
|
+
yield
|
|
206
|
+
|
|
207
|
+
# find and check doctests under this context manager
|
|
208
|
+
dt_config.user_context_mgr = warnings_errors_and_rng
|
|
209
|
+
|
|
210
|
+
# numpy specific tweaks from refguide-check
|
|
211
|
+
dt_config.rndm_markers.add('#uninitialized')
|
|
212
|
+
dt_config.rndm_markers.add('# uninitialized')
|
|
213
|
+
|
|
214
|
+
# make the checker pick on mismatched dtypes
|
|
215
|
+
dt_config.strict_check = True
|
|
216
|
+
|
|
217
|
+
import doctest
|
|
218
|
+
dt_config.optionflags = doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS
|
|
219
|
+
|
|
220
|
+
# recognize the StringDType repr
|
|
221
|
+
dt_config.check_namespace['StringDType'] = numpy.dtypes.StringDType
|
|
222
|
+
|
|
223
|
+
# temporary skips
|
|
224
|
+
dt_config.skiplist = {
|
|
225
|
+
'numpy.savez', # unclosed file
|
|
226
|
+
'numpy.matlib.savez',
|
|
227
|
+
'numpy.__array_namespace_info__',
|
|
228
|
+
'numpy.matlib.__array_namespace_info__',
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
# xfail problematic tutorials
|
|
232
|
+
dt_config.pytest_extra_xfail = {
|
|
233
|
+
'how-to-verify-bug.rst': '',
|
|
234
|
+
'c-info.ufunc-tutorial.rst': '',
|
|
235
|
+
'basics.interoperability.rst': 'needs pandas',
|
|
236
|
+
'basics.dispatch.rst': 'errors out in /testing/overrides.py',
|
|
237
|
+
'basics.subclassing.rst': '.. testcode:: admonitions not understood',
|
|
238
|
+
'misc.rst': 'manipulates warnings',
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
# ignores are for things fail doctest collection (optionals etc)
|
|
242
|
+
dt_config.pytest_extra_ignore = [
|
|
243
|
+
'numpy/distutils',
|
|
244
|
+
'numpy/_core/cversions.py',
|
|
245
|
+
'numpy/_pyinstaller',
|
|
246
|
+
'numpy/random/_examples',
|
|
247
|
+
'numpy/f2py/_backends/_distutils.py',
|
|
248
|
+
]
|
numpy/core/__init__.py
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""
|
|
2
|
+
The `numpy.core` submodule exists solely for backward compatibility
|
|
3
|
+
purposes. The original `core` was renamed to `_core` and made private.
|
|
4
|
+
`numpy.core` will be removed in the future.
|
|
5
|
+
"""
|
|
6
|
+
from numpy import _core
|
|
7
|
+
|
|
8
|
+
from ._utils import _raise_warning
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# We used to use `np.core._ufunc_reconstruct` to unpickle.
|
|
12
|
+
# This is unnecessary, but old pickles saved before 1.20 will be using it,
|
|
13
|
+
# and there is no reason to break loading them.
|
|
14
|
+
def _ufunc_reconstruct(module, name):
|
|
15
|
+
# The `fromlist` kwarg is required to ensure that `mod` points to the
|
|
16
|
+
# inner-most module rather than the parent package when module name is
|
|
17
|
+
# nested. This makes it possible to pickle non-toplevel ufuncs such as
|
|
18
|
+
# scipy.special.expit for instance.
|
|
19
|
+
mod = __import__(module, fromlist=[name])
|
|
20
|
+
return getattr(mod, name)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# force lazy-loading of submodules to ensure a warning is printed
|
|
24
|
+
|
|
25
|
+
__all__ = ["arrayprint", "defchararray", "_dtype_ctypes", "_dtype", # noqa: F822
|
|
26
|
+
"einsumfunc", "fromnumeric", "function_base", "getlimits",
|
|
27
|
+
"_internal", "multiarray", "_multiarray_umath", "numeric",
|
|
28
|
+
"numerictypes", "overrides", "records", "shape_base", "umath"]
|
|
29
|
+
|
|
30
|
+
def __getattr__(attr_name):
|
|
31
|
+
attr = getattr(_core, attr_name)
|
|
32
|
+
_raise_warning(attr_name)
|
|
33
|
+
return attr
|
numpy/core/__init__.pyi
ADDED
|
File without changes
|
numpy/core/_dtype.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import _dtype
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(_dtype, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core._dtype' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "_dtype")
|
|
10
|
+
return ret
|
numpy/core/_dtype.pyi
ADDED
|
File without changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import _dtype_ctypes
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(_dtype_ctypes, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core._dtype_ctypes' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "_dtype_ctypes")
|
|
10
|
+
return ret
|
|
File without changes
|
numpy/core/_internal.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from numpy._core import _internal
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
# Build a new array from the information in a pickle.
|
|
5
|
+
# Note that the name numpy.core._internal._reconstruct is embedded in
|
|
6
|
+
# pickles of ndarrays made with NumPy before release 1.0
|
|
7
|
+
# so don't remove the name here, or you'll
|
|
8
|
+
# break backward compatibility.
|
|
9
|
+
def _reconstruct(subtype, shape, dtype):
|
|
10
|
+
from numpy import ndarray
|
|
11
|
+
return ndarray.__new__(subtype, shape, dtype)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# Pybind11 (in versions <= 2.11.1) imports _dtype_from_pep3118 from the
|
|
15
|
+
# _internal submodule, therefore it must be importable without a warning.
|
|
16
|
+
_dtype_from_pep3118 = _internal._dtype_from_pep3118
|
|
17
|
+
|
|
18
|
+
def __getattr__(attr_name):
|
|
19
|
+
from numpy._core import _internal
|
|
20
|
+
|
|
21
|
+
from ._utils import _raise_warning
|
|
22
|
+
ret = getattr(_internal, attr_name, None)
|
|
23
|
+
if ret is None:
|
|
24
|
+
raise AttributeError(
|
|
25
|
+
f"module 'numpy.core._internal' has no attribute {attr_name}")
|
|
26
|
+
_raise_warning(attr_name, "_internal")
|
|
27
|
+
return ret
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from numpy import ufunc
|
|
2
|
+
from numpy._core import _multiarray_umath
|
|
3
|
+
|
|
4
|
+
for item in _multiarray_umath.__dir__():
|
|
5
|
+
# ufuncs appear in pickles with a path in numpy.core._multiarray_umath
|
|
6
|
+
# and so must import from this namespace without warning or error
|
|
7
|
+
attr = getattr(_multiarray_umath, item)
|
|
8
|
+
if isinstance(attr, ufunc):
|
|
9
|
+
globals()[item] = attr
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def __getattr__(attr_name):
|
|
13
|
+
from numpy._core import _multiarray_umath
|
|
14
|
+
|
|
15
|
+
from ._utils import _raise_warning
|
|
16
|
+
|
|
17
|
+
if attr_name in {"_ARRAY_API", "_UFUNC_API"}:
|
|
18
|
+
import sys
|
|
19
|
+
import textwrap
|
|
20
|
+
import traceback
|
|
21
|
+
|
|
22
|
+
from numpy.version import short_version
|
|
23
|
+
|
|
24
|
+
msg = textwrap.dedent(f"""
|
|
25
|
+
A module that was compiled using NumPy 1.x cannot be run in
|
|
26
|
+
NumPy {short_version} as it may crash. To support both 1.x and 2.x
|
|
27
|
+
versions of NumPy, modules must be compiled with NumPy 2.0.
|
|
28
|
+
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.
|
|
29
|
+
|
|
30
|
+
If you are a user of the module, the easiest solution will be to
|
|
31
|
+
downgrade to 'numpy<2' or try to upgrade the affected module.
|
|
32
|
+
We expect that some modules will need time to support NumPy 2.
|
|
33
|
+
|
|
34
|
+
""")
|
|
35
|
+
tb_msg = "Traceback (most recent call last):"
|
|
36
|
+
for line in traceback.format_stack()[:-1]:
|
|
37
|
+
if "frozen importlib" in line:
|
|
38
|
+
continue
|
|
39
|
+
tb_msg += line
|
|
40
|
+
|
|
41
|
+
# Also print the message (with traceback). This is because old versions
|
|
42
|
+
# of NumPy unfortunately set up the import to replace (and hide) the
|
|
43
|
+
# error. The traceback shouldn't be needed, but e.g. pytest plugins
|
|
44
|
+
# seem to swallow it and we should be failing anyway...
|
|
45
|
+
sys.stderr.write(msg + tb_msg)
|
|
46
|
+
raise ImportError(msg)
|
|
47
|
+
|
|
48
|
+
ret = getattr(_multiarray_umath, attr_name, None)
|
|
49
|
+
if ret is None:
|
|
50
|
+
raise AttributeError(
|
|
51
|
+
"module 'numpy.core._multiarray_umath' has no attribute "
|
|
52
|
+
f"{attr_name}")
|
|
53
|
+
_raise_warning(attr_name, "_multiarray_umath")
|
|
54
|
+
return ret
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
del _multiarray_umath, ufunc
|
numpy/core/_utils.py
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import warnings
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def _raise_warning(attr: str, submodule: str | None = None) -> None:
|
|
5
|
+
new_module = "numpy._core"
|
|
6
|
+
old_module = "numpy.core"
|
|
7
|
+
if submodule is not None:
|
|
8
|
+
new_module = f"{new_module}.{submodule}"
|
|
9
|
+
old_module = f"{old_module}.{submodule}"
|
|
10
|
+
warnings.warn(
|
|
11
|
+
f"{old_module} is deprecated and has been renamed to {new_module}. "
|
|
12
|
+
"The numpy._core namespace contains private NumPy internals and its "
|
|
13
|
+
"use is discouraged, as NumPy internals can change without warning in "
|
|
14
|
+
"any release. In practice, most real-world usage of numpy.core is to "
|
|
15
|
+
"access functionality in the public NumPy API. If that is the case, "
|
|
16
|
+
"use the public NumPy API. If not, you are using NumPy internals. "
|
|
17
|
+
"If you would still like to access an internal attribute, "
|
|
18
|
+
f"use {new_module}.{attr}.",
|
|
19
|
+
DeprecationWarning,
|
|
20
|
+
stacklevel=3
|
|
21
|
+
)
|
numpy/core/arrayprint.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import arrayprint
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(arrayprint, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.arrayprint' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "arrayprint")
|
|
10
|
+
return ret
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import defchararray
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(defchararray, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.defchararray' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "defchararray")
|
|
10
|
+
return ret
|
numpy/core/einsumfunc.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import einsumfunc
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(einsumfunc, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.einsumfunc' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "einsumfunc")
|
|
10
|
+
return ret
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import fromnumeric
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(fromnumeric, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.fromnumeric' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "fromnumeric")
|
|
10
|
+
return ret
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import function_base
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(function_base, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.function_base' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "function_base")
|
|
10
|
+
return ret
|
numpy/core/getlimits.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import getlimits
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(getlimits, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.getlimits' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "getlimits")
|
|
10
|
+
return ret
|
numpy/core/multiarray.py
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from numpy._core import multiarray
|
|
2
|
+
|
|
3
|
+
# these must import without warning or error from numpy.core.multiarray to
|
|
4
|
+
# support old pickle files
|
|
5
|
+
for item in ["_reconstruct", "scalar"]:
|
|
6
|
+
globals()[item] = getattr(multiarray, item)
|
|
7
|
+
|
|
8
|
+
# Pybind11 (in versions <= 2.11.1) imports _ARRAY_API from the multiarray
|
|
9
|
+
# submodule as a part of NumPy initialization, therefore it must be importable
|
|
10
|
+
# without a warning.
|
|
11
|
+
_ARRAY_API = multiarray._ARRAY_API
|
|
12
|
+
|
|
13
|
+
def __getattr__(attr_name):
|
|
14
|
+
from numpy._core import multiarray
|
|
15
|
+
|
|
16
|
+
from ._utils import _raise_warning
|
|
17
|
+
ret = getattr(multiarray, attr_name, None)
|
|
18
|
+
if ret is None:
|
|
19
|
+
raise AttributeError(
|
|
20
|
+
f"module 'numpy.core.multiarray' has no attribute {attr_name}")
|
|
21
|
+
_raise_warning(attr_name, "multiarray")
|
|
22
|
+
return ret
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
del multiarray
|
numpy/core/numeric.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import numeric
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
|
|
6
|
+
sentinel = object()
|
|
7
|
+
ret = getattr(numeric, attr_name, sentinel)
|
|
8
|
+
if ret is sentinel:
|
|
9
|
+
raise AttributeError(
|
|
10
|
+
f"module 'numpy.core.numeric' has no attribute {attr_name}")
|
|
11
|
+
_raise_warning(attr_name, "numeric")
|
|
12
|
+
return ret
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import numerictypes
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(numerictypes, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.numerictypes' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "numerictypes")
|
|
10
|
+
return ret
|
numpy/core/overrides.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import overrides
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(overrides, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.overrides' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "overrides")
|
|
10
|
+
return ret
|
numpy/core/overrides.pyi
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# NOTE: At runtime, this submodule dynamically re-exports any `numpy._core.overrides`
|
|
2
|
+
# member, and issues a `DeprecationWarning` when accessed. But since there is no
|
|
3
|
+
# `__dir__` or `__all__` present, these annotations would be unverifiable. Because
|
|
4
|
+
# this module is also deprecated in favor of `numpy._core`, and therefore not part of
|
|
5
|
+
# the public API, we omit the "re-exports", which in practice would require literal
|
|
6
|
+
# duplication of the stubs in order for the `@deprecated` decorator to be understood
|
|
7
|
+
# by type-checkers.
|
numpy/core/records.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import records
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(records, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.records' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "records")
|
|
10
|
+
return ret
|
numpy/core/shape_base.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import shape_base
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(shape_base, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.shape_base' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "shape_base")
|
|
10
|
+
return ret
|
numpy/core/umath.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def __getattr__(attr_name):
|
|
2
|
+
from numpy._core import umath
|
|
3
|
+
|
|
4
|
+
from ._utils import _raise_warning
|
|
5
|
+
ret = getattr(umath, attr_name, None)
|
|
6
|
+
if ret is None:
|
|
7
|
+
raise AttributeError(
|
|
8
|
+
f"module 'numpy.core.umath' has no attribute {attr_name}")
|
|
9
|
+
_raise_warning(attr_name, "umath")
|
|
10
|
+
return ret
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import ctypes
|
|
2
|
+
from ctypes import c_int64 as _c_intp
|
|
3
|
+
|
|
4
|
+
from ._ctypeslib import (
|
|
5
|
+
__all__ as __all__,
|
|
6
|
+
__doc__ as __doc__,
|
|
7
|
+
_concrete_ndptr as _concrete_ndptr,
|
|
8
|
+
_ndptr as _ndptr,
|
|
9
|
+
as_array as as_array,
|
|
10
|
+
as_ctypes as as_ctypes,
|
|
11
|
+
as_ctypes_type as as_ctypes_type,
|
|
12
|
+
c_intp as c_intp,
|
|
13
|
+
load_library as load_library,
|
|
14
|
+
ndpointer as ndpointer,
|
|
15
|
+
)
|