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
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
# Added Fortran compiler support to config. Currently useful only for
|
|
2
|
+
# try_compile call. try_run works but is untested for most of Fortran
|
|
3
|
+
# compilers (they must define linker_exe first).
|
|
4
|
+
# Pearu Peterson
|
|
5
|
+
import os
|
|
6
|
+
import signal
|
|
7
|
+
import subprocess
|
|
8
|
+
import sys
|
|
9
|
+
import textwrap
|
|
10
|
+
import warnings
|
|
11
|
+
|
|
12
|
+
from distutils.command.config import config as old_config
|
|
13
|
+
from distutils.command.config import LANG_EXT
|
|
14
|
+
from distutils import log
|
|
15
|
+
from distutils.file_util import copy_file
|
|
16
|
+
from distutils.ccompiler import CompileError, LinkError
|
|
17
|
+
import distutils
|
|
18
|
+
from numpy.distutils.exec_command import filepath_from_subprocess_output
|
|
19
|
+
from numpy.distutils.mingw32ccompiler import generate_manifest
|
|
20
|
+
from numpy.distutils.command.autodist import (check_gcc_function_attribute,
|
|
21
|
+
check_gcc_function_attribute_with_intrinsics,
|
|
22
|
+
check_gcc_variable_attribute,
|
|
23
|
+
check_gcc_version_at_least,
|
|
24
|
+
check_inline,
|
|
25
|
+
check_restrict,
|
|
26
|
+
check_compiler_gcc)
|
|
27
|
+
|
|
28
|
+
LANG_EXT['f77'] = '.f'
|
|
29
|
+
LANG_EXT['f90'] = '.f90'
|
|
30
|
+
|
|
31
|
+
class config(old_config):
|
|
32
|
+
old_config.user_options += [
|
|
33
|
+
('fcompiler=', None, "specify the Fortran compiler type"),
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
def initialize_options(self):
|
|
37
|
+
self.fcompiler = None
|
|
38
|
+
old_config.initialize_options(self)
|
|
39
|
+
|
|
40
|
+
def _check_compiler (self):
|
|
41
|
+
old_config._check_compiler(self)
|
|
42
|
+
from numpy.distutils.fcompiler import FCompiler, new_fcompiler
|
|
43
|
+
|
|
44
|
+
if sys.platform == 'win32' and (self.compiler.compiler_type in
|
|
45
|
+
('msvc', 'intelw', 'intelemw')):
|
|
46
|
+
# XXX: hack to circumvent a python 2.6 bug with msvc9compiler:
|
|
47
|
+
# initialize call query_vcvarsall, which throws an OSError, and
|
|
48
|
+
# causes an error along the way without much information. We try to
|
|
49
|
+
# catch it here, hoping it is early enough, and print a helpful
|
|
50
|
+
# message instead of Error: None.
|
|
51
|
+
if not self.compiler.initialized:
|
|
52
|
+
try:
|
|
53
|
+
self.compiler.initialize()
|
|
54
|
+
except OSError as e:
|
|
55
|
+
msg = textwrap.dedent("""\
|
|
56
|
+
Could not initialize compiler instance: do you have Visual Studio
|
|
57
|
+
installed? If you are trying to build with MinGW, please use "python setup.py
|
|
58
|
+
build -c mingw32" instead. If you have Visual Studio installed, check it is
|
|
59
|
+
correctly installed, and the right version (VS 2015 as of this writing).
|
|
60
|
+
|
|
61
|
+
Original exception was: %s, and the Compiler class was %s
|
|
62
|
+
============================================================================""") \
|
|
63
|
+
% (e, self.compiler.__class__.__name__)
|
|
64
|
+
print(textwrap.dedent("""\
|
|
65
|
+
============================================================================"""))
|
|
66
|
+
raise distutils.errors.DistutilsPlatformError(msg) from e
|
|
67
|
+
|
|
68
|
+
# After MSVC is initialized, add an explicit /MANIFEST to linker
|
|
69
|
+
# flags. See issues gh-4245 and gh-4101 for details. Also
|
|
70
|
+
# relevant are issues 4431 and 16296 on the Python bug tracker.
|
|
71
|
+
from distutils import msvc9compiler
|
|
72
|
+
if msvc9compiler.get_build_version() >= 10:
|
|
73
|
+
for ldflags in [self.compiler.ldflags_shared,
|
|
74
|
+
self.compiler.ldflags_shared_debug]:
|
|
75
|
+
if '/MANIFEST' not in ldflags:
|
|
76
|
+
ldflags.append('/MANIFEST')
|
|
77
|
+
|
|
78
|
+
if not isinstance(self.fcompiler, FCompiler):
|
|
79
|
+
self.fcompiler = new_fcompiler(compiler=self.fcompiler,
|
|
80
|
+
dry_run=self.dry_run, force=1,
|
|
81
|
+
c_compiler=self.compiler)
|
|
82
|
+
if self.fcompiler is not None:
|
|
83
|
+
self.fcompiler.customize(self.distribution)
|
|
84
|
+
if self.fcompiler.get_version():
|
|
85
|
+
self.fcompiler.customize_cmd(self)
|
|
86
|
+
self.fcompiler.show_customization()
|
|
87
|
+
|
|
88
|
+
def _wrap_method(self, mth, lang, args):
|
|
89
|
+
from distutils.ccompiler import CompileError
|
|
90
|
+
from distutils.errors import DistutilsExecError
|
|
91
|
+
save_compiler = self.compiler
|
|
92
|
+
if lang in ['f77', 'f90']:
|
|
93
|
+
self.compiler = self.fcompiler
|
|
94
|
+
if self.compiler is None:
|
|
95
|
+
raise CompileError('%s compiler is not set' % (lang,))
|
|
96
|
+
try:
|
|
97
|
+
ret = mth(*((self,)+args))
|
|
98
|
+
except (DistutilsExecError, CompileError) as e:
|
|
99
|
+
self.compiler = save_compiler
|
|
100
|
+
raise CompileError from e
|
|
101
|
+
self.compiler = save_compiler
|
|
102
|
+
return ret
|
|
103
|
+
|
|
104
|
+
def _compile (self, body, headers, include_dirs, lang):
|
|
105
|
+
src, obj = self._wrap_method(old_config._compile, lang,
|
|
106
|
+
(body, headers, include_dirs, lang))
|
|
107
|
+
# _compile in unixcompiler.py sometimes creates .d dependency files.
|
|
108
|
+
# Clean them up.
|
|
109
|
+
self.temp_files.append(obj + '.d')
|
|
110
|
+
return src, obj
|
|
111
|
+
|
|
112
|
+
def _link (self, body,
|
|
113
|
+
headers, include_dirs,
|
|
114
|
+
libraries, library_dirs, lang):
|
|
115
|
+
if self.compiler.compiler_type=='msvc':
|
|
116
|
+
libraries = (libraries or [])[:]
|
|
117
|
+
library_dirs = (library_dirs or [])[:]
|
|
118
|
+
if lang in ['f77', 'f90']:
|
|
119
|
+
lang = 'c' # always use system linker when using MSVC compiler
|
|
120
|
+
if self.fcompiler:
|
|
121
|
+
for d in self.fcompiler.library_dirs or []:
|
|
122
|
+
# correct path when compiling in Cygwin but with
|
|
123
|
+
# normal Win Python
|
|
124
|
+
if d.startswith('/usr/lib'):
|
|
125
|
+
try:
|
|
126
|
+
d = subprocess.check_output(['cygpath',
|
|
127
|
+
'-w', d])
|
|
128
|
+
except (OSError, subprocess.CalledProcessError):
|
|
129
|
+
pass
|
|
130
|
+
else:
|
|
131
|
+
d = filepath_from_subprocess_output(d)
|
|
132
|
+
library_dirs.append(d)
|
|
133
|
+
for libname in self.fcompiler.libraries or []:
|
|
134
|
+
if libname not in libraries:
|
|
135
|
+
libraries.append(libname)
|
|
136
|
+
for libname in libraries:
|
|
137
|
+
if libname.startswith('msvc'): continue
|
|
138
|
+
fileexists = False
|
|
139
|
+
for libdir in library_dirs or []:
|
|
140
|
+
libfile = os.path.join(libdir, '%s.lib' % (libname))
|
|
141
|
+
if os.path.isfile(libfile):
|
|
142
|
+
fileexists = True
|
|
143
|
+
break
|
|
144
|
+
if fileexists: continue
|
|
145
|
+
# make g77-compiled static libs available to MSVC
|
|
146
|
+
fileexists = False
|
|
147
|
+
for libdir in library_dirs:
|
|
148
|
+
libfile = os.path.join(libdir, 'lib%s.a' % (libname))
|
|
149
|
+
if os.path.isfile(libfile):
|
|
150
|
+
# copy libname.a file to name.lib so that MSVC linker
|
|
151
|
+
# can find it
|
|
152
|
+
libfile2 = os.path.join(libdir, '%s.lib' % (libname))
|
|
153
|
+
copy_file(libfile, libfile2)
|
|
154
|
+
self.temp_files.append(libfile2)
|
|
155
|
+
fileexists = True
|
|
156
|
+
break
|
|
157
|
+
if fileexists: continue
|
|
158
|
+
log.warn('could not find library %r in directories %s' \
|
|
159
|
+
% (libname, library_dirs))
|
|
160
|
+
elif self.compiler.compiler_type == 'mingw32':
|
|
161
|
+
generate_manifest(self)
|
|
162
|
+
return self._wrap_method(old_config._link, lang,
|
|
163
|
+
(body, headers, include_dirs,
|
|
164
|
+
libraries, library_dirs, lang))
|
|
165
|
+
|
|
166
|
+
def check_header(self, header, include_dirs=None, library_dirs=None, lang='c'):
|
|
167
|
+
self._check_compiler()
|
|
168
|
+
return self.try_compile(
|
|
169
|
+
"/* we need a dummy line to make distutils happy */",
|
|
170
|
+
[header], include_dirs)
|
|
171
|
+
|
|
172
|
+
def check_decl(self, symbol,
|
|
173
|
+
headers=None, include_dirs=None):
|
|
174
|
+
self._check_compiler()
|
|
175
|
+
body = textwrap.dedent("""
|
|
176
|
+
int main(void)
|
|
177
|
+
{
|
|
178
|
+
#ifndef %s
|
|
179
|
+
(void) %s;
|
|
180
|
+
#endif
|
|
181
|
+
;
|
|
182
|
+
return 0;
|
|
183
|
+
}""") % (symbol, symbol)
|
|
184
|
+
|
|
185
|
+
return self.try_compile(body, headers, include_dirs)
|
|
186
|
+
|
|
187
|
+
def check_macro_true(self, symbol,
|
|
188
|
+
headers=None, include_dirs=None):
|
|
189
|
+
self._check_compiler()
|
|
190
|
+
body = textwrap.dedent("""
|
|
191
|
+
int main(void)
|
|
192
|
+
{
|
|
193
|
+
#if %s
|
|
194
|
+
#else
|
|
195
|
+
#error false or undefined macro
|
|
196
|
+
#endif
|
|
197
|
+
;
|
|
198
|
+
return 0;
|
|
199
|
+
}""") % (symbol,)
|
|
200
|
+
|
|
201
|
+
return self.try_compile(body, headers, include_dirs)
|
|
202
|
+
|
|
203
|
+
def check_type(self, type_name, headers=None, include_dirs=None,
|
|
204
|
+
library_dirs=None):
|
|
205
|
+
"""Check type availability. Return True if the type can be compiled,
|
|
206
|
+
False otherwise"""
|
|
207
|
+
self._check_compiler()
|
|
208
|
+
|
|
209
|
+
# First check the type can be compiled
|
|
210
|
+
body = textwrap.dedent(r"""
|
|
211
|
+
int main(void) {
|
|
212
|
+
if ((%(name)s *) 0)
|
|
213
|
+
return 0;
|
|
214
|
+
if (sizeof (%(name)s))
|
|
215
|
+
return 0;
|
|
216
|
+
}
|
|
217
|
+
""") % {'name': type_name}
|
|
218
|
+
|
|
219
|
+
st = False
|
|
220
|
+
try:
|
|
221
|
+
try:
|
|
222
|
+
self._compile(body % {'type': type_name},
|
|
223
|
+
headers, include_dirs, 'c')
|
|
224
|
+
st = True
|
|
225
|
+
except distutils.errors.CompileError:
|
|
226
|
+
st = False
|
|
227
|
+
finally:
|
|
228
|
+
self._clean()
|
|
229
|
+
|
|
230
|
+
return st
|
|
231
|
+
|
|
232
|
+
def check_type_size(self, type_name, headers=None, include_dirs=None, library_dirs=None, expected=None):
|
|
233
|
+
"""Check size of a given type."""
|
|
234
|
+
self._check_compiler()
|
|
235
|
+
|
|
236
|
+
# First check the type can be compiled
|
|
237
|
+
body = textwrap.dedent(r"""
|
|
238
|
+
typedef %(type)s npy_check_sizeof_type;
|
|
239
|
+
int main (void)
|
|
240
|
+
{
|
|
241
|
+
static int test_array [1 - 2 * !(((long) (sizeof (npy_check_sizeof_type))) >= 0)];
|
|
242
|
+
test_array [0] = 0
|
|
243
|
+
|
|
244
|
+
;
|
|
245
|
+
return 0;
|
|
246
|
+
}
|
|
247
|
+
""")
|
|
248
|
+
self._compile(body % {'type': type_name},
|
|
249
|
+
headers, include_dirs, 'c')
|
|
250
|
+
self._clean()
|
|
251
|
+
|
|
252
|
+
if expected:
|
|
253
|
+
body = textwrap.dedent(r"""
|
|
254
|
+
typedef %(type)s npy_check_sizeof_type;
|
|
255
|
+
int main (void)
|
|
256
|
+
{
|
|
257
|
+
static int test_array [1 - 2 * !(((long) (sizeof (npy_check_sizeof_type))) == %(size)s)];
|
|
258
|
+
test_array [0] = 0
|
|
259
|
+
|
|
260
|
+
;
|
|
261
|
+
return 0;
|
|
262
|
+
}
|
|
263
|
+
""")
|
|
264
|
+
for size in expected:
|
|
265
|
+
try:
|
|
266
|
+
self._compile(body % {'type': type_name, 'size': size},
|
|
267
|
+
headers, include_dirs, 'c')
|
|
268
|
+
self._clean()
|
|
269
|
+
return size
|
|
270
|
+
except CompileError:
|
|
271
|
+
pass
|
|
272
|
+
|
|
273
|
+
# this fails to *compile* if size > sizeof(type)
|
|
274
|
+
body = textwrap.dedent(r"""
|
|
275
|
+
typedef %(type)s npy_check_sizeof_type;
|
|
276
|
+
int main (void)
|
|
277
|
+
{
|
|
278
|
+
static int test_array [1 - 2 * !(((long) (sizeof (npy_check_sizeof_type))) <= %(size)s)];
|
|
279
|
+
test_array [0] = 0
|
|
280
|
+
|
|
281
|
+
;
|
|
282
|
+
return 0;
|
|
283
|
+
}
|
|
284
|
+
""")
|
|
285
|
+
|
|
286
|
+
# The principle is simple: we first find low and high bounds of size
|
|
287
|
+
# for the type, where low/high are looked up on a log scale. Then, we
|
|
288
|
+
# do a binary search to find the exact size between low and high
|
|
289
|
+
low = 0
|
|
290
|
+
mid = 0
|
|
291
|
+
while True:
|
|
292
|
+
try:
|
|
293
|
+
self._compile(body % {'type': type_name, 'size': mid},
|
|
294
|
+
headers, include_dirs, 'c')
|
|
295
|
+
self._clean()
|
|
296
|
+
break
|
|
297
|
+
except CompileError:
|
|
298
|
+
#log.info("failure to test for bound %d" % mid)
|
|
299
|
+
low = mid + 1
|
|
300
|
+
mid = 2 * mid + 1
|
|
301
|
+
|
|
302
|
+
high = mid
|
|
303
|
+
# Binary search:
|
|
304
|
+
while low != high:
|
|
305
|
+
mid = (high - low) // 2 + low
|
|
306
|
+
try:
|
|
307
|
+
self._compile(body % {'type': type_name, 'size': mid},
|
|
308
|
+
headers, include_dirs, 'c')
|
|
309
|
+
self._clean()
|
|
310
|
+
high = mid
|
|
311
|
+
except CompileError:
|
|
312
|
+
low = mid + 1
|
|
313
|
+
return low
|
|
314
|
+
|
|
315
|
+
def check_func(self, func,
|
|
316
|
+
headers=None, include_dirs=None,
|
|
317
|
+
libraries=None, library_dirs=None,
|
|
318
|
+
decl=False, call=False, call_args=None):
|
|
319
|
+
# clean up distutils's config a bit: add void to main(), and
|
|
320
|
+
# return a value.
|
|
321
|
+
self._check_compiler()
|
|
322
|
+
body = []
|
|
323
|
+
if decl:
|
|
324
|
+
if type(decl) == str:
|
|
325
|
+
body.append(decl)
|
|
326
|
+
else:
|
|
327
|
+
body.append("int %s (void);" % func)
|
|
328
|
+
# Handle MSVC intrinsics: force MS compiler to make a function call.
|
|
329
|
+
# Useful to test for some functions when built with optimization on, to
|
|
330
|
+
# avoid build error because the intrinsic and our 'fake' test
|
|
331
|
+
# declaration do not match.
|
|
332
|
+
body.append("#ifdef _MSC_VER")
|
|
333
|
+
body.append("#pragma function(%s)" % func)
|
|
334
|
+
body.append("#endif")
|
|
335
|
+
body.append("int main (void) {")
|
|
336
|
+
if call:
|
|
337
|
+
if call_args is None:
|
|
338
|
+
call_args = ''
|
|
339
|
+
body.append(" %s(%s);" % (func, call_args))
|
|
340
|
+
else:
|
|
341
|
+
body.append(" %s;" % func)
|
|
342
|
+
body.append(" return 0;")
|
|
343
|
+
body.append("}")
|
|
344
|
+
body = '\n'.join(body) + "\n"
|
|
345
|
+
|
|
346
|
+
return self.try_link(body, headers, include_dirs,
|
|
347
|
+
libraries, library_dirs)
|
|
348
|
+
|
|
349
|
+
def check_funcs_once(self, funcs,
|
|
350
|
+
headers=None, include_dirs=None,
|
|
351
|
+
libraries=None, library_dirs=None,
|
|
352
|
+
decl=False, call=False, call_args=None):
|
|
353
|
+
"""Check a list of functions at once.
|
|
354
|
+
|
|
355
|
+
This is useful to speed up things, since all the functions in the funcs
|
|
356
|
+
list will be put in one compilation unit.
|
|
357
|
+
|
|
358
|
+
Arguments
|
|
359
|
+
---------
|
|
360
|
+
funcs : seq
|
|
361
|
+
list of functions to test
|
|
362
|
+
include_dirs : seq
|
|
363
|
+
list of header paths
|
|
364
|
+
libraries : seq
|
|
365
|
+
list of libraries to link the code snippet to
|
|
366
|
+
library_dirs : seq
|
|
367
|
+
list of library paths
|
|
368
|
+
decl : dict
|
|
369
|
+
for every (key, value), the declaration in the value will be
|
|
370
|
+
used for function in key. If a function is not in the
|
|
371
|
+
dictionary, no declaration will be used.
|
|
372
|
+
call : dict
|
|
373
|
+
for every item (f, value), if the value is True, a call will be
|
|
374
|
+
done to the function f.
|
|
375
|
+
"""
|
|
376
|
+
self._check_compiler()
|
|
377
|
+
body = []
|
|
378
|
+
if decl:
|
|
379
|
+
for f, v in decl.items():
|
|
380
|
+
if v:
|
|
381
|
+
body.append("int %s (void);" % f)
|
|
382
|
+
|
|
383
|
+
# Handle MS intrinsics. See check_func for more info.
|
|
384
|
+
body.append("#ifdef _MSC_VER")
|
|
385
|
+
for func in funcs:
|
|
386
|
+
body.append("#pragma function(%s)" % func)
|
|
387
|
+
body.append("#endif")
|
|
388
|
+
|
|
389
|
+
body.append("int main (void) {")
|
|
390
|
+
if call:
|
|
391
|
+
for f in funcs:
|
|
392
|
+
if f in call and call[f]:
|
|
393
|
+
if not (call_args and f in call_args and call_args[f]):
|
|
394
|
+
args = ''
|
|
395
|
+
else:
|
|
396
|
+
args = call_args[f]
|
|
397
|
+
body.append(" %s(%s);" % (f, args))
|
|
398
|
+
else:
|
|
399
|
+
body.append(" %s;" % f)
|
|
400
|
+
else:
|
|
401
|
+
for f in funcs:
|
|
402
|
+
body.append(" %s;" % f)
|
|
403
|
+
body.append(" return 0;")
|
|
404
|
+
body.append("}")
|
|
405
|
+
body = '\n'.join(body) + "\n"
|
|
406
|
+
|
|
407
|
+
return self.try_link(body, headers, include_dirs,
|
|
408
|
+
libraries, library_dirs)
|
|
409
|
+
|
|
410
|
+
def check_inline(self):
|
|
411
|
+
"""Return the inline keyword recognized by the compiler, empty string
|
|
412
|
+
otherwise."""
|
|
413
|
+
return check_inline(self)
|
|
414
|
+
|
|
415
|
+
def check_restrict(self):
|
|
416
|
+
"""Return the restrict keyword recognized by the compiler, empty string
|
|
417
|
+
otherwise."""
|
|
418
|
+
return check_restrict(self)
|
|
419
|
+
|
|
420
|
+
def check_compiler_gcc(self):
|
|
421
|
+
"""Return True if the C compiler is gcc"""
|
|
422
|
+
return check_compiler_gcc(self)
|
|
423
|
+
|
|
424
|
+
def check_gcc_function_attribute(self, attribute, name):
|
|
425
|
+
return check_gcc_function_attribute(self, attribute, name)
|
|
426
|
+
|
|
427
|
+
def check_gcc_function_attribute_with_intrinsics(self, attribute, name,
|
|
428
|
+
code, include):
|
|
429
|
+
return check_gcc_function_attribute_with_intrinsics(self, attribute,
|
|
430
|
+
name, code, include)
|
|
431
|
+
|
|
432
|
+
def check_gcc_variable_attribute(self, attribute):
|
|
433
|
+
return check_gcc_variable_attribute(self, attribute)
|
|
434
|
+
|
|
435
|
+
def check_gcc_version_at_least(self, major, minor=0, patchlevel=0):
|
|
436
|
+
"""Return True if the GCC version is greater than or equal to the
|
|
437
|
+
specified version."""
|
|
438
|
+
return check_gcc_version_at_least(self, major, minor, patchlevel)
|
|
439
|
+
|
|
440
|
+
def get_output(self, body, headers=None, include_dirs=None,
|
|
441
|
+
libraries=None, library_dirs=None,
|
|
442
|
+
lang="c", use_tee=None):
|
|
443
|
+
"""Try to compile, link to an executable, and run a program
|
|
444
|
+
built from 'body' and 'headers'. Returns the exit status code
|
|
445
|
+
of the program and its output.
|
|
446
|
+
"""
|
|
447
|
+
# 2008-11-16, RemoveMe
|
|
448
|
+
warnings.warn("\n+++++++++++++++++++++++++++++++++++++++++++++++++\n"
|
|
449
|
+
"Usage of get_output is deprecated: please do not \n"
|
|
450
|
+
"use it anymore, and avoid configuration checks \n"
|
|
451
|
+
"involving running executable on the target machine.\n"
|
|
452
|
+
"+++++++++++++++++++++++++++++++++++++++++++++++++\n",
|
|
453
|
+
DeprecationWarning, stacklevel=2)
|
|
454
|
+
self._check_compiler()
|
|
455
|
+
exitcode, output = 255, ''
|
|
456
|
+
try:
|
|
457
|
+
grabber = GrabStdout()
|
|
458
|
+
try:
|
|
459
|
+
src, obj, exe = self._link(body, headers, include_dirs,
|
|
460
|
+
libraries, library_dirs, lang)
|
|
461
|
+
grabber.restore()
|
|
462
|
+
except Exception:
|
|
463
|
+
output = grabber.data
|
|
464
|
+
grabber.restore()
|
|
465
|
+
raise
|
|
466
|
+
exe = os.path.join('.', exe)
|
|
467
|
+
try:
|
|
468
|
+
# specify cwd arg for consistency with
|
|
469
|
+
# historic usage pattern of exec_command()
|
|
470
|
+
# also, note that exe appears to be a string,
|
|
471
|
+
# which exec_command() handled, but we now
|
|
472
|
+
# use a list for check_output() -- this assumes
|
|
473
|
+
# that exe is always a single command
|
|
474
|
+
output = subprocess.check_output([exe], cwd='.')
|
|
475
|
+
except subprocess.CalledProcessError as exc:
|
|
476
|
+
exitstatus = exc.returncode
|
|
477
|
+
output = ''
|
|
478
|
+
except OSError:
|
|
479
|
+
# preserve the EnvironmentError exit status
|
|
480
|
+
# used historically in exec_command()
|
|
481
|
+
exitstatus = 127
|
|
482
|
+
output = ''
|
|
483
|
+
else:
|
|
484
|
+
output = filepath_from_subprocess_output(output)
|
|
485
|
+
if hasattr(os, 'WEXITSTATUS'):
|
|
486
|
+
exitcode = os.WEXITSTATUS(exitstatus)
|
|
487
|
+
if os.WIFSIGNALED(exitstatus):
|
|
488
|
+
sig = os.WTERMSIG(exitstatus)
|
|
489
|
+
log.error('subprocess exited with signal %d' % (sig,))
|
|
490
|
+
if sig == signal.SIGINT:
|
|
491
|
+
# control-C
|
|
492
|
+
raise KeyboardInterrupt
|
|
493
|
+
else:
|
|
494
|
+
exitcode = exitstatus
|
|
495
|
+
log.info("success!")
|
|
496
|
+
except (CompileError, LinkError):
|
|
497
|
+
log.info("failure.")
|
|
498
|
+
self._clean()
|
|
499
|
+
return exitcode, output
|
|
500
|
+
|
|
501
|
+
class GrabStdout:
|
|
502
|
+
|
|
503
|
+
def __init__(self):
|
|
504
|
+
self.sys_stdout = sys.stdout
|
|
505
|
+
self.data = ''
|
|
506
|
+
sys.stdout = self
|
|
507
|
+
|
|
508
|
+
def write (self, data):
|
|
509
|
+
self.sys_stdout.write(data)
|
|
510
|
+
self.data += data
|
|
511
|
+
|
|
512
|
+
def flush (self):
|
|
513
|
+
self.sys_stdout.flush()
|
|
514
|
+
|
|
515
|
+
def restore(self):
|
|
516
|
+
sys.stdout = self.sys_stdout
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
from distutils.core import Command
|
|
2
|
+
from numpy.distutils import log
|
|
3
|
+
|
|
4
|
+
#XXX: Linker flags
|
|
5
|
+
|
|
6
|
+
def show_fortran_compilers(_cache=None):
|
|
7
|
+
# Using cache to prevent infinite recursion.
|
|
8
|
+
if _cache:
|
|
9
|
+
return
|
|
10
|
+
elif _cache is None:
|
|
11
|
+
_cache = []
|
|
12
|
+
_cache.append(1)
|
|
13
|
+
from numpy.distutils.fcompiler import show_fcompilers
|
|
14
|
+
import distutils.core
|
|
15
|
+
dist = distutils.core._setup_distribution
|
|
16
|
+
show_fcompilers(dist)
|
|
17
|
+
|
|
18
|
+
class config_fc(Command):
|
|
19
|
+
""" Distutils command to hold user specified options
|
|
20
|
+
to Fortran compilers.
|
|
21
|
+
|
|
22
|
+
config_fc command is used by the FCompiler.customize() method.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
description = "specify Fortran 77/Fortran 90 compiler information"
|
|
26
|
+
|
|
27
|
+
user_options = [
|
|
28
|
+
('fcompiler=', None, "specify Fortran compiler type"),
|
|
29
|
+
('f77exec=', None, "specify F77 compiler command"),
|
|
30
|
+
('f90exec=', None, "specify F90 compiler command"),
|
|
31
|
+
('f77flags=', None, "specify F77 compiler flags"),
|
|
32
|
+
('f90flags=', None, "specify F90 compiler flags"),
|
|
33
|
+
('opt=', None, "specify optimization flags"),
|
|
34
|
+
('arch=', None, "specify architecture specific optimization flags"),
|
|
35
|
+
('debug', 'g', "compile with debugging information"),
|
|
36
|
+
('noopt', None, "compile without optimization"),
|
|
37
|
+
('noarch', None, "compile without arch-dependent optimization"),
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
help_options = [
|
|
41
|
+
('help-fcompiler', None, "list available Fortran compilers",
|
|
42
|
+
show_fortran_compilers),
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
boolean_options = ['debug', 'noopt', 'noarch']
|
|
46
|
+
|
|
47
|
+
def initialize_options(self):
|
|
48
|
+
self.fcompiler = None
|
|
49
|
+
self.f77exec = None
|
|
50
|
+
self.f90exec = None
|
|
51
|
+
self.f77flags = None
|
|
52
|
+
self.f90flags = None
|
|
53
|
+
self.opt = None
|
|
54
|
+
self.arch = None
|
|
55
|
+
self.debug = None
|
|
56
|
+
self.noopt = None
|
|
57
|
+
self.noarch = None
|
|
58
|
+
|
|
59
|
+
def finalize_options(self):
|
|
60
|
+
log.info('unifying config_fc, config, build_clib, build_ext, build commands --fcompiler options')
|
|
61
|
+
build_clib = self.get_finalized_command('build_clib')
|
|
62
|
+
build_ext = self.get_finalized_command('build_ext')
|
|
63
|
+
config = self.get_finalized_command('config')
|
|
64
|
+
build = self.get_finalized_command('build')
|
|
65
|
+
cmd_list = [self, config, build_clib, build_ext, build]
|
|
66
|
+
for a in ['fcompiler']:
|
|
67
|
+
l = []
|
|
68
|
+
for c in cmd_list:
|
|
69
|
+
v = getattr(c, a)
|
|
70
|
+
if v is not None:
|
|
71
|
+
if not isinstance(v, str): v = v.compiler_type
|
|
72
|
+
if v not in l: l.append(v)
|
|
73
|
+
if not l: v1 = None
|
|
74
|
+
else: v1 = l[0]
|
|
75
|
+
if len(l)>1:
|
|
76
|
+
log.warn(' commands have different --%s options: %s'\
|
|
77
|
+
', using first in list as default' % (a, l))
|
|
78
|
+
if v1:
|
|
79
|
+
for c in cmd_list:
|
|
80
|
+
if getattr(c, a) is None: setattr(c, a, v1)
|
|
81
|
+
|
|
82
|
+
def run(self):
|
|
83
|
+
# Do nothing.
|
|
84
|
+
return
|
|
85
|
+
|
|
86
|
+
class config_cc(Command):
|
|
87
|
+
""" Distutils command to hold user specified options
|
|
88
|
+
to C/C++ compilers.
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
description = "specify C/C++ compiler information"
|
|
92
|
+
|
|
93
|
+
user_options = [
|
|
94
|
+
('compiler=', None, "specify C/C++ compiler type"),
|
|
95
|
+
]
|
|
96
|
+
|
|
97
|
+
def initialize_options(self):
|
|
98
|
+
self.compiler = None
|
|
99
|
+
|
|
100
|
+
def finalize_options(self):
|
|
101
|
+
log.info('unifying config_cc, config, build_clib, build_ext, build commands --compiler options')
|
|
102
|
+
build_clib = self.get_finalized_command('build_clib')
|
|
103
|
+
build_ext = self.get_finalized_command('build_ext')
|
|
104
|
+
config = self.get_finalized_command('config')
|
|
105
|
+
build = self.get_finalized_command('build')
|
|
106
|
+
cmd_list = [self, config, build_clib, build_ext, build]
|
|
107
|
+
for a in ['compiler']:
|
|
108
|
+
l = []
|
|
109
|
+
for c in cmd_list:
|
|
110
|
+
v = getattr(c, a)
|
|
111
|
+
if v is not None:
|
|
112
|
+
if not isinstance(v, str): v = v.compiler_type
|
|
113
|
+
if v not in l: l.append(v)
|
|
114
|
+
if not l: v1 = None
|
|
115
|
+
else: v1 = l[0]
|
|
116
|
+
if len(l)>1:
|
|
117
|
+
log.warn(' commands have different --%s options: %s'\
|
|
118
|
+
', using first in list as default' % (a, l))
|
|
119
|
+
if v1:
|
|
120
|
+
for c in cmd_list:
|
|
121
|
+
if getattr(c, a) is None: setattr(c, a, v1)
|
|
122
|
+
return
|
|
123
|
+
|
|
124
|
+
def run(self):
|
|
125
|
+
# Do nothing.
|
|
126
|
+
return
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
""" Override the develop command from setuptools so we can ensure that our
|
|
2
|
+
generated files (from build_src or build_scripts) are properly converted to real
|
|
3
|
+
files with filenames.
|
|
4
|
+
|
|
5
|
+
"""
|
|
6
|
+
from setuptools.command.develop import develop as old_develop
|
|
7
|
+
|
|
8
|
+
class develop(old_develop):
|
|
9
|
+
__doc__ = old_develop.__doc__
|
|
10
|
+
def install_for_development(self):
|
|
11
|
+
# Build sources in-place, too.
|
|
12
|
+
self.reinitialize_command('build_src', inplace=1)
|
|
13
|
+
# Make sure scripts are built.
|
|
14
|
+
self.run_command('build_scripts')
|
|
15
|
+
old_develop.install_for_development(self)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
|
|
3
|
+
from setuptools.command.egg_info import egg_info as _egg_info
|
|
4
|
+
|
|
5
|
+
class egg_info(_egg_info):
|
|
6
|
+
def run(self):
|
|
7
|
+
if 'sdist' in sys.argv:
|
|
8
|
+
import warnings
|
|
9
|
+
import textwrap
|
|
10
|
+
msg = textwrap.dedent("""
|
|
11
|
+
`build_src` is being run, this may lead to missing
|
|
12
|
+
files in your sdist! You want to use distutils.sdist
|
|
13
|
+
instead of the setuptools version:
|
|
14
|
+
|
|
15
|
+
from distutils.command.sdist import sdist
|
|
16
|
+
cmdclass={'sdist': sdist}"
|
|
17
|
+
|
|
18
|
+
See numpy's setup.py or gh-7131 for details.""")
|
|
19
|
+
warnings.warn(msg, UserWarning, stacklevel=2)
|
|
20
|
+
|
|
21
|
+
# We need to ensure that build_src has been executed in order to give
|
|
22
|
+
# setuptools' egg_info command real filenames instead of functions which
|
|
23
|
+
# generate files.
|
|
24
|
+
self.run_command("build_src")
|
|
25
|
+
_egg_info.run(self)
|