numpy 2.3.5__cp313-cp313-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.
Potentially problematic release.
This version of numpy might be problematic. Click here for more details.
- numpy/__config__.py +170 -0
- numpy/__config__.pyi +102 -0
- numpy/__init__.cython-30.pxd +1241 -0
- numpy/__init__.pxd +1154 -0
- numpy/__init__.py +945 -0
- numpy/__init__.pyi +6147 -0
- numpy/_array_api_info.py +346 -0
- numpy/_array_api_info.pyi +207 -0
- numpy/_configtool.py +39 -0
- numpy/_configtool.pyi +1 -0
- numpy/_core/__init__.py +186 -0
- numpy/_core/__init__.pyi +2 -0
- numpy/_core/_add_newdocs.py +6967 -0
- numpy/_core/_add_newdocs.pyi +3 -0
- numpy/_core/_add_newdocs_scalars.py +390 -0
- numpy/_core/_add_newdocs_scalars.pyi +16 -0
- numpy/_core/_asarray.py +134 -0
- numpy/_core/_asarray.pyi +41 -0
- numpy/_core/_dtype.py +366 -0
- numpy/_core/_dtype.pyi +58 -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 +55 -0
- numpy/_core/_internal.py +958 -0
- numpy/_core/_internal.pyi +72 -0
- numpy/_core/_machar.py +355 -0
- numpy/_core/_machar.pyi +55 -0
- numpy/_core/_methods.py +255 -0
- numpy/_core/_methods.pyi +22 -0
- numpy/_core/_multiarray_tests.cpython-313-darwin.so +0 -0
- numpy/_core/_multiarray_umath.cpython-313-darwin.so +0 -0
- numpy/_core/_operand_flag_tests.cpython-313-darwin.so +0 -0
- numpy/_core/_rational_tests.cpython-313-darwin.so +0 -0
- numpy/_core/_simd.cpython-313-darwin.so +0 -0
- numpy/_core/_simd.pyi +25 -0
- numpy/_core/_string_helpers.py +100 -0
- numpy/_core/_string_helpers.pyi +12 -0
- numpy/_core/_struct_ufunc_tests.cpython-313-darwin.so +0 -0
- numpy/_core/_type_aliases.py +119 -0
- numpy/_core/_type_aliases.pyi +97 -0
- numpy/_core/_ufunc_config.py +491 -0
- numpy/_core/_ufunc_config.pyi +78 -0
- numpy/_core/_umath_tests.cpython-313-darwin.so +0 -0
- numpy/_core/arrayprint.py +1775 -0
- numpy/_core/arrayprint.pyi +238 -0
- numpy/_core/cversions.py +13 -0
- numpy/_core/defchararray.py +1427 -0
- numpy/_core/defchararray.pyi +1135 -0
- numpy/_core/einsumfunc.py +1498 -0
- numpy/_core/einsumfunc.pyi +184 -0
- numpy/_core/fromnumeric.py +4269 -0
- numpy/_core/fromnumeric.pyi +1750 -0
- numpy/_core/function_base.py +545 -0
- numpy/_core/function_base.pyi +278 -0
- numpy/_core/getlimits.py +748 -0
- numpy/_core/getlimits.pyi +3 -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 +54 -0
- numpy/_core/include/numpy/__ufunc_api.h +341 -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 +196 -0
- numpy/_core/include/numpy/dtype_api.h +480 -0
- numpy/_core/include/numpy/halffloat.h +70 -0
- numpy/_core/include/numpy/ndarrayobject.h +304 -0
- numpy/_core/include/numpy/ndarraytypes.h +1950 -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 +977 -0
- numpy/_core/include/numpy/npy_cpu.h +124 -0
- numpy/_core/include/numpy/npy_endian.h +78 -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 +182 -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 +1762 -0
- numpy/_core/multiarray.pyi +1285 -0
- numpy/_core/numeric.py +2760 -0
- numpy/_core/numeric.pyi +882 -0
- numpy/_core/numerictypes.py +633 -0
- numpy/_core/numerictypes.pyi +197 -0
- numpy/_core/overrides.py +183 -0
- numpy/_core/overrides.pyi +48 -0
- numpy/_core/printoptions.py +32 -0
- numpy/_core/printoptions.pyi +28 -0
- numpy/_core/records.py +1089 -0
- numpy/_core/records.pyi +333 -0
- numpy/_core/shape_base.py +998 -0
- numpy/_core/shape_base.pyi +175 -0
- numpy/_core/strings.py +1829 -0
- numpy/_core/strings.pyi +511 -0
- numpy/_core/tests/_locales.py +72 -0
- numpy/_core/tests/_natype.py +205 -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 +654 -0
- numpy/_core/tests/test_argparse.py +92 -0
- numpy/_core/tests/test_array_api_info.py +113 -0
- numpy/_core/tests/test_array_coercion.py +911 -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 +1328 -0
- numpy/_core/tests/test_casting_floatingpoint_errors.py +154 -0
- numpy/_core/tests/test_casting_unittests.py +817 -0
- numpy/_core/tests/test_conversion_utils.py +206 -0
- numpy/_core/tests/test_cpu_dispatcher.py +49 -0
- numpy/_core/tests/test_cpu_features.py +432 -0
- numpy/_core/tests/test_custom_dtypes.py +315 -0
- numpy/_core/tests/test_cython.py +351 -0
- numpy/_core/tests/test_datetime.py +2734 -0
- numpy/_core/tests/test_defchararray.py +825 -0
- numpy/_core/tests/test_deprecations.py +454 -0
- numpy/_core/tests/test_dlpack.py +190 -0
- numpy/_core/tests/test_dtype.py +1995 -0
- numpy/_core/tests/test_einsum.py +1317 -0
- numpy/_core/tests/test_errstate.py +131 -0
- numpy/_core/tests/test_extint128.py +217 -0
- numpy/_core/tests/test_function_base.py +503 -0
- numpy/_core/tests/test_getlimits.py +205 -0
- numpy/_core/tests/test_half.py +568 -0
- numpy/_core/tests/test_hashtable.py +35 -0
- numpy/_core/tests/test_indexerrors.py +125 -0
- numpy/_core/tests/test_indexing.py +1455 -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 +369 -0
- numpy/_core/tests/test_machar.py +30 -0
- numpy/_core/tests/test_mem_overlap.py +930 -0
- numpy/_core/tests/test_mem_policy.py +452 -0
- numpy/_core/tests/test_memmap.py +246 -0
- numpy/_core/tests/test_multiarray.py +10577 -0
- numpy/_core/tests/test_multithreading.py +292 -0
- numpy/_core/tests/test_nditer.py +3498 -0
- numpy/_core/tests/test_nep50_promotions.py +287 -0
- numpy/_core/tests/test_numeric.py +4247 -0
- numpy/_core/tests/test_numerictypes.py +651 -0
- numpy/_core/tests/test_overrides.py +791 -0
- numpy/_core/tests/test_print.py +200 -0
- numpy/_core/tests/test_protocols.py +46 -0
- numpy/_core/tests/test_records.py +544 -0
- numpy/_core/tests/test_regression.py +2670 -0
- numpy/_core/tests/test_scalar_ctors.py +207 -0
- numpy/_core/tests/test_scalar_methods.py +246 -0
- numpy/_core/tests/test_scalarbuffer.py +153 -0
- numpy/_core/tests/test_scalarinherit.py +105 -0
- numpy/_core/tests/test_scalarmath.py +1176 -0
- numpy/_core/tests/test_scalarprint.py +403 -0
- numpy/_core/tests/test_shape_base.py +891 -0
- numpy/_core/tests/test_simd.py +1341 -0
- numpy/_core/tests/test_simd_module.py +103 -0
- numpy/_core/tests/test_stringdtype.py +1814 -0
- numpy/_core/tests/test_strings.py +1499 -0
- numpy/_core/tests/test_ufunc.py +3313 -0
- numpy/_core/tests/test_umath.py +4928 -0
- numpy/_core/tests/test_umath_accuracy.py +124 -0
- numpy/_core/tests/test_umath_complex.py +626 -0
- numpy/_core/tests/test_unicode.py +368 -0
- numpy/_core/umath.py +60 -0
- numpy/_core/umath.pyi +197 -0
- numpy/_distributor_init.py +15 -0
- numpy/_distributor_init.pyi +1 -0
- numpy/_expired_attrs_2_0.py +79 -0
- numpy/_expired_attrs_2_0.pyi +62 -0
- numpy/_globals.py +96 -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 +13 -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 +148 -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 +40 -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 +941 -0
- numpy/_utils/__init__.py +95 -0
- numpy/_utils/__init__.pyi +30 -0
- numpy/_utils/_convertions.py +18 -0
- numpy/_utils/_convertions.pyi +4 -0
- numpy/_utils/_inspect.py +192 -0
- numpy/_utils/_inspect.pyi +71 -0
- numpy/_utils/_pep440.py +486 -0
- numpy/_utils/_pep440.pyi +121 -0
- numpy/char/__init__.py +2 -0
- numpy/char/__init__.pyi +111 -0
- numpy/conftest.py +258 -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 +33 -0
- numpy/ctypeslib/_ctypeslib.py +603 -0
- numpy/ctypeslib/_ctypeslib.pyi +245 -0
- numpy/doc/ufuncs.py +138 -0
- numpy/dtypes.py +41 -0
- numpy/dtypes.pyi +631 -0
- numpy/exceptions.py +247 -0
- numpy/exceptions.pyi +27 -0
- numpy/f2py/__init__.py +86 -0
- numpy/f2py/__init__.pyi +6 -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 +231 -0
- numpy/f2py/_backends/_meson.pyi +63 -0
- numpy/f2py/_backends/meson.build.template +55 -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 +29 -0
- numpy/f2py/auxfuncs.py +1004 -0
- numpy/f2py/auxfuncs.pyi +264 -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 +258 -0
- numpy/f2py/diagnose.py +149 -0
- numpy/f2py/diagnose.pyi +1 -0
- numpy/f2py/f2py2e.py +786 -0
- numpy/f2py/f2py2e.pyi +76 -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 +43 -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 +1516 -0
- numpy/f2py/symbolic.pyi +221 -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 +64 -0
- numpy/f2py/tests/test_f2cmap.py +17 -0
- numpy/f2py/tests/test_f2py2e.py +964 -0
- numpy/f2py/tests/test_isoc.py +56 -0
- numpy/f2py/tests/test_kind.py +53 -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 +495 -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 +215 -0
- numpy/fft/__init__.pyi +43 -0
- numpy/fft/_helper.py +235 -0
- numpy/fft/_helper.pyi +45 -0
- numpy/fft/_pocketfft.py +1693 -0
- numpy/fft/_pocketfft.pyi +138 -0
- numpy/fft/_pocketfft_umath.cpython-313-darwin.so +0 -0
- numpy/fft/helper.py +17 -0
- numpy/fft/helper.pyi +22 -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 +44 -0
- numpy/lib/_array_utils_impl.py +62 -0
- numpy/lib/_array_utils_impl.pyi +26 -0
- numpy/lib/_arraypad_impl.py +890 -0
- numpy/lib/_arraypad_impl.pyi +89 -0
- numpy/lib/_arraysetops_impl.py +1260 -0
- numpy/lib/_arraysetops_impl.pyi +468 -0
- numpy/lib/_arrayterator_impl.py +224 -0
- numpy/lib/_arrayterator_impl.pyi +46 -0
- numpy/lib/_datasource.py +700 -0
- numpy/lib/_datasource.pyi +31 -0
- numpy/lib/_format_impl.py +1036 -0
- numpy/lib/_format_impl.pyi +26 -0
- numpy/lib/_function_base_impl.py +5844 -0
- numpy/lib/_function_base_impl.pyi +1164 -0
- numpy/lib/_histograms_impl.py +1085 -0
- numpy/lib/_histograms_impl.pyi +50 -0
- numpy/lib/_index_tricks_impl.py +1067 -0
- numpy/lib/_index_tricks_impl.pyi +208 -0
- numpy/lib/_iotools.py +900 -0
- numpy/lib/_iotools.pyi +114 -0
- numpy/lib/_nanfunctions_impl.py +2024 -0
- numpy/lib/_nanfunctions_impl.pyi +52 -0
- numpy/lib/_npyio_impl.py +2596 -0
- numpy/lib/_npyio_impl.pyi +301 -0
- numpy/lib/_polynomial_impl.py +1465 -0
- numpy/lib/_polynomial_impl.pyi +318 -0
- numpy/lib/_scimath_impl.py +642 -0
- numpy/lib/_scimath_impl.pyi +93 -0
- numpy/lib/_shape_base_impl.py +1301 -0
- numpy/lib/_shape_base_impl.pyi +235 -0
- numpy/lib/_stride_tricks_impl.py +549 -0
- numpy/lib/_stride_tricks_impl.pyi +74 -0
- numpy/lib/_twodim_base_impl.py +1201 -0
- numpy/lib/_twodim_base_impl.pyi +438 -0
- numpy/lib/_type_check_impl.py +699 -0
- numpy/lib/_type_check_impl.pyi +350 -0
- numpy/lib/_ufunclike_impl.py +207 -0
- numpy/lib/_ufunclike_impl.pyi +67 -0
- numpy/lib/_user_array_impl.py +299 -0
- numpy/lib/_user_array_impl.pyi +225 -0
- numpy/lib/_utils_impl.py +784 -0
- numpy/lib/_utils_impl.pyi +10 -0
- numpy/lib/_version.py +154 -0
- numpy/lib/_version.pyi +17 -0
- numpy/lib/array_utils.py +7 -0
- numpy/lib/array_utils.pyi +12 -0
- numpy/lib/format.py +24 -0
- numpy/lib/format.pyi +66 -0
- numpy/lib/introspect.py +95 -0
- numpy/lib/introspect.pyi +3 -0
- numpy/lib/mixins.py +180 -0
- numpy/lib/mixins.pyi +77 -0
- numpy/lib/npyio.py +1 -0
- numpy/lib/npyio.pyi +9 -0
- numpy/lib/recfunctions.py +1681 -0
- numpy/lib/recfunctions.pyi +435 -0
- numpy/lib/scimath.py +13 -0
- numpy/lib/scimath.pyi +30 -0
- numpy/lib/stride_tricks.py +1 -0
- numpy/lib/stride_tricks.pyi +6 -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 +352 -0
- numpy/lib/tests/test__iotools.py +360 -0
- numpy/lib/tests/test__version.py +64 -0
- numpy/lib/tests/test_array_utils.py +32 -0
- numpy/lib/tests/test_arraypad.py +1415 -0
- numpy/lib/tests/test_arraysetops.py +1074 -0
- numpy/lib/tests/test_arrayterator.py +46 -0
- numpy/lib/tests/test_format.py +1054 -0
- numpy/lib/tests/test_function_base.py +4573 -0
- numpy/lib/tests/test_histograms.py +855 -0
- numpy/lib/tests/test_index_tricks.py +573 -0
- numpy/lib/tests/test_io.py +2848 -0
- numpy/lib/tests/test_loadtxt.py +1101 -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 +320 -0
- numpy/lib/tests/test_recfunctions.py +1052 -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 +656 -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 +98 -0
- numpy/linalg/__init__.pyi +73 -0
- numpy/linalg/_linalg.py +3682 -0
- numpy/linalg/_linalg.pyi +475 -0
- numpy/linalg/_umath_linalg.cpython-313-darwin.so +0 -0
- numpy/linalg/_umath_linalg.pyi +61 -0
- numpy/linalg/lapack_lite.cpython-313-darwin.so +0 -0
- numpy/linalg/lapack_lite.pyi +141 -0
- numpy/linalg/linalg.py +17 -0
- numpy/linalg/linalg.pyi +69 -0
- numpy/linalg/tests/__init__.py +0 -0
- numpy/linalg/tests/test_deprecations.py +20 -0
- numpy/linalg/tests/test_linalg.py +2443 -0
- numpy/linalg/tests/test_regression.py +181 -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 +8933 -0
- numpy/ma/core.pyi +1462 -0
- numpy/ma/extras.py +2344 -0
- numpy/ma/extras.pyi +138 -0
- numpy/ma/mrecords.py +773 -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 +5886 -0
- numpy/ma/tests/test_deprecations.py +87 -0
- numpy/ma/tests/test_extras.py +1998 -0
- numpy/ma/tests/test_mrecords.py +497 -0
- numpy/ma/tests/test_old_ma.py +942 -0
- numpy/ma/tests/test_regression.py +100 -0
- numpy/ma/tests/test_subclassing.py +469 -0
- numpy/ma/testutils.py +294 -0
- numpy/matlib.py +380 -0
- numpy/matlib.pyi +582 -0
- numpy/matrixlib/__init__.py +12 -0
- numpy/matrixlib/__init__.pyi +5 -0
- numpy/matrixlib/defmatrix.py +1119 -0
- numpy/matrixlib/defmatrix.pyi +17 -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 +105 -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 +25 -0
- numpy/polynomial/_polybase.py +1191 -0
- numpy/polynomial/_polybase.pyi +285 -0
- numpy/polynomial/_polytypes.pyi +892 -0
- numpy/polynomial/chebyshev.py +2003 -0
- numpy/polynomial/chebyshev.pyi +181 -0
- numpy/polynomial/hermite.py +1740 -0
- numpy/polynomial/hermite.pyi +107 -0
- numpy/polynomial/hermite_e.py +1642 -0
- numpy/polynomial/hermite_e.pyi +107 -0
- numpy/polynomial/laguerre.py +1675 -0
- numpy/polynomial/laguerre.pyi +100 -0
- numpy/polynomial/legendre.py +1605 -0
- numpy/polynomial/legendre.pyi +100 -0
- numpy/polynomial/polynomial.py +1616 -0
- numpy/polynomial/polynomial.pyi +89 -0
- numpy/polynomial/polyutils.py +759 -0
- numpy/polynomial/polyutils.pyi +423 -0
- numpy/polynomial/tests/__init__.py +0 -0
- numpy/polynomial/tests/test_chebyshev.py +623 -0
- numpy/polynomial/tests/test_classes.py +618 -0
- numpy/polynomial/tests/test_hermite.py +558 -0
- numpy/polynomial/tests/test_hermite_e.py +559 -0
- numpy/polynomial/tests/test_laguerre.py +540 -0
- numpy/polynomial/tests/test_legendre.py +571 -0
- numpy/polynomial/tests/test_polynomial.py +669 -0
- numpy/polynomial/tests/test_polyutils.py +128 -0
- numpy/polynomial/tests/test_printing.py +555 -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.cpython-313-darwin.so +0 -0
- numpy/random/_bounded_integers.pxd +29 -0
- numpy/random/_bounded_integers.pyi +1 -0
- numpy/random/_common.cpython-313-darwin.so +0 -0
- numpy/random/_common.pxd +107 -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 +118 -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.cpython-313-darwin.so +0 -0
- numpy/random/_generator.pyi +861 -0
- numpy/random/_mt19937.cpython-313-darwin.so +0 -0
- numpy/random/_mt19937.pyi +25 -0
- numpy/random/_pcg64.cpython-313-darwin.so +0 -0
- numpy/random/_pcg64.pyi +44 -0
- numpy/random/_philox.cpython-313-darwin.so +0 -0
- numpy/random/_philox.pyi +39 -0
- numpy/random/_pickle.py +88 -0
- numpy/random/_pickle.pyi +43 -0
- numpy/random/_sfc64.cpython-313-darwin.so +0 -0
- numpy/random/_sfc64.pyi +28 -0
- numpy/random/bit_generator.cpython-313-darwin.so +0 -0
- numpy/random/bit_generator.pxd +35 -0
- numpy/random/bit_generator.pyi +124 -0
- numpy/random/c_distributions.pxd +119 -0
- numpy/random/lib/libnpyrandom.a +0 -0
- numpy/random/mtrand.cpython-313-darwin.so +0 -0
- numpy/random/mtrand.pyi +703 -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 +592 -0
- numpy/random/tests/test_extending.py +127 -0
- numpy/random/tests/test_generator_mt19937.py +2809 -0
- numpy/random/tests/test_generator_mt19937_regressions.py +207 -0
- numpy/random/tests/test_random.py +1757 -0
- numpy/random/tests/test_randomstate.py +2130 -0
- numpy/random/tests/test_randomstate_regression.py +217 -0
- numpy/random/tests/test_regression.py +152 -0
- numpy/random/tests/test_seed_sequence.py +79 -0
- numpy/random/tests/test_smoke.py +819 -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 +102 -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 +2752 -0
- numpy/testing/_private/utils.pyi +499 -0
- numpy/testing/overrides.py +84 -0
- numpy/testing/overrides.pyi +11 -0
- numpy/testing/print_coercion_tables.py +207 -0
- numpy/testing/print_coercion_tables.pyi +27 -0
- numpy/testing/tests/__init__.py +0 -0
- numpy/testing/tests/test_utils.py +1917 -0
- numpy/tests/__init__.py +0 -0
- numpy/tests/test__all__.py +10 -0
- numpy/tests/test_configtool.py +48 -0
- numpy/tests/test_ctypeslib.py +377 -0
- numpy/tests/test_lazyloading.py +38 -0
- numpy/tests/test_matlib.py +59 -0
- numpy/tests/test_numpy_config.py +46 -0
- numpy/tests/test_numpy_version.py +54 -0
- numpy/tests/test_public_api.py +806 -0
- numpy/tests/test_reloading.py +74 -0
- numpy/tests/test_scripts.py +49 -0
- numpy/tests/test_warnings.py +78 -0
- numpy/typing/__init__.py +201 -0
- numpy/typing/mypy_plugin.py +195 -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 +16 -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 +65 -0
- numpy/typing/tests/data/fail/chararray.pyi +62 -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 +15 -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 +20 -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 +62 -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 +48 -0
- numpy/typing/tests/data/fail/ma.pyi +143 -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 +36 -0
- numpy/typing/tests/data/fail/nditer.pyi +8 -0
- numpy/typing/tests/data/fail/nested_sequence.pyi +16 -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 +87 -0
- numpy/typing/tests/data/fail/shape.pyi +6 -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 +32 -0
- numpy/typing/tests/data/fail/type_check.pyi +13 -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 +9 -0
- numpy/typing/tests/data/pass/arithmetic.py +612 -0
- numpy/typing/tests/data/pass/array_constructors.py +137 -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 +27 -0
- numpy/typing/tests/data/pass/bitwise_ops.py +131 -0
- numpy/typing/tests/data/pass/comparisons.py +315 -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 +19 -0
- numpy/typing/tests/data/pass/fromnumeric.py +272 -0
- numpy/typing/tests/data/pass/index_tricks.py +60 -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 +51 -0
- numpy/typing/tests/data/pass/ma.py +174 -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 +76 -0
- numpy/typing/tests/data/pass/ndarray_conversion.py +87 -0
- numpy/typing/tests/data/pass/ndarray_misc.py +203 -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 +95 -0
- numpy/typing/tests/data/pass/numerictypes.py +17 -0
- numpy/typing/tests/data/pass/random.py +1497 -0
- numpy/typing/tests/data/pass/recfunctions.py +161 -0
- numpy/typing/tests/data/pass/scalars.py +248 -0
- numpy/typing/tests/data/pass/shape.py +19 -0
- numpy/typing/tests/data/pass/simple.py +168 -0
- numpy/typing/tests/data/pass/simple_py3.py +6 -0
- numpy/typing/tests/data/pass/ufunc_config.py +64 -0
- numpy/typing/tests/data/pass/ufunclike.py +47 -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 +720 -0
- numpy/typing/tests/data/reveal/array_api_info.pyi +70 -0
- numpy/typing/tests/data/reveal/array_constructors.pyi +249 -0
- numpy/typing/tests/data/reveal/arraypad.pyi +22 -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 +167 -0
- numpy/typing/tests/data/reveal/char.pyi +224 -0
- numpy/typing/tests/data/reveal/chararray.pyi +137 -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 +136 -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 +47 -0
- numpy/typing/tests/data/reveal/fromnumeric.pyi +347 -0
- numpy/typing/tests/data/reveal/getlimits.pyi +51 -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 +213 -0
- numpy/typing/tests/data/reveal/lib_polynomial.pyi +144 -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 +132 -0
- numpy/typing/tests/data/reveal/ma.pyi +369 -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 +179 -0
- numpy/typing/tests/data/reveal/modules.pyi +51 -0
- numpy/typing/tests/data/reveal/multiarray.pyi +194 -0
- numpy/typing/tests/data/reveal/nbit_base_example.pyi +21 -0
- numpy/typing/tests/data/reveal/ndarray_assignability.pyi +77 -0
- numpy/typing/tests/data/reveal/ndarray_conversion.pyi +85 -0
- numpy/typing/tests/data/reveal/ndarray_misc.pyi +247 -0
- numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi +39 -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 +134 -0
- numpy/typing/tests/data/reveal/numerictypes.pyi +16 -0
- numpy/typing/tests/data/reveal/polynomial_polybase.pyi +220 -0
- numpy/typing/tests/data/reveal/polynomial_polyutils.pyi +219 -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 +145 -0
- numpy/typing/tests/data/reveal/type_check.pyi +67 -0
- numpy/typing/tests/data/reveal/ufunc_config.pyi +30 -0
- numpy/typing/tests/data/reveal/ufunclike.pyi +31 -0
- numpy/typing/tests/data/reveal/ufuncs.pyi +123 -0
- numpy/typing/tests/data/reveal/warnings_and_errors.pyi +11 -0
- numpy/typing/tests/test_isfile.py +32 -0
- numpy/typing/tests/test_runtime.py +102 -0
- numpy/typing/tests/test_typing.py +205 -0
- numpy/version.py +11 -0
- numpy/version.pyi +18 -0
- numpy-2.3.5.dist-info/LICENSE.txt +971 -0
- numpy-2.3.5.dist-info/METADATA +1093 -0
- numpy-2.3.5.dist-info/RECORD +897 -0
- numpy-2.3.5.dist-info/WHEEL +6 -0
- numpy-2.3.5.dist-info/entry_points.txt +13 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
#ifndef NUMPY_CORE_INCLUDE_NUMPY_ARRAYSCALARS_H_
|
|
2
|
+
#define NUMPY_CORE_INCLUDE_NUMPY_ARRAYSCALARS_H_
|
|
3
|
+
|
|
4
|
+
#ifndef _MULTIARRAYMODULE
|
|
5
|
+
typedef struct {
|
|
6
|
+
PyObject_HEAD
|
|
7
|
+
npy_bool obval;
|
|
8
|
+
} PyBoolScalarObject;
|
|
9
|
+
#endif
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
typedef struct {
|
|
13
|
+
PyObject_HEAD
|
|
14
|
+
signed char obval;
|
|
15
|
+
} PyByteScalarObject;
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
typedef struct {
|
|
19
|
+
PyObject_HEAD
|
|
20
|
+
short obval;
|
|
21
|
+
} PyShortScalarObject;
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
typedef struct {
|
|
25
|
+
PyObject_HEAD
|
|
26
|
+
int obval;
|
|
27
|
+
} PyIntScalarObject;
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
typedef struct {
|
|
31
|
+
PyObject_HEAD
|
|
32
|
+
long obval;
|
|
33
|
+
} PyLongScalarObject;
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
typedef struct {
|
|
37
|
+
PyObject_HEAD
|
|
38
|
+
npy_longlong obval;
|
|
39
|
+
} PyLongLongScalarObject;
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
typedef struct {
|
|
43
|
+
PyObject_HEAD
|
|
44
|
+
unsigned char obval;
|
|
45
|
+
} PyUByteScalarObject;
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
typedef struct {
|
|
49
|
+
PyObject_HEAD
|
|
50
|
+
unsigned short obval;
|
|
51
|
+
} PyUShortScalarObject;
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
typedef struct {
|
|
55
|
+
PyObject_HEAD
|
|
56
|
+
unsigned int obval;
|
|
57
|
+
} PyUIntScalarObject;
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
typedef struct {
|
|
61
|
+
PyObject_HEAD
|
|
62
|
+
unsigned long obval;
|
|
63
|
+
} PyULongScalarObject;
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
typedef struct {
|
|
67
|
+
PyObject_HEAD
|
|
68
|
+
npy_ulonglong obval;
|
|
69
|
+
} PyULongLongScalarObject;
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
typedef struct {
|
|
73
|
+
PyObject_HEAD
|
|
74
|
+
npy_half obval;
|
|
75
|
+
} PyHalfScalarObject;
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
typedef struct {
|
|
79
|
+
PyObject_HEAD
|
|
80
|
+
float obval;
|
|
81
|
+
} PyFloatScalarObject;
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
typedef struct {
|
|
85
|
+
PyObject_HEAD
|
|
86
|
+
double obval;
|
|
87
|
+
} PyDoubleScalarObject;
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
typedef struct {
|
|
91
|
+
PyObject_HEAD
|
|
92
|
+
npy_longdouble obval;
|
|
93
|
+
} PyLongDoubleScalarObject;
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
typedef struct {
|
|
97
|
+
PyObject_HEAD
|
|
98
|
+
npy_cfloat obval;
|
|
99
|
+
} PyCFloatScalarObject;
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
typedef struct {
|
|
103
|
+
PyObject_HEAD
|
|
104
|
+
npy_cdouble obval;
|
|
105
|
+
} PyCDoubleScalarObject;
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
typedef struct {
|
|
109
|
+
PyObject_HEAD
|
|
110
|
+
npy_clongdouble obval;
|
|
111
|
+
} PyCLongDoubleScalarObject;
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
typedef struct {
|
|
115
|
+
PyObject_HEAD
|
|
116
|
+
PyObject * obval;
|
|
117
|
+
} PyObjectScalarObject;
|
|
118
|
+
|
|
119
|
+
typedef struct {
|
|
120
|
+
PyObject_HEAD
|
|
121
|
+
npy_datetime obval;
|
|
122
|
+
PyArray_DatetimeMetaData obmeta;
|
|
123
|
+
} PyDatetimeScalarObject;
|
|
124
|
+
|
|
125
|
+
typedef struct {
|
|
126
|
+
PyObject_HEAD
|
|
127
|
+
npy_timedelta obval;
|
|
128
|
+
PyArray_DatetimeMetaData obmeta;
|
|
129
|
+
} PyTimedeltaScalarObject;
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
typedef struct {
|
|
133
|
+
PyObject_HEAD
|
|
134
|
+
char obval;
|
|
135
|
+
} PyScalarObject;
|
|
136
|
+
|
|
137
|
+
#define PyStringScalarObject PyBytesObject
|
|
138
|
+
#ifndef Py_LIMITED_API
|
|
139
|
+
typedef struct {
|
|
140
|
+
/* note that the PyObject_HEAD macro lives right here */
|
|
141
|
+
PyUnicodeObject base;
|
|
142
|
+
Py_UCS4 *obval;
|
|
143
|
+
#if NPY_FEATURE_VERSION >= NPY_1_20_API_VERSION
|
|
144
|
+
char *buffer_fmt;
|
|
145
|
+
#endif
|
|
146
|
+
} PyUnicodeScalarObject;
|
|
147
|
+
#endif
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
typedef struct {
|
|
151
|
+
PyObject_VAR_HEAD
|
|
152
|
+
char *obval;
|
|
153
|
+
#if defined(NPY_INTERNAL_BUILD) && NPY_INTERNAL_BUILD
|
|
154
|
+
/* Internally use the subclass to allow accessing names/fields */
|
|
155
|
+
_PyArray_LegacyDescr *descr;
|
|
156
|
+
#else
|
|
157
|
+
PyArray_Descr *descr;
|
|
158
|
+
#endif
|
|
159
|
+
int flags;
|
|
160
|
+
PyObject *base;
|
|
161
|
+
#if NPY_FEATURE_VERSION >= NPY_1_20_API_VERSION
|
|
162
|
+
void *_buffer_info; /* private buffer info, tagged to allow warning */
|
|
163
|
+
#endif
|
|
164
|
+
} PyVoidScalarObject;
|
|
165
|
+
|
|
166
|
+
/* Macros
|
|
167
|
+
Py<Cls><bitsize>ScalarObject
|
|
168
|
+
Py<Cls><bitsize>ArrType_Type
|
|
169
|
+
are defined in ndarrayobject.h
|
|
170
|
+
*/
|
|
171
|
+
|
|
172
|
+
#define PyArrayScalar_False ((PyObject *)(&(_PyArrayScalar_BoolValues[0])))
|
|
173
|
+
#define PyArrayScalar_True ((PyObject *)(&(_PyArrayScalar_BoolValues[1])))
|
|
174
|
+
#define PyArrayScalar_FromLong(i) \
|
|
175
|
+
((PyObject *)(&(_PyArrayScalar_BoolValues[((i)!=0)])))
|
|
176
|
+
#define PyArrayScalar_RETURN_BOOL_FROM_LONG(i) \
|
|
177
|
+
return Py_INCREF(PyArrayScalar_FromLong(i)), \
|
|
178
|
+
PyArrayScalar_FromLong(i)
|
|
179
|
+
#define PyArrayScalar_RETURN_FALSE \
|
|
180
|
+
return Py_INCREF(PyArrayScalar_False), \
|
|
181
|
+
PyArrayScalar_False
|
|
182
|
+
#define PyArrayScalar_RETURN_TRUE \
|
|
183
|
+
return Py_INCREF(PyArrayScalar_True), \
|
|
184
|
+
PyArrayScalar_True
|
|
185
|
+
|
|
186
|
+
#define PyArrayScalar_New(cls) \
|
|
187
|
+
Py##cls##ArrType_Type.tp_alloc(&Py##cls##ArrType_Type, 0)
|
|
188
|
+
#ifndef Py_LIMITED_API
|
|
189
|
+
/* For the limited API, use PyArray_ScalarAsCtype instead */
|
|
190
|
+
#define PyArrayScalar_VAL(obj, cls) \
|
|
191
|
+
((Py##cls##ScalarObject *)obj)->obval
|
|
192
|
+
#define PyArrayScalar_ASSIGN(obj, cls, val) \
|
|
193
|
+
PyArrayScalar_VAL(obj, cls) = val
|
|
194
|
+
#endif
|
|
195
|
+
|
|
196
|
+
#endif /* NUMPY_CORE_INCLUDE_NUMPY_ARRAYSCALARS_H_ */
|
|
@@ -0,0 +1,480 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The public DType API
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
#ifndef NUMPY_CORE_INCLUDE_NUMPY___DTYPE_API_H_
|
|
6
|
+
#define NUMPY_CORE_INCLUDE_NUMPY___DTYPE_API_H_
|
|
7
|
+
|
|
8
|
+
struct PyArrayMethodObject_tag;
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
* Largely opaque struct for DType classes (i.e. metaclass instances).
|
|
12
|
+
* The internal definition is currently in `ndarraytypes.h` (export is a bit
|
|
13
|
+
* more complex because `PyArray_Descr` is a DTypeMeta internally but not
|
|
14
|
+
* externally).
|
|
15
|
+
*/
|
|
16
|
+
#if !(defined(NPY_INTERNAL_BUILD) && NPY_INTERNAL_BUILD)
|
|
17
|
+
|
|
18
|
+
#ifndef Py_LIMITED_API
|
|
19
|
+
|
|
20
|
+
typedef struct PyArray_DTypeMeta_tag {
|
|
21
|
+
PyHeapTypeObject super;
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
* Most DTypes will have a singleton default instance, for the
|
|
25
|
+
* parametric legacy DTypes (bytes, string, void, datetime) this
|
|
26
|
+
* may be a pointer to the *prototype* instance?
|
|
27
|
+
*/
|
|
28
|
+
PyArray_Descr *singleton;
|
|
29
|
+
/* Copy of the legacy DTypes type number, usually invalid. */
|
|
30
|
+
int type_num;
|
|
31
|
+
|
|
32
|
+
/* The type object of the scalar instances (may be NULL?) */
|
|
33
|
+
PyTypeObject *scalar_type;
|
|
34
|
+
/*
|
|
35
|
+
* DType flags to signal legacy, parametric, or
|
|
36
|
+
* abstract. But plenty of space for additional information/flags.
|
|
37
|
+
*/
|
|
38
|
+
npy_uint64 flags;
|
|
39
|
+
|
|
40
|
+
/*
|
|
41
|
+
* Use indirection in order to allow a fixed size for this struct.
|
|
42
|
+
* A stable ABI size makes creating a static DType less painful
|
|
43
|
+
* while also ensuring flexibility for all opaque API (with one
|
|
44
|
+
* indirection due the pointer lookup).
|
|
45
|
+
*/
|
|
46
|
+
void *dt_slots;
|
|
47
|
+
/* Allow growing (at the moment also beyond this) */
|
|
48
|
+
void *reserved[3];
|
|
49
|
+
} PyArray_DTypeMeta;
|
|
50
|
+
|
|
51
|
+
#else
|
|
52
|
+
|
|
53
|
+
typedef PyTypeObject PyArray_DTypeMeta;
|
|
54
|
+
|
|
55
|
+
#endif /* Py_LIMITED_API */
|
|
56
|
+
|
|
57
|
+
#endif /* not internal build */
|
|
58
|
+
|
|
59
|
+
/*
|
|
60
|
+
* ******************************************************
|
|
61
|
+
* ArrayMethod API (Casting and UFuncs)
|
|
62
|
+
* ******************************************************
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
typedef enum {
|
|
67
|
+
/* Flag for whether the GIL is required */
|
|
68
|
+
NPY_METH_REQUIRES_PYAPI = 1 << 0,
|
|
69
|
+
/*
|
|
70
|
+
* Some functions cannot set floating point error flags, this flag
|
|
71
|
+
* gives us the option (not requirement) to skip floating point error
|
|
72
|
+
* setup/check. No function should set error flags and ignore them
|
|
73
|
+
* since it would interfere with chaining operations (e.g. casting).
|
|
74
|
+
*/
|
|
75
|
+
NPY_METH_NO_FLOATINGPOINT_ERRORS = 1 << 1,
|
|
76
|
+
/* Whether the method supports unaligned access (not runtime) */
|
|
77
|
+
NPY_METH_SUPPORTS_UNALIGNED = 1 << 2,
|
|
78
|
+
/*
|
|
79
|
+
* Used for reductions to allow reordering the operation. At this point
|
|
80
|
+
* assume that if set, it also applies to normal operations though!
|
|
81
|
+
*/
|
|
82
|
+
NPY_METH_IS_REORDERABLE = 1 << 3,
|
|
83
|
+
/*
|
|
84
|
+
* Private flag for now for *logic* functions. The logical functions
|
|
85
|
+
* `logical_or` and `logical_and` can always cast the inputs to booleans
|
|
86
|
+
* "safely" (because that is how the cast to bool is defined).
|
|
87
|
+
* @seberg: I am not sure this is the best way to handle this, so its
|
|
88
|
+
* private for now (also it is very limited anyway).
|
|
89
|
+
* There is one "exception". NA aware dtypes cannot cast to bool
|
|
90
|
+
* (hopefully), so the `??->?` loop should error even with this flag.
|
|
91
|
+
* But a second NA fallback loop will be necessary.
|
|
92
|
+
*/
|
|
93
|
+
_NPY_METH_FORCE_CAST_INPUTS = 1 << 17,
|
|
94
|
+
|
|
95
|
+
/* All flags which can change at runtime */
|
|
96
|
+
NPY_METH_RUNTIME_FLAGS = (
|
|
97
|
+
NPY_METH_REQUIRES_PYAPI |
|
|
98
|
+
NPY_METH_NO_FLOATINGPOINT_ERRORS),
|
|
99
|
+
} NPY_ARRAYMETHOD_FLAGS;
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
typedef struct PyArrayMethod_Context_tag {
|
|
103
|
+
/* The caller, which is typically the original ufunc. May be NULL */
|
|
104
|
+
PyObject *caller;
|
|
105
|
+
/* The method "self". Currently an opaque object. */
|
|
106
|
+
struct PyArrayMethodObject_tag *method;
|
|
107
|
+
|
|
108
|
+
/* Operand descriptors, filled in by resolve_descriptors */
|
|
109
|
+
PyArray_Descr *const *descriptors;
|
|
110
|
+
/* Structure may grow (this is harmless for DType authors) */
|
|
111
|
+
} PyArrayMethod_Context;
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
/*
|
|
115
|
+
* The main object for creating a new ArrayMethod. We use the typical `slots`
|
|
116
|
+
* mechanism used by the Python limited API (see below for the slot defs).
|
|
117
|
+
*/
|
|
118
|
+
typedef struct {
|
|
119
|
+
const char *name;
|
|
120
|
+
int nin, nout;
|
|
121
|
+
NPY_CASTING casting;
|
|
122
|
+
NPY_ARRAYMETHOD_FLAGS flags;
|
|
123
|
+
PyArray_DTypeMeta **dtypes;
|
|
124
|
+
PyType_Slot *slots;
|
|
125
|
+
} PyArrayMethod_Spec;
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
/*
|
|
129
|
+
* ArrayMethod slots
|
|
130
|
+
* -----------------
|
|
131
|
+
*
|
|
132
|
+
* SLOTS IDs For the ArrayMethod creation, once fully public, IDs are fixed
|
|
133
|
+
* but can be deprecated and arbitrarily extended.
|
|
134
|
+
*/
|
|
135
|
+
#define _NPY_METH_resolve_descriptors_with_scalars 1
|
|
136
|
+
#define NPY_METH_resolve_descriptors 2
|
|
137
|
+
#define NPY_METH_get_loop 3
|
|
138
|
+
#define NPY_METH_get_reduction_initial 4
|
|
139
|
+
/* specific loops for constructions/default get_loop: */
|
|
140
|
+
#define NPY_METH_strided_loop 5
|
|
141
|
+
#define NPY_METH_contiguous_loop 6
|
|
142
|
+
#define NPY_METH_unaligned_strided_loop 7
|
|
143
|
+
#define NPY_METH_unaligned_contiguous_loop 8
|
|
144
|
+
#define NPY_METH_contiguous_indexed_loop 9
|
|
145
|
+
#define _NPY_METH_static_data 10
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
/*
|
|
149
|
+
* The resolve descriptors function, must be able to handle NULL values for
|
|
150
|
+
* all output (but not input) `given_descrs` and fill `loop_descrs`.
|
|
151
|
+
* Return -1 on error or 0 if the operation is not possible without an error
|
|
152
|
+
* set. (This may still be in flux.)
|
|
153
|
+
* Otherwise must return the "casting safety", for normal functions, this is
|
|
154
|
+
* almost always "safe" (or even "equivalent"?).
|
|
155
|
+
*
|
|
156
|
+
* `resolve_descriptors` is optional if all output DTypes are non-parametric.
|
|
157
|
+
*/
|
|
158
|
+
typedef NPY_CASTING (PyArrayMethod_ResolveDescriptors)(
|
|
159
|
+
/* "method" is currently opaque (necessary e.g. to wrap Python) */
|
|
160
|
+
struct PyArrayMethodObject_tag *method,
|
|
161
|
+
/* DTypes the method was created for */
|
|
162
|
+
PyArray_DTypeMeta *const *dtypes,
|
|
163
|
+
/* Input descriptors (instances). Outputs may be NULL. */
|
|
164
|
+
PyArray_Descr *const *given_descrs,
|
|
165
|
+
/* Exact loop descriptors to use, must not hold references on error */
|
|
166
|
+
PyArray_Descr **loop_descrs,
|
|
167
|
+
npy_intp *view_offset);
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
/*
|
|
171
|
+
* Rarely needed, slightly more powerful version of `resolve_descriptors`.
|
|
172
|
+
* See also `PyArrayMethod_ResolveDescriptors` for details on shared arguments.
|
|
173
|
+
*
|
|
174
|
+
* NOTE: This function is private now as it is unclear how and what to pass
|
|
175
|
+
* exactly as additional information to allow dealing with the scalars.
|
|
176
|
+
* See also gh-24915.
|
|
177
|
+
*/
|
|
178
|
+
typedef NPY_CASTING (PyArrayMethod_ResolveDescriptorsWithScalar)(
|
|
179
|
+
struct PyArrayMethodObject_tag *method,
|
|
180
|
+
PyArray_DTypeMeta *const *dtypes,
|
|
181
|
+
/* Unlike above, these can have any DType and we may allow NULL. */
|
|
182
|
+
PyArray_Descr *const *given_descrs,
|
|
183
|
+
/*
|
|
184
|
+
* Input scalars or NULL. Only ever passed for python scalars.
|
|
185
|
+
* WARNING: In some cases, a loop may be explicitly selected and the
|
|
186
|
+
* value passed is not available (NULL) or does not have the
|
|
187
|
+
* expected type.
|
|
188
|
+
*/
|
|
189
|
+
PyObject *const *input_scalars,
|
|
190
|
+
PyArray_Descr **loop_descrs,
|
|
191
|
+
npy_intp *view_offset);
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
typedef int (PyArrayMethod_StridedLoop)(PyArrayMethod_Context *context,
|
|
196
|
+
char *const *data, const npy_intp *dimensions, const npy_intp *strides,
|
|
197
|
+
NpyAuxData *transferdata);
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
typedef int (PyArrayMethod_GetLoop)(
|
|
201
|
+
PyArrayMethod_Context *context,
|
|
202
|
+
int aligned, int move_references,
|
|
203
|
+
const npy_intp *strides,
|
|
204
|
+
PyArrayMethod_StridedLoop **out_loop,
|
|
205
|
+
NpyAuxData **out_transferdata,
|
|
206
|
+
NPY_ARRAYMETHOD_FLAGS *flags);
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Query an ArrayMethod for the initial value for use in reduction.
|
|
210
|
+
*
|
|
211
|
+
* @param context The arraymethod context, mainly to access the descriptors.
|
|
212
|
+
* @param reduction_is_empty Whether the reduction is empty. When it is, the
|
|
213
|
+
* value returned may differ. In this case it is a "default" value that
|
|
214
|
+
* may differ from the "identity" value normally used. For example:
|
|
215
|
+
* - `0.0` is the default for `sum([])`. But `-0.0` is the correct
|
|
216
|
+
* identity otherwise as it preserves the sign for `sum([-0.0])`.
|
|
217
|
+
* - We use no identity for object, but return the default of `0` and `1`
|
|
218
|
+
* for the empty `sum([], dtype=object)` and `prod([], dtype=object)`.
|
|
219
|
+
* This allows `np.sum(np.array(["a", "b"], dtype=object))` to work.
|
|
220
|
+
* - `-inf` or `INT_MIN` for `max` is an identity, but at least `INT_MIN`
|
|
221
|
+
* not a good *default* when there are no items.
|
|
222
|
+
* @param initial Pointer to initial data to be filled (if possible)
|
|
223
|
+
*
|
|
224
|
+
* @returns -1, 0, or 1 indicating error, no initial value, and initial being
|
|
225
|
+
* successfully filled. Errors must not be given where 0 is correct, NumPy
|
|
226
|
+
* may call this even when not strictly necessary.
|
|
227
|
+
*/
|
|
228
|
+
typedef int (PyArrayMethod_GetReductionInitial)(
|
|
229
|
+
PyArrayMethod_Context *context, npy_bool reduction_is_empty,
|
|
230
|
+
void *initial);
|
|
231
|
+
|
|
232
|
+
/*
|
|
233
|
+
* The following functions are only used by the wrapping array method defined
|
|
234
|
+
* in umath/wrapping_array_method.c
|
|
235
|
+
*/
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
/*
|
|
239
|
+
* The function to convert the given descriptors (passed in to
|
|
240
|
+
* `resolve_descriptors`) and translates them for the wrapped loop.
|
|
241
|
+
* The new descriptors MUST be viewable with the old ones, `NULL` must be
|
|
242
|
+
* supported (for outputs) and should normally be forwarded.
|
|
243
|
+
*
|
|
244
|
+
* The function must clean up on error.
|
|
245
|
+
*
|
|
246
|
+
* NOTE: We currently assume that this translation gives "viewable" results.
|
|
247
|
+
* I.e. there is no additional casting related to the wrapping process.
|
|
248
|
+
* In principle that could be supported, but not sure it is useful.
|
|
249
|
+
* This currently also means that e.g. alignment must apply identically
|
|
250
|
+
* to the new dtypes.
|
|
251
|
+
*
|
|
252
|
+
* TODO: Due to the fact that `resolve_descriptors` is also used for `can_cast`
|
|
253
|
+
* there is no way to "pass out" the result of this function. This means
|
|
254
|
+
* it will be called twice for every ufunc call.
|
|
255
|
+
* (I am considering including `auxdata` as an "optional" parameter to
|
|
256
|
+
* `resolve_descriptors`, so that it can be filled there if not NULL.)
|
|
257
|
+
*/
|
|
258
|
+
typedef int (PyArrayMethod_TranslateGivenDescriptors)(int nin, int nout,
|
|
259
|
+
PyArray_DTypeMeta *const wrapped_dtypes[],
|
|
260
|
+
PyArray_Descr *const given_descrs[], PyArray_Descr *new_descrs[]);
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* The function to convert the actual loop descriptors (as returned by the
|
|
264
|
+
* original `resolve_descriptors` function) to the ones the output array
|
|
265
|
+
* should use.
|
|
266
|
+
* This function must return "viewable" types, it must not mutate them in any
|
|
267
|
+
* form that would break the inner-loop logic. Does not need to support NULL.
|
|
268
|
+
*
|
|
269
|
+
* The function must clean up on error.
|
|
270
|
+
*
|
|
271
|
+
* @param nin Number of input arguments
|
|
272
|
+
* @param nout Number of output arguments
|
|
273
|
+
* @param new_dtypes The DTypes of the output (usually probably not needed)
|
|
274
|
+
* @param given_descrs Original given_descrs to the resolver, necessary to
|
|
275
|
+
* fetch any information related to the new dtypes from the original.
|
|
276
|
+
* @param original_descrs The `loop_descrs` returned by the wrapped loop.
|
|
277
|
+
* @param loop_descrs The output descriptors, compatible to `original_descrs`.
|
|
278
|
+
*
|
|
279
|
+
* @returns 0 on success, -1 on failure.
|
|
280
|
+
*/
|
|
281
|
+
typedef int (PyArrayMethod_TranslateLoopDescriptors)(int nin, int nout,
|
|
282
|
+
PyArray_DTypeMeta *const new_dtypes[], PyArray_Descr *const given_descrs[],
|
|
283
|
+
PyArray_Descr *original_descrs[], PyArray_Descr *loop_descrs[]);
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
/*
|
|
288
|
+
* A traverse loop working on a single array. This is similar to the general
|
|
289
|
+
* strided-loop function. This is designed for loops that need to visit every
|
|
290
|
+
* element of a single array.
|
|
291
|
+
*
|
|
292
|
+
* Currently this is used for array clearing, via the NPY_DT_get_clear_loop
|
|
293
|
+
* API hook, and zero-filling, via the NPY_DT_get_fill_zero_loop API hook.
|
|
294
|
+
* These are most useful for handling arrays storing embedded references to
|
|
295
|
+
* python objects or heap-allocated data.
|
|
296
|
+
*
|
|
297
|
+
* The `void *traverse_context` is passed in because we may need to pass in
|
|
298
|
+
* Interpreter state or similar in the future, but we don't want to pass in
|
|
299
|
+
* a full context (with pointers to dtypes, method, caller which all make
|
|
300
|
+
* no sense for a traverse function).
|
|
301
|
+
*
|
|
302
|
+
* We assume for now that this context can be just passed through in the
|
|
303
|
+
* the future (for structured dtypes).
|
|
304
|
+
*
|
|
305
|
+
*/
|
|
306
|
+
typedef int (PyArrayMethod_TraverseLoop)(
|
|
307
|
+
void *traverse_context, const PyArray_Descr *descr, char *data,
|
|
308
|
+
npy_intp size, npy_intp stride, NpyAuxData *auxdata);
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
/*
|
|
312
|
+
* Simplified get_loop function specific to dtype traversal
|
|
313
|
+
*
|
|
314
|
+
* It should set the flags needed for the traversal loop and set out_loop to the
|
|
315
|
+
* loop function, which must be a valid PyArrayMethod_TraverseLoop
|
|
316
|
+
* pointer. Currently this is used for zero-filling and clearing arrays storing
|
|
317
|
+
* embedded references.
|
|
318
|
+
*
|
|
319
|
+
*/
|
|
320
|
+
typedef int (PyArrayMethod_GetTraverseLoop)(
|
|
321
|
+
void *traverse_context, const PyArray_Descr *descr,
|
|
322
|
+
int aligned, npy_intp fixed_stride,
|
|
323
|
+
PyArrayMethod_TraverseLoop **out_loop, NpyAuxData **out_auxdata,
|
|
324
|
+
NPY_ARRAYMETHOD_FLAGS *flags);
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
/*
|
|
328
|
+
* Type of the C promoter function, which must be wrapped into a
|
|
329
|
+
* PyCapsule with name "numpy._ufunc_promoter".
|
|
330
|
+
*
|
|
331
|
+
* Note that currently the output dtypes are always NULL unless they are
|
|
332
|
+
* also part of the signature. This is an implementation detail and could
|
|
333
|
+
* change in the future. However, in general promoters should not have a
|
|
334
|
+
* need for output dtypes.
|
|
335
|
+
* (There are potential use-cases, these are currently unsupported.)
|
|
336
|
+
*/
|
|
337
|
+
typedef int (PyArrayMethod_PromoterFunction)(PyObject *ufunc,
|
|
338
|
+
PyArray_DTypeMeta *const op_dtypes[], PyArray_DTypeMeta *const signature[],
|
|
339
|
+
PyArray_DTypeMeta *new_op_dtypes[]);
|
|
340
|
+
|
|
341
|
+
/*
|
|
342
|
+
* ****************************
|
|
343
|
+
* DTYPE API
|
|
344
|
+
* ****************************
|
|
345
|
+
*/
|
|
346
|
+
|
|
347
|
+
#define NPY_DT_ABSTRACT 1 << 1
|
|
348
|
+
#define NPY_DT_PARAMETRIC 1 << 2
|
|
349
|
+
#define NPY_DT_NUMERIC 1 << 3
|
|
350
|
+
|
|
351
|
+
/*
|
|
352
|
+
* These correspond to slots in the NPY_DType_Slots struct and must
|
|
353
|
+
* be in the same order as the members of that struct. If new slots
|
|
354
|
+
* get added or old slots get removed NPY_NUM_DTYPE_SLOTS must also
|
|
355
|
+
* be updated
|
|
356
|
+
*/
|
|
357
|
+
|
|
358
|
+
#define NPY_DT_discover_descr_from_pyobject 1
|
|
359
|
+
// this slot is considered private because its API hasn't been decided
|
|
360
|
+
#define _NPY_DT_is_known_scalar_type 2
|
|
361
|
+
#define NPY_DT_default_descr 3
|
|
362
|
+
#define NPY_DT_common_dtype 4
|
|
363
|
+
#define NPY_DT_common_instance 5
|
|
364
|
+
#define NPY_DT_ensure_canonical 6
|
|
365
|
+
#define NPY_DT_setitem 7
|
|
366
|
+
#define NPY_DT_getitem 8
|
|
367
|
+
#define NPY_DT_get_clear_loop 9
|
|
368
|
+
#define NPY_DT_get_fill_zero_loop 10
|
|
369
|
+
#define NPY_DT_finalize_descr 11
|
|
370
|
+
|
|
371
|
+
// These PyArray_ArrFunc slots will be deprecated and replaced eventually
|
|
372
|
+
// getitem and setitem can be defined as a performance optimization;
|
|
373
|
+
// by default the user dtypes call `legacy_getitem_using_DType` and
|
|
374
|
+
// `legacy_setitem_using_DType`, respectively. This functionality is
|
|
375
|
+
// only supported for basic NumPy DTypes.
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
// used to separate dtype slots from arrfuncs slots
|
|
379
|
+
// intended only for internal use but defined here for clarity
|
|
380
|
+
#define _NPY_DT_ARRFUNCS_OFFSET (1 << 10)
|
|
381
|
+
|
|
382
|
+
// Cast is disabled
|
|
383
|
+
// #define NPY_DT_PyArray_ArrFuncs_cast 0 + _NPY_DT_ARRFUNCS_OFFSET
|
|
384
|
+
|
|
385
|
+
#define NPY_DT_PyArray_ArrFuncs_getitem 1 + _NPY_DT_ARRFUNCS_OFFSET
|
|
386
|
+
#define NPY_DT_PyArray_ArrFuncs_setitem 2 + _NPY_DT_ARRFUNCS_OFFSET
|
|
387
|
+
|
|
388
|
+
// Copyswap is disabled
|
|
389
|
+
// #define NPY_DT_PyArray_ArrFuncs_copyswapn 3 + _NPY_DT_ARRFUNCS_OFFSET
|
|
390
|
+
// #define NPY_DT_PyArray_ArrFuncs_copyswap 4 + _NPY_DT_ARRFUNCS_OFFSET
|
|
391
|
+
#define NPY_DT_PyArray_ArrFuncs_compare 5 + _NPY_DT_ARRFUNCS_OFFSET
|
|
392
|
+
#define NPY_DT_PyArray_ArrFuncs_argmax 6 + _NPY_DT_ARRFUNCS_OFFSET
|
|
393
|
+
#define NPY_DT_PyArray_ArrFuncs_dotfunc 7 + _NPY_DT_ARRFUNCS_OFFSET
|
|
394
|
+
#define NPY_DT_PyArray_ArrFuncs_scanfunc 8 + _NPY_DT_ARRFUNCS_OFFSET
|
|
395
|
+
#define NPY_DT_PyArray_ArrFuncs_fromstr 9 + _NPY_DT_ARRFUNCS_OFFSET
|
|
396
|
+
#define NPY_DT_PyArray_ArrFuncs_nonzero 10 + _NPY_DT_ARRFUNCS_OFFSET
|
|
397
|
+
#define NPY_DT_PyArray_ArrFuncs_fill 11 + _NPY_DT_ARRFUNCS_OFFSET
|
|
398
|
+
#define NPY_DT_PyArray_ArrFuncs_fillwithscalar 12 + _NPY_DT_ARRFUNCS_OFFSET
|
|
399
|
+
#define NPY_DT_PyArray_ArrFuncs_sort 13 + _NPY_DT_ARRFUNCS_OFFSET
|
|
400
|
+
#define NPY_DT_PyArray_ArrFuncs_argsort 14 + _NPY_DT_ARRFUNCS_OFFSET
|
|
401
|
+
|
|
402
|
+
// Casting related slots are disabled. See
|
|
403
|
+
// https://github.com/numpy/numpy/pull/23173#discussion_r1101098163
|
|
404
|
+
// #define NPY_DT_PyArray_ArrFuncs_castdict 15 + _NPY_DT_ARRFUNCS_OFFSET
|
|
405
|
+
// #define NPY_DT_PyArray_ArrFuncs_scalarkind 16 + _NPY_DT_ARRFUNCS_OFFSET
|
|
406
|
+
// #define NPY_DT_PyArray_ArrFuncs_cancastscalarkindto 17 + _NPY_DT_ARRFUNCS_OFFSET
|
|
407
|
+
// #define NPY_DT_PyArray_ArrFuncs_cancastto 18 + _NPY_DT_ARRFUNCS_OFFSET
|
|
408
|
+
|
|
409
|
+
// These are deprecated in NumPy 1.19, so are disabled here.
|
|
410
|
+
// #define NPY_DT_PyArray_ArrFuncs_fastclip 19 + _NPY_DT_ARRFUNCS_OFFSET
|
|
411
|
+
// #define NPY_DT_PyArray_ArrFuncs_fastputmask 20 + _NPY_DT_ARRFUNCS_OFFSET
|
|
412
|
+
// #define NPY_DT_PyArray_ArrFuncs_fasttake 21 + _NPY_DT_ARRFUNCS_OFFSET
|
|
413
|
+
#define NPY_DT_PyArray_ArrFuncs_argmin 22 + _NPY_DT_ARRFUNCS_OFFSET
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
// TODO: These slots probably still need some thought, and/or a way to "grow"?
|
|
417
|
+
typedef struct {
|
|
418
|
+
PyTypeObject *typeobj; /* type of python scalar or NULL */
|
|
419
|
+
int flags; /* flags, including parametric and abstract */
|
|
420
|
+
/* NULL terminated cast definitions. Use NULL for the newly created DType */
|
|
421
|
+
PyArrayMethod_Spec **casts;
|
|
422
|
+
PyType_Slot *slots;
|
|
423
|
+
/* Baseclass or NULL (will always subclass `np.dtype`) */
|
|
424
|
+
PyTypeObject *baseclass;
|
|
425
|
+
} PyArrayDTypeMeta_Spec;
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
typedef PyArray_Descr *(PyArrayDTypeMeta_DiscoverDescrFromPyobject)(
|
|
429
|
+
PyArray_DTypeMeta *cls, PyObject *obj);
|
|
430
|
+
|
|
431
|
+
/*
|
|
432
|
+
* Before making this public, we should decide whether it should pass
|
|
433
|
+
* the type, or allow looking at the object. A possible use-case:
|
|
434
|
+
* `np.array(np.array([0]), dtype=np.ndarray)`
|
|
435
|
+
* Could consider arrays that are not `dtype=ndarray` "scalars".
|
|
436
|
+
*/
|
|
437
|
+
typedef int (PyArrayDTypeMeta_IsKnownScalarType)(
|
|
438
|
+
PyArray_DTypeMeta *cls, PyTypeObject *obj);
|
|
439
|
+
|
|
440
|
+
typedef PyArray_Descr *(PyArrayDTypeMeta_DefaultDescriptor)(PyArray_DTypeMeta *cls);
|
|
441
|
+
typedef PyArray_DTypeMeta *(PyArrayDTypeMeta_CommonDType)(
|
|
442
|
+
PyArray_DTypeMeta *dtype1, PyArray_DTypeMeta *dtype2);
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
/*
|
|
446
|
+
* Convenience utility for getting a reference to the DType metaclass associated
|
|
447
|
+
* with a dtype instance.
|
|
448
|
+
*/
|
|
449
|
+
#define NPY_DTYPE(descr) ((PyArray_DTypeMeta *)Py_TYPE(descr))
|
|
450
|
+
|
|
451
|
+
static inline PyArray_DTypeMeta *
|
|
452
|
+
NPY_DT_NewRef(PyArray_DTypeMeta *o) {
|
|
453
|
+
Py_INCREF((PyObject *)o);
|
|
454
|
+
return o;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
typedef PyArray_Descr *(PyArrayDTypeMeta_CommonInstance)(
|
|
459
|
+
PyArray_Descr *dtype1, PyArray_Descr *dtype2);
|
|
460
|
+
typedef PyArray_Descr *(PyArrayDTypeMeta_EnsureCanonical)(PyArray_Descr *dtype);
|
|
461
|
+
/*
|
|
462
|
+
* Returns either a new reference to *dtype* or a new descriptor instance
|
|
463
|
+
* initialized with the same parameters as *dtype*. The caller cannot know
|
|
464
|
+
* which choice a dtype will make. This function is called just before the
|
|
465
|
+
* array buffer is created for a newly created array, it is not called for
|
|
466
|
+
* views and the descriptor returned by this function is attached to the array.
|
|
467
|
+
*/
|
|
468
|
+
typedef PyArray_Descr *(PyArrayDTypeMeta_FinalizeDescriptor)(PyArray_Descr *dtype);
|
|
469
|
+
|
|
470
|
+
/*
|
|
471
|
+
* TODO: These two functions are currently only used for experimental DType
|
|
472
|
+
* API support. Their relation should be "reversed": NumPy should
|
|
473
|
+
* always use them internally.
|
|
474
|
+
* There are open points about "casting safety" though, e.g. setting
|
|
475
|
+
* elements is currently always unsafe.
|
|
476
|
+
*/
|
|
477
|
+
typedef int(PyArrayDTypeMeta_SetItem)(PyArray_Descr *, PyObject *, char *);
|
|
478
|
+
typedef PyObject *(PyArrayDTypeMeta_GetItem)(PyArray_Descr *, char *);
|
|
479
|
+
|
|
480
|
+
#endif /* NUMPY_CORE_INCLUDE_NUMPY___DTYPE_API_H_ */
|