numpy 2.4.1__cp314-cp314t-win_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +955 -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.cp314t-win_arm64.lib +0 -0
- numpy/_core/_multiarray_tests.cp314t-win_arm64.pyd +0 -0
- numpy/_core/_multiarray_umath.cp314t-win_arm64.lib +0 -0
- numpy/_core/_multiarray_umath.cp314t-win_arm64.pyd +0 -0
- numpy/_core/_operand_flag_tests.cp314t-win_arm64.lib +0 -0
- numpy/_core/_operand_flag_tests.cp314t-win_arm64.pyd +0 -0
- numpy/_core/_rational_tests.cp314t-win_arm64.lib +0 -0
- numpy/_core/_rational_tests.cp314t-win_arm64.pyd +0 -0
- numpy/_core/_simd.cp314t-win_arm64.lib +0 -0
- numpy/_core/_simd.cp314t-win_arm64.pyd +0 -0
- numpy/_core/_simd.pyi +35 -0
- numpy/_core/_string_helpers.py +100 -0
- numpy/_core/_string_helpers.pyi +12 -0
- numpy/_core/_struct_ufunc_tests.cp314t-win_arm64.lib +0 -0
- numpy/_core/_struct_ufunc_tests.cp314t-win_arm64.pyd +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.cp314t-win_arm64.lib +0 -0
- numpy/_core/_umath_tests.cp314t-win_arm64.pyd +0 -0
- numpy/_core/_umath_tests.pyi +47 -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/npy-pkg-config/mlib.ini +12 -0
- numpy/_core/lib/npy-pkg-config/npymath.ini +20 -0
- numpy/_core/lib/npymath.lib +0 -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/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.cp314t-win_arm64.lib +0 -0
- numpy/fft/_pocketfft_umath.cp314t-win_arm64.pyd +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.cp314t-win_arm64.lib +0 -0
- numpy/linalg/_umath_linalg.cp314t-win_arm64.pyd +0 -0
- numpy/linalg/_umath_linalg.pyi +60 -0
- numpy/linalg/lapack_lite.cp314t-win_arm64.lib +0 -0
- numpy/linalg/lapack_lite.cp314t-win_arm64.pyd +0 -0
- numpy/linalg/lapack_lite.pyi +143 -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.cp314t-win_arm64.lib +0 -0
- numpy/random/_bounded_integers.cp314t-win_arm64.pyd +0 -0
- numpy/random/_bounded_integers.pxd +38 -0
- numpy/random/_bounded_integers.pyi +1 -0
- numpy/random/_common.cp314t-win_arm64.lib +0 -0
- numpy/random/_common.cp314t-win_arm64.pyd +0 -0
- numpy/random/_common.pxd +110 -0
- numpy/random/_common.pyi +16 -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.cp314t-win_arm64.lib +0 -0
- numpy/random/_generator.cp314t-win_arm64.pyd +0 -0
- numpy/random/_generator.pyi +862 -0
- numpy/random/_mt19937.cp314t-win_arm64.lib +0 -0
- numpy/random/_mt19937.cp314t-win_arm64.pyd +0 -0
- numpy/random/_mt19937.pyi +27 -0
- numpy/random/_pcg64.cp314t-win_arm64.lib +0 -0
- numpy/random/_pcg64.cp314t-win_arm64.pyd +0 -0
- numpy/random/_pcg64.pyi +41 -0
- numpy/random/_philox.cp314t-win_arm64.lib +0 -0
- numpy/random/_philox.cp314t-win_arm64.pyd +0 -0
- numpy/random/_philox.pyi +36 -0
- numpy/random/_pickle.py +88 -0
- numpy/random/_pickle.pyi +43 -0
- numpy/random/_sfc64.cp314t-win_arm64.lib +0 -0
- numpy/random/_sfc64.cp314t-win_arm64.pyd +0 -0
- numpy/random/_sfc64.pyi +25 -0
- numpy/random/bit_generator.cp314t-win_arm64.lib +0 -0
- numpy/random/bit_generator.cp314t-win_arm64.pyd +0 -0
- numpy/random/bit_generator.pxd +40 -0
- numpy/random/bit_generator.pyi +123 -0
- numpy/random/c_distributions.pxd +119 -0
- numpy/random/lib/npyrandom.lib +0 -0
- numpy/random/mtrand.cp314t-win_arm64.lib +0 -0
- numpy/random/mtrand.cp314t-win_arm64.pyd +0 -0
- numpy/random/mtrand.pyi +759 -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/DELVEWHEEL +2 -0
- numpy-2.4.1.dist-info/METADATA +139 -0
- numpy-2.4.1.dist-info/RECORD +932 -0
- numpy-2.4.1.dist-info/WHEEL +4 -0
- numpy-2.4.1.dist-info/entry_points.txt +13 -0
- numpy-2.4.1.dist-info/licenses/LICENSE.txt +914 -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.libs/msvcp140-5f1c5dd31916990d94181e07bc3afb32.dll +0 -0
- numpy.libs/scipy_openblas-7b69cbfd2599e6035f1310f2a72d59a6.dll +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from _typeshed import SupportsWrite
|
|
2
|
+
from typing import LiteralString
|
|
3
|
+
from typing_extensions import TypeVar
|
|
4
|
+
|
|
5
|
+
import numpy as np
|
|
6
|
+
|
|
7
|
+
__all__ = ["get_include", "info", "show_runtime"]
|
|
8
|
+
|
|
9
|
+
_ScalarOrArrayT = TypeVar("_ScalarOrArrayT", bound=np.generic | np.ndarray)
|
|
10
|
+
_DTypeT = TypeVar("_DTypeT", bound=np.dtype)
|
|
11
|
+
|
|
12
|
+
###
|
|
13
|
+
|
|
14
|
+
def get_include() -> LiteralString: ...
|
|
15
|
+
def show_runtime() -> None: ...
|
|
16
|
+
def info(
|
|
17
|
+
object: object = None, maxwidth: int = 76, output: SupportsWrite[str] | None = None, toplevel: str = "numpy"
|
|
18
|
+
) -> None: ...
|
|
19
|
+
def drop_metadata(dtype: _DTypeT, /) -> _DTypeT: ...
|
|
20
|
+
|
|
21
|
+
# used internally by `lib._function_base_impl._median`
|
|
22
|
+
def _median_nancheck(data: np.ndarray, result: _ScalarOrArrayT, axis: int) -> _ScalarOrArrayT: ...
|
numpy/lib/_version.py
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"""Utility to compare (NumPy) version strings.
|
|
2
|
+
|
|
3
|
+
The NumpyVersion class allows properly comparing numpy version strings.
|
|
4
|
+
The LooseVersion and StrictVersion classes that distutils provides don't
|
|
5
|
+
work; they don't recognize anything like alpha/beta/rc/dev versions.
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
import re
|
|
9
|
+
|
|
10
|
+
__all__ = ['NumpyVersion']
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class NumpyVersion:
|
|
14
|
+
"""Parse and compare numpy version strings.
|
|
15
|
+
|
|
16
|
+
NumPy has the following versioning scheme (numbers given are examples; they
|
|
17
|
+
can be > 9 in principle):
|
|
18
|
+
|
|
19
|
+
- Released version: '1.8.0', '1.8.1', etc.
|
|
20
|
+
- Alpha: '1.8.0a1', '1.8.0a2', etc.
|
|
21
|
+
- Beta: '1.8.0b1', '1.8.0b2', etc.
|
|
22
|
+
- Release candidates: '1.8.0rc1', '1.8.0rc2', etc.
|
|
23
|
+
- Development versions: '1.8.0.dev-f1234afa' (git commit hash appended)
|
|
24
|
+
- Development versions after a1: '1.8.0a1.dev-f1234afa',
|
|
25
|
+
'1.8.0b2.dev-f1234afa', '1.8.1rc1.dev-f1234afa', etc.
|
|
26
|
+
- Development versions (no git hash available): '1.8.0.dev-Unknown'
|
|
27
|
+
|
|
28
|
+
Comparing needs to be done against a valid version string or other
|
|
29
|
+
`NumpyVersion` instance. Note that all development versions of the same
|
|
30
|
+
(pre-)release compare equal.
|
|
31
|
+
|
|
32
|
+
Parameters
|
|
33
|
+
----------
|
|
34
|
+
vstring : str
|
|
35
|
+
NumPy version string (``np.__version__``).
|
|
36
|
+
|
|
37
|
+
Examples
|
|
38
|
+
--------
|
|
39
|
+
>>> from numpy.lib import NumpyVersion
|
|
40
|
+
>>> if NumpyVersion(np.__version__) < '1.7.0':
|
|
41
|
+
... print('skip')
|
|
42
|
+
>>> # skip
|
|
43
|
+
|
|
44
|
+
>>> NumpyVersion('1.7') # raises ValueError, add ".0"
|
|
45
|
+
Traceback (most recent call last):
|
|
46
|
+
...
|
|
47
|
+
ValueError: Not a valid numpy version string
|
|
48
|
+
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
__module__ = "numpy.lib"
|
|
52
|
+
|
|
53
|
+
def __init__(self, vstring):
|
|
54
|
+
self.vstring = vstring
|
|
55
|
+
ver_main = re.match(r'\d+\.\d+\.\d+', vstring)
|
|
56
|
+
if not ver_main:
|
|
57
|
+
raise ValueError("Not a valid numpy version string")
|
|
58
|
+
|
|
59
|
+
self.version = ver_main.group()
|
|
60
|
+
self.major, self.minor, self.bugfix = [int(x) for x in
|
|
61
|
+
self.version.split('.')]
|
|
62
|
+
if len(vstring) == ver_main.end():
|
|
63
|
+
self.pre_release = 'final'
|
|
64
|
+
else:
|
|
65
|
+
alpha = re.match(r'a\d', vstring[ver_main.end():])
|
|
66
|
+
beta = re.match(r'b\d', vstring[ver_main.end():])
|
|
67
|
+
rc = re.match(r'rc\d', vstring[ver_main.end():])
|
|
68
|
+
pre_rel = [m for m in [alpha, beta, rc] if m is not None]
|
|
69
|
+
if pre_rel:
|
|
70
|
+
self.pre_release = pre_rel[0].group()
|
|
71
|
+
else:
|
|
72
|
+
self.pre_release = ''
|
|
73
|
+
|
|
74
|
+
self.is_devversion = bool(re.search(r'.dev', vstring))
|
|
75
|
+
|
|
76
|
+
def _compare_version(self, other):
|
|
77
|
+
"""Compare major.minor.bugfix"""
|
|
78
|
+
if self.major == other.major:
|
|
79
|
+
if self.minor == other.minor:
|
|
80
|
+
if self.bugfix == other.bugfix:
|
|
81
|
+
vercmp = 0
|
|
82
|
+
elif self.bugfix > other.bugfix:
|
|
83
|
+
vercmp = 1
|
|
84
|
+
else:
|
|
85
|
+
vercmp = -1
|
|
86
|
+
elif self.minor > other.minor:
|
|
87
|
+
vercmp = 1
|
|
88
|
+
else:
|
|
89
|
+
vercmp = -1
|
|
90
|
+
elif self.major > other.major:
|
|
91
|
+
vercmp = 1
|
|
92
|
+
else:
|
|
93
|
+
vercmp = -1
|
|
94
|
+
|
|
95
|
+
return vercmp
|
|
96
|
+
|
|
97
|
+
def _compare_pre_release(self, other):
|
|
98
|
+
"""Compare alpha/beta/rc/final."""
|
|
99
|
+
if self.pre_release == other.pre_release:
|
|
100
|
+
vercmp = 0
|
|
101
|
+
elif self.pre_release == 'final':
|
|
102
|
+
vercmp = 1
|
|
103
|
+
elif other.pre_release == 'final':
|
|
104
|
+
vercmp = -1
|
|
105
|
+
elif self.pre_release > other.pre_release:
|
|
106
|
+
vercmp = 1
|
|
107
|
+
else:
|
|
108
|
+
vercmp = -1
|
|
109
|
+
|
|
110
|
+
return vercmp
|
|
111
|
+
|
|
112
|
+
def _compare(self, other):
|
|
113
|
+
if not isinstance(other, (str, NumpyVersion)):
|
|
114
|
+
raise ValueError("Invalid object to compare with NumpyVersion.")
|
|
115
|
+
|
|
116
|
+
if isinstance(other, str):
|
|
117
|
+
other = NumpyVersion(other)
|
|
118
|
+
|
|
119
|
+
vercmp = self._compare_version(other)
|
|
120
|
+
if vercmp == 0:
|
|
121
|
+
# Same x.y.z version, check for alpha/beta/rc
|
|
122
|
+
vercmp = self._compare_pre_release(other)
|
|
123
|
+
if vercmp == 0:
|
|
124
|
+
# Same version and same pre-release, check if dev version
|
|
125
|
+
if self.is_devversion is other.is_devversion:
|
|
126
|
+
vercmp = 0
|
|
127
|
+
elif self.is_devversion:
|
|
128
|
+
vercmp = -1
|
|
129
|
+
else:
|
|
130
|
+
vercmp = 1
|
|
131
|
+
|
|
132
|
+
return vercmp
|
|
133
|
+
|
|
134
|
+
def __lt__(self, other):
|
|
135
|
+
return self._compare(other) < 0
|
|
136
|
+
|
|
137
|
+
def __le__(self, other):
|
|
138
|
+
return self._compare(other) <= 0
|
|
139
|
+
|
|
140
|
+
def __eq__(self, other):
|
|
141
|
+
return self._compare(other) == 0
|
|
142
|
+
|
|
143
|
+
def __ne__(self, other):
|
|
144
|
+
return self._compare(other) != 0
|
|
145
|
+
|
|
146
|
+
def __gt__(self, other):
|
|
147
|
+
return self._compare(other) > 0
|
|
148
|
+
|
|
149
|
+
def __ge__(self, other):
|
|
150
|
+
return self._compare(other) >= 0
|
|
151
|
+
|
|
152
|
+
def __repr__(self):
|
|
153
|
+
return f"NumpyVersion({self.vstring})"
|
numpy/lib/_version.pyi
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
__all__ = ["NumpyVersion"]
|
|
2
|
+
|
|
3
|
+
class NumpyVersion:
|
|
4
|
+
vstring: str
|
|
5
|
+
version: str
|
|
6
|
+
major: int
|
|
7
|
+
minor: int
|
|
8
|
+
bugfix: int
|
|
9
|
+
pre_release: str
|
|
10
|
+
is_devversion: bool
|
|
11
|
+
def __init__(self, vstring: str) -> None: ...
|
|
12
|
+
def __lt__(self, other: str | NumpyVersion) -> bool: ...
|
|
13
|
+
def __le__(self, other: str | NumpyVersion) -> bool: ...
|
|
14
|
+
def __eq__(self, other: str | NumpyVersion) -> bool: ... # type: ignore[override]
|
|
15
|
+
def __ne__(self, other: str | NumpyVersion) -> bool: ... # type: ignore[override]
|
|
16
|
+
def __gt__(self, other: str | NumpyVersion) -> bool: ...
|
|
17
|
+
def __ge__(self, other: str | NumpyVersion) -> bool: ...
|
numpy/lib/array_utils.py
ADDED
numpy/lib/format.py
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from ._format_impl import ( # noqa: F401
|
|
2
|
+
ARRAY_ALIGN,
|
|
3
|
+
BUFFER_SIZE,
|
|
4
|
+
EXPECTED_KEYS,
|
|
5
|
+
GROWTH_AXIS_MAX_DIGITS,
|
|
6
|
+
MAGIC_LEN,
|
|
7
|
+
MAGIC_PREFIX,
|
|
8
|
+
__all__,
|
|
9
|
+
__doc__,
|
|
10
|
+
descr_to_dtype,
|
|
11
|
+
drop_metadata,
|
|
12
|
+
dtype_to_descr,
|
|
13
|
+
header_data_from_array_1_0,
|
|
14
|
+
isfileobj,
|
|
15
|
+
magic,
|
|
16
|
+
open_memmap,
|
|
17
|
+
read_array,
|
|
18
|
+
read_array_header_1_0,
|
|
19
|
+
read_array_header_2_0,
|
|
20
|
+
read_magic,
|
|
21
|
+
write_array,
|
|
22
|
+
write_array_header_1_0,
|
|
23
|
+
write_array_header_2_0,
|
|
24
|
+
)
|
numpy/lib/format.pyi
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from ._format_impl import (
|
|
2
|
+
ARRAY_ALIGN as ARRAY_ALIGN,
|
|
3
|
+
BUFFER_SIZE as BUFFER_SIZE,
|
|
4
|
+
EXPECTED_KEYS as EXPECTED_KEYS,
|
|
5
|
+
GROWTH_AXIS_MAX_DIGITS as GROWTH_AXIS_MAX_DIGITS,
|
|
6
|
+
MAGIC_LEN as MAGIC_LEN,
|
|
7
|
+
MAGIC_PREFIX as MAGIC_PREFIX,
|
|
8
|
+
__all__ as __all__,
|
|
9
|
+
__doc__ as __doc__,
|
|
10
|
+
descr_to_dtype as descr_to_dtype,
|
|
11
|
+
drop_metadata as drop_metadata,
|
|
12
|
+
dtype_to_descr as dtype_to_descr,
|
|
13
|
+
header_data_from_array_1_0 as header_data_from_array_1_0,
|
|
14
|
+
isfileobj as isfileobj,
|
|
15
|
+
magic as magic,
|
|
16
|
+
open_memmap as open_memmap,
|
|
17
|
+
read_array as read_array,
|
|
18
|
+
read_array_header_1_0 as read_array_header_1_0,
|
|
19
|
+
read_array_header_2_0 as read_array_header_2_0,
|
|
20
|
+
read_magic as read_magic,
|
|
21
|
+
write_array as write_array,
|
|
22
|
+
write_array_header_1_0 as write_array_header_1_0,
|
|
23
|
+
write_array_header_2_0 as write_array_header_2_0,
|
|
24
|
+
)
|
numpy/lib/introspect.py
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Introspection helper functions.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
__all__ = ['opt_func_info']
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def opt_func_info(func_name=None, signature=None):
|
|
9
|
+
"""
|
|
10
|
+
Returns a dictionary containing the currently supported CPU dispatched
|
|
11
|
+
features for all optimized functions.
|
|
12
|
+
|
|
13
|
+
Parameters
|
|
14
|
+
----------
|
|
15
|
+
func_name : str (optional)
|
|
16
|
+
Regular expression to filter by function name.
|
|
17
|
+
|
|
18
|
+
signature : str (optional)
|
|
19
|
+
Regular expression to filter by data type.
|
|
20
|
+
|
|
21
|
+
Returns
|
|
22
|
+
-------
|
|
23
|
+
dict
|
|
24
|
+
A dictionary where keys are optimized function names and values are
|
|
25
|
+
nested dictionaries indicating supported targets based on data types.
|
|
26
|
+
|
|
27
|
+
Examples
|
|
28
|
+
--------
|
|
29
|
+
Retrieve dispatch information for functions named 'add' or 'sub' and
|
|
30
|
+
data types 'float64' or 'float32':
|
|
31
|
+
|
|
32
|
+
>>> import numpy as np
|
|
33
|
+
>>> dict = np.lib.introspect.opt_func_info(
|
|
34
|
+
... func_name="add|abs", signature="float64|complex64"
|
|
35
|
+
... )
|
|
36
|
+
>>> import json
|
|
37
|
+
>>> print(json.dumps(dict, indent=2)) # may vary (architecture)
|
|
38
|
+
{
|
|
39
|
+
"absolute": {
|
|
40
|
+
"dd": {
|
|
41
|
+
"current": "SSE41",
|
|
42
|
+
"available": "SSE41 baseline(SSE SSE2 SSE3)"
|
|
43
|
+
},
|
|
44
|
+
"Ff": {
|
|
45
|
+
"current": "FMA3__AVX2",
|
|
46
|
+
"available": "AVX512F FMA3__AVX2 baseline(SSE SSE2 SSE3)"
|
|
47
|
+
},
|
|
48
|
+
"Dd": {
|
|
49
|
+
"current": "FMA3__AVX2",
|
|
50
|
+
"available": "AVX512F FMA3__AVX2 baseline(SSE SSE2 SSE3)"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"add": {
|
|
54
|
+
"ddd": {
|
|
55
|
+
"current": "FMA3__AVX2",
|
|
56
|
+
"available": "FMA3__AVX2 baseline(SSE SSE2 SSE3)"
|
|
57
|
+
},
|
|
58
|
+
"FFF": {
|
|
59
|
+
"current": "FMA3__AVX2",
|
|
60
|
+
"available": "FMA3__AVX2 baseline(SSE SSE2 SSE3)"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
"""
|
|
66
|
+
import re
|
|
67
|
+
|
|
68
|
+
from numpy._core._multiarray_umath import __cpu_targets_info__ as targets, dtype
|
|
69
|
+
|
|
70
|
+
if func_name is not None:
|
|
71
|
+
func_pattern = re.compile(func_name)
|
|
72
|
+
matching_funcs = {
|
|
73
|
+
k: v for k, v in targets.items()
|
|
74
|
+
if func_pattern.search(k)
|
|
75
|
+
}
|
|
76
|
+
else:
|
|
77
|
+
matching_funcs = targets
|
|
78
|
+
|
|
79
|
+
if signature is not None:
|
|
80
|
+
sig_pattern = re.compile(signature)
|
|
81
|
+
matching_sigs = {}
|
|
82
|
+
for k, v in matching_funcs.items():
|
|
83
|
+
matching_chars = {}
|
|
84
|
+
for chars, targets in v.items():
|
|
85
|
+
if any(
|
|
86
|
+
sig_pattern.search(c) or sig_pattern.search(dtype(c).name)
|
|
87
|
+
for c in chars
|
|
88
|
+
):
|
|
89
|
+
matching_chars[chars] = targets # noqa: PERF403
|
|
90
|
+
if matching_chars:
|
|
91
|
+
matching_sigs[k] = matching_chars
|
|
92
|
+
else:
|
|
93
|
+
matching_sigs = matching_funcs
|
|
94
|
+
return matching_sigs
|
numpy/lib/introspect.pyi
ADDED
numpy/lib/mixins.py
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Mixin classes for custom array types that don't inherit from ndarray.
|
|
3
|
+
"""
|
|
4
|
+
from numpy._core import umath as um
|
|
5
|
+
|
|
6
|
+
__all__ = ['NDArrayOperatorsMixin']
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def _disables_array_ufunc(obj):
|
|
10
|
+
"""True when __array_ufunc__ is set to None."""
|
|
11
|
+
try:
|
|
12
|
+
return obj.__array_ufunc__ is None
|
|
13
|
+
except AttributeError:
|
|
14
|
+
return False
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _binary_method(ufunc, name):
|
|
18
|
+
"""Implement a forward binary method with a ufunc, e.g., __add__."""
|
|
19
|
+
def func(self, other):
|
|
20
|
+
if _disables_array_ufunc(other):
|
|
21
|
+
return NotImplemented
|
|
22
|
+
return ufunc(self, other)
|
|
23
|
+
func.__name__ = f'__{name}__'
|
|
24
|
+
return func
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def _reflected_binary_method(ufunc, name):
|
|
28
|
+
"""Implement a reflected binary method with a ufunc, e.g., __radd__."""
|
|
29
|
+
def func(self, other):
|
|
30
|
+
if _disables_array_ufunc(other):
|
|
31
|
+
return NotImplemented
|
|
32
|
+
return ufunc(other, self)
|
|
33
|
+
func.__name__ = f'__r{name}__'
|
|
34
|
+
return func
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _inplace_binary_method(ufunc, name):
|
|
38
|
+
"""Implement an in-place binary method with a ufunc, e.g., __iadd__."""
|
|
39
|
+
def func(self, other):
|
|
40
|
+
return ufunc(self, other, out=(self,))
|
|
41
|
+
func.__name__ = f'__i{name}__'
|
|
42
|
+
return func
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def _numeric_methods(ufunc, name):
|
|
46
|
+
"""Implement forward, reflected and inplace binary methods with a ufunc."""
|
|
47
|
+
return (_binary_method(ufunc, name),
|
|
48
|
+
_reflected_binary_method(ufunc, name),
|
|
49
|
+
_inplace_binary_method(ufunc, name))
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def _unary_method(ufunc, name):
|
|
53
|
+
"""Implement a unary special method with a ufunc."""
|
|
54
|
+
def func(self):
|
|
55
|
+
return ufunc(self)
|
|
56
|
+
func.__name__ = f'__{name}__'
|
|
57
|
+
return func
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class NDArrayOperatorsMixin:
|
|
61
|
+
"""Mixin defining all operator special methods using __array_ufunc__.
|
|
62
|
+
|
|
63
|
+
This class implements the special methods for almost all of Python's
|
|
64
|
+
builtin operators defined in the `operator` module, including comparisons
|
|
65
|
+
(``==``, ``>``, etc.) and arithmetic (``+``, ``*``, ``-``, etc.), by
|
|
66
|
+
deferring to the ``__array_ufunc__`` method, which subclasses must
|
|
67
|
+
implement.
|
|
68
|
+
|
|
69
|
+
It is useful for writing classes that do not inherit from `numpy.ndarray`,
|
|
70
|
+
but that should support arithmetic and numpy universal functions like
|
|
71
|
+
arrays as described in :external+neps:doc:`nep-0013-ufunc-overrides`.
|
|
72
|
+
|
|
73
|
+
As a trivial example, consider this implementation of an ``ArrayLike``
|
|
74
|
+
class that simply wraps a NumPy array and ensures that the result of any
|
|
75
|
+
arithmetic operation is also an ``ArrayLike`` object:
|
|
76
|
+
|
|
77
|
+
>>> import numbers
|
|
78
|
+
>>> class ArrayLike(np.lib.mixins.NDArrayOperatorsMixin):
|
|
79
|
+
... def __init__(self, value):
|
|
80
|
+
... self.value = np.asarray(value)
|
|
81
|
+
...
|
|
82
|
+
... # One might also consider adding the built-in list type to this
|
|
83
|
+
... # list, to support operations like np.add(array_like, list)
|
|
84
|
+
... _HANDLED_TYPES = (np.ndarray, numbers.Number)
|
|
85
|
+
...
|
|
86
|
+
... def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
|
|
87
|
+
... out = kwargs.get('out', ())
|
|
88
|
+
... for x in inputs + out:
|
|
89
|
+
... # Only support operations with instances of
|
|
90
|
+
... # _HANDLED_TYPES. Use ArrayLike instead of type(self)
|
|
91
|
+
... # for isinstance to allow subclasses that don't
|
|
92
|
+
... # override __array_ufunc__ to handle ArrayLike objects.
|
|
93
|
+
... if not isinstance(
|
|
94
|
+
... x, self._HANDLED_TYPES + (ArrayLike,)
|
|
95
|
+
... ):
|
|
96
|
+
... return NotImplemented
|
|
97
|
+
...
|
|
98
|
+
... # Defer to the implementation of the ufunc
|
|
99
|
+
... # on unwrapped values.
|
|
100
|
+
... inputs = tuple(x.value if isinstance(x, ArrayLike) else x
|
|
101
|
+
... for x in inputs)
|
|
102
|
+
... if out:
|
|
103
|
+
... kwargs['out'] = tuple(
|
|
104
|
+
... x.value if isinstance(x, ArrayLike) else x
|
|
105
|
+
... for x in out)
|
|
106
|
+
... result = getattr(ufunc, method)(*inputs, **kwargs)
|
|
107
|
+
...
|
|
108
|
+
... if type(result) is tuple:
|
|
109
|
+
... # multiple return values
|
|
110
|
+
... return tuple(type(self)(x) for x in result)
|
|
111
|
+
... elif method == 'at':
|
|
112
|
+
... # no return value
|
|
113
|
+
... return None
|
|
114
|
+
... else:
|
|
115
|
+
... # one return value
|
|
116
|
+
... return type(self)(result)
|
|
117
|
+
...
|
|
118
|
+
... def __repr__(self):
|
|
119
|
+
... return '%s(%r)' % (type(self).__name__, self.value)
|
|
120
|
+
|
|
121
|
+
In interactions between ``ArrayLike`` objects and numbers or numpy arrays,
|
|
122
|
+
the result is always another ``ArrayLike``:
|
|
123
|
+
|
|
124
|
+
>>> x = ArrayLike([1, 2, 3])
|
|
125
|
+
>>> x - 1
|
|
126
|
+
ArrayLike(array([0, 1, 2]))
|
|
127
|
+
>>> 1 - x
|
|
128
|
+
ArrayLike(array([ 0, -1, -2]))
|
|
129
|
+
>>> np.arange(3) - x
|
|
130
|
+
ArrayLike(array([-1, -1, -1]))
|
|
131
|
+
>>> x - np.arange(3)
|
|
132
|
+
ArrayLike(array([1, 1, 1]))
|
|
133
|
+
|
|
134
|
+
Note that unlike ``numpy.ndarray``, ``ArrayLike`` does not allow operations
|
|
135
|
+
with arbitrary, unrecognized types. This ensures that interactions with
|
|
136
|
+
ArrayLike preserve a well-defined casting hierarchy.
|
|
137
|
+
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
__slots__ = ()
|
|
141
|
+
# Like np.ndarray, this mixin class implements "Option 1" from the ufunc
|
|
142
|
+
# overrides NEP.
|
|
143
|
+
|
|
144
|
+
# comparisons don't have reflected and in-place versions
|
|
145
|
+
__lt__ = _binary_method(um.less, 'lt')
|
|
146
|
+
__le__ = _binary_method(um.less_equal, 'le')
|
|
147
|
+
__eq__ = _binary_method(um.equal, 'eq')
|
|
148
|
+
__ne__ = _binary_method(um.not_equal, 'ne')
|
|
149
|
+
__gt__ = _binary_method(um.greater, 'gt')
|
|
150
|
+
__ge__ = _binary_method(um.greater_equal, 'ge')
|
|
151
|
+
|
|
152
|
+
# numeric methods
|
|
153
|
+
__add__, __radd__, __iadd__ = _numeric_methods(um.add, 'add')
|
|
154
|
+
__sub__, __rsub__, __isub__ = _numeric_methods(um.subtract, 'sub')
|
|
155
|
+
__mul__, __rmul__, __imul__ = _numeric_methods(um.multiply, 'mul')
|
|
156
|
+
__matmul__, __rmatmul__, __imatmul__ = _numeric_methods(
|
|
157
|
+
um.matmul, 'matmul')
|
|
158
|
+
__truediv__, __rtruediv__, __itruediv__ = _numeric_methods(
|
|
159
|
+
um.true_divide, 'truediv')
|
|
160
|
+
__floordiv__, __rfloordiv__, __ifloordiv__ = _numeric_methods(
|
|
161
|
+
um.floor_divide, 'floordiv')
|
|
162
|
+
__mod__, __rmod__, __imod__ = _numeric_methods(um.remainder, 'mod')
|
|
163
|
+
__divmod__ = _binary_method(um.divmod, 'divmod')
|
|
164
|
+
__rdivmod__ = _reflected_binary_method(um.divmod, 'divmod')
|
|
165
|
+
# __idivmod__ does not exist
|
|
166
|
+
# TODO: handle the optional third argument for __pow__?
|
|
167
|
+
__pow__, __rpow__, __ipow__ = _numeric_methods(um.power, 'pow')
|
|
168
|
+
__lshift__, __rlshift__, __ilshift__ = _numeric_methods(
|
|
169
|
+
um.left_shift, 'lshift')
|
|
170
|
+
__rshift__, __rrshift__, __irshift__ = _numeric_methods(
|
|
171
|
+
um.right_shift, 'rshift')
|
|
172
|
+
__and__, __rand__, __iand__ = _numeric_methods(um.bitwise_and, 'and')
|
|
173
|
+
__xor__, __rxor__, __ixor__ = _numeric_methods(um.bitwise_xor, 'xor')
|
|
174
|
+
__or__, __ror__, __ior__ = _numeric_methods(um.bitwise_or, 'or')
|
|
175
|
+
|
|
176
|
+
# unary methods
|
|
177
|
+
__neg__ = _unary_method(um.negative, 'neg')
|
|
178
|
+
__pos__ = _unary_method(um.positive, 'pos')
|
|
179
|
+
__abs__ = _unary_method(um.absolute, 'abs')
|
|
180
|
+
__invert__ = _unary_method(um.invert, 'invert')
|
numpy/lib/mixins.pyi
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import Any, Literal as L, type_check_only
|
|
3
|
+
|
|
4
|
+
from numpy import ufunc
|
|
5
|
+
|
|
6
|
+
__all__ = ["NDArrayOperatorsMixin"]
|
|
7
|
+
|
|
8
|
+
# NOTE: `NDArrayOperatorsMixin` is not formally an abstract baseclass,
|
|
9
|
+
# even though it's reliant on subclasses implementing `__array_ufunc__`
|
|
10
|
+
|
|
11
|
+
# NOTE: The accepted input- and output-types of the various dunders are
|
|
12
|
+
# completely dependent on how `__array_ufunc__` is implemented.
|
|
13
|
+
# As such, only little type safety can be provided here.
|
|
14
|
+
|
|
15
|
+
class NDArrayOperatorsMixin(ABC):
|
|
16
|
+
__slots__ = ()
|
|
17
|
+
|
|
18
|
+
@type_check_only
|
|
19
|
+
@abstractmethod
|
|
20
|
+
def __array_ufunc__(
|
|
21
|
+
self,
|
|
22
|
+
ufunc: ufunc,
|
|
23
|
+
method: L["__call__", "reduce", "reduceat", "accumulate", "outer", "at"],
|
|
24
|
+
/,
|
|
25
|
+
*inputs: Any,
|
|
26
|
+
**kwargs: Any,
|
|
27
|
+
) -> Any: ...
|
|
28
|
+
def __lt__(self, other: Any) -> Any: ...
|
|
29
|
+
def __le__(self, other: Any) -> Any: ...
|
|
30
|
+
def __eq__(self, other: Any) -> Any: ...
|
|
31
|
+
def __ne__(self, other: Any) -> Any: ...
|
|
32
|
+
def __gt__(self, other: Any) -> Any: ...
|
|
33
|
+
def __ge__(self, other: Any) -> Any: ...
|
|
34
|
+
def __add__(self, other: Any) -> Any: ...
|
|
35
|
+
def __radd__(self, other: Any) -> Any: ...
|
|
36
|
+
def __iadd__(self, other: Any) -> Any: ...
|
|
37
|
+
def __sub__(self, other: Any) -> Any: ...
|
|
38
|
+
def __rsub__(self, other: Any) -> Any: ...
|
|
39
|
+
def __isub__(self, other: Any) -> Any: ...
|
|
40
|
+
def __mul__(self, other: Any) -> Any: ...
|
|
41
|
+
def __rmul__(self, other: Any) -> Any: ...
|
|
42
|
+
def __imul__(self, other: Any) -> Any: ...
|
|
43
|
+
def __matmul__(self, other: Any) -> Any: ...
|
|
44
|
+
def __rmatmul__(self, other: Any) -> Any: ...
|
|
45
|
+
def __imatmul__(self, other: Any) -> Any: ...
|
|
46
|
+
def __truediv__(self, other: Any) -> Any: ...
|
|
47
|
+
def __rtruediv__(self, other: Any) -> Any: ...
|
|
48
|
+
def __itruediv__(self, other: Any) -> Any: ...
|
|
49
|
+
def __floordiv__(self, other: Any) -> Any: ...
|
|
50
|
+
def __rfloordiv__(self, other: Any) -> Any: ...
|
|
51
|
+
def __ifloordiv__(self, other: Any) -> Any: ...
|
|
52
|
+
def __mod__(self, other: Any) -> Any: ...
|
|
53
|
+
def __rmod__(self, other: Any) -> Any: ...
|
|
54
|
+
def __imod__(self, other: Any) -> Any: ...
|
|
55
|
+
def __divmod__(self, other: Any) -> Any: ...
|
|
56
|
+
def __rdivmod__(self, other: Any) -> Any: ...
|
|
57
|
+
def __pow__(self, other: Any) -> Any: ...
|
|
58
|
+
def __rpow__(self, other: Any) -> Any: ...
|
|
59
|
+
def __ipow__(self, other: Any) -> Any: ...
|
|
60
|
+
def __lshift__(self, other: Any) -> Any: ...
|
|
61
|
+
def __rlshift__(self, other: Any) -> Any: ...
|
|
62
|
+
def __ilshift__(self, other: Any) -> Any: ...
|
|
63
|
+
def __rshift__(self, other: Any) -> Any: ...
|
|
64
|
+
def __rrshift__(self, other: Any) -> Any: ...
|
|
65
|
+
def __irshift__(self, other: Any) -> Any: ...
|
|
66
|
+
def __and__(self, other: Any) -> Any: ...
|
|
67
|
+
def __rand__(self, other: Any) -> Any: ...
|
|
68
|
+
def __iand__(self, other: Any) -> Any: ...
|
|
69
|
+
def __xor__(self, other: Any) -> Any: ...
|
|
70
|
+
def __rxor__(self, other: Any) -> Any: ...
|
|
71
|
+
def __ixor__(self, other: Any) -> Any: ...
|
|
72
|
+
def __or__(self, other: Any) -> Any: ...
|
|
73
|
+
def __ror__(self, other: Any) -> Any: ...
|
|
74
|
+
def __ior__(self, other: Any) -> Any: ...
|
|
75
|
+
def __neg__(self) -> Any: ...
|
|
76
|
+
def __pos__(self) -> Any: ...
|
|
77
|
+
def __abs__(self) -> Any: ...
|
|
78
|
+
def __invert__(self) -> Any: ...
|
numpy/lib/npyio.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from ._npyio_impl import DataSource, NpzFile, __doc__ # noqa: F401
|