Spaces:
Sleeping
Sleeping
Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +18 -0
- .venv/.gitignore +1 -0
- .venv/.lock +0 -0
- .venv/CACHEDIR.TAG +1 -0
- .venv/bin/activate +130 -0
- .venv/bin/activate.bat +71 -0
- .venv/bin/activate.csh +76 -0
- .venv/bin/activate.fish +124 -0
- .venv/bin/activate.nu +102 -0
- .venv/bin/activate.ps1 +82 -0
- .venv/bin/activate_this.py +59 -0
- .venv/bin/deactivate.bat +39 -0
- .venv/bin/f2py +10 -0
- .venv/bin/numpy-config +10 -0
- .venv/bin/pydoc.bat +22 -0
- .venv/bin/python +0 -0
- .venv/bin/python3 +0 -0
- .venv/bin/python3.10 +0 -0
- .venv/lib/python3.10/site-packages/__pycache__/_virtualenv.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/_virtualenv.pth +3 -0
- .venv/lib/python3.10/site-packages/_virtualenv.py +101 -0
- .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/INSTALLER +1 -0
- .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/LICENSE.txt +970 -0
- .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/METADATA +1091 -0
- .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/RECORD +1005 -0
- .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/REQUESTED +0 -0
- .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/WHEEL +4 -0
- .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/entry_points.txt +10 -0
- .venv/lib/python3.10/site-packages/numpy/__config__.py +170 -0
- .venv/lib/python3.10/site-packages/numpy/__config__.pyi +102 -0
- .venv/lib/python3.10/site-packages/numpy/__init__.cython-30.pxd +1250 -0
- .venv/lib/python3.10/site-packages/numpy/__init__.pxd +1164 -0
- .venv/lib/python3.10/site-packages/numpy/__init__.py +547 -0
- .venv/lib/python3.10/site-packages/numpy/__init__.pyi +0 -0
- .venv/lib/python3.10/site-packages/numpy/__pycache__/__config__.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/numpy/__pycache__/__init__.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/numpy/__pycache__/_array_api_info.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/numpy/__pycache__/_distributor_init.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/numpy/__pycache__/_expired_attrs_2_0.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/numpy/__pycache__/_globals.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/numpy/__pycache__/_pytesttester.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/numpy/__pycache__/dtypes.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/numpy/__pycache__/exceptions.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/numpy/__pycache__/version.cpython-310.pyc +0 -0
- .venv/lib/python3.10/site-packages/numpy/_array_api_info.py +346 -0
- .venv/lib/python3.10/site-packages/numpy/_array_api_info.pyi +210 -0
- .venv/lib/python3.10/site-packages/numpy/_configtool.py +39 -0
- .venv/lib/python3.10/site-packages/numpy/_configtool.pyi +1 -0
- .venv/lib/python3.10/site-packages/numpy/_core/__init__.py +180 -0
- .venv/lib/python3.10/site-packages/numpy/_core/__init__.pyi +2 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,21 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
.venv/lib/python3.10/site-packages/numpy/_core/__pycache__/_add_newdocs.cpython-310.pyc filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
.venv/lib/python3.10/site-packages/numpy/_core/__pycache__/fromnumeric.cpython-310.pyc filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
.venv/lib/python3.10/site-packages/numpy/_core/_multiarray_tests.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
.venv/lib/python3.10/site-packages/numpy/_core/_multiarray_umath.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
.venv/lib/python3.10/site-packages/numpy/_core/_simd.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
.venv/lib/python3.10/site-packages/numpy/fft/_pocketfft_umath.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
.venv/lib/python3.10/site-packages/numpy/lib/__pycache__/_function_base_impl.cpython-310.pyc filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
.venv/lib/python3.10/site-packages/numpy/linalg/__pycache__/_linalg.cpython-310.pyc filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
.venv/lib/python3.10/site-packages/numpy/linalg/_umath_linalg.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
.venv/lib/python3.10/site-packages/numpy/random/_bounded_integers.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
.venv/lib/python3.10/site-packages/numpy/random/_common.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
.venv/lib/python3.10/site-packages/numpy/random/_generator.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
.venv/lib/python3.10/site-packages/numpy/random/_mt19937.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
.venv/lib/python3.10/site-packages/numpy/random/_pcg64.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
.venv/lib/python3.10/site-packages/numpy/random/_philox.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 51 |
+
.venv/lib/python3.10/site-packages/numpy/random/bit_generator.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 52 |
+
.venv/lib/python3.10/site-packages/numpy/random/mtrand.cpython-310-darwin.so filter=lfs diff=lfs merge=lfs -text
|
| 53 |
+
text8 filter=lfs diff=lfs merge=lfs -text
|
.venv/.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
*
|
.venv/.lock
ADDED
|
File without changes
|
.venv/CACHEDIR.TAG
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
Signature: 8a477f597d28d172789f06886806bc55
|
.venv/bin/activate
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) 2020-202x The virtualenv developers
|
| 2 |
+
#
|
| 3 |
+
# Permission is hereby granted, free of charge, to any person obtaining
|
| 4 |
+
# a copy of this software and associated documentation files (the
|
| 5 |
+
# "Software"), to deal in the Software without restriction, including
|
| 6 |
+
# without limitation the rights to use, copy, modify, merge, publish,
|
| 7 |
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
| 8 |
+
# permit persons to whom the Software is furnished to do so, subject to
|
| 9 |
+
# the following conditions:
|
| 10 |
+
#
|
| 11 |
+
# The above copyright notice and this permission notice shall be
|
| 12 |
+
# included in all copies or substantial portions of the Software.
|
| 13 |
+
#
|
| 14 |
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 15 |
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 16 |
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| 17 |
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
| 18 |
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
| 19 |
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
| 20 |
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 21 |
+
|
| 22 |
+
# This file must be used with "source bin/activate" *from bash*
|
| 23 |
+
# you cannot run it directly
|
| 24 |
+
|
| 25 |
+
if ! [ -z "${SCRIPT_PATH+_}" ] ; then
|
| 26 |
+
_OLD_SCRIPT_PATH="$SCRIPT_PATH"
|
| 27 |
+
fi
|
| 28 |
+
|
| 29 |
+
# Get script path (only used if environment is relocatable).
|
| 30 |
+
if [ -n "${BASH_VERSION:+x}" ] ; then
|
| 31 |
+
SCRIPT_PATH="${BASH_SOURCE[0]}"
|
| 32 |
+
if [ "$SCRIPT_PATH" = "$0" ]; then
|
| 33 |
+
# Only bash has a reasonably robust check for source'dness.
|
| 34 |
+
echo "You must source this script: \$ source $0" >&2
|
| 35 |
+
exit 33
|
| 36 |
+
fi
|
| 37 |
+
elif [ -n "${ZSH_VERSION:+x}" ] ; then
|
| 38 |
+
SCRIPT_PATH="${(%):-%x}"
|
| 39 |
+
elif [ -n "${KSH_VERSION:+x}" ] ; then
|
| 40 |
+
SCRIPT_PATH="${.sh.file}"
|
| 41 |
+
fi
|
| 42 |
+
|
| 43 |
+
deactivate () {
|
| 44 |
+
unset -f pydoc >/dev/null 2>&1 || true
|
| 45 |
+
|
| 46 |
+
# reset old environment variables
|
| 47 |
+
# ! [ -z ${VAR+_} ] returns true if VAR is declared at all
|
| 48 |
+
if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then
|
| 49 |
+
PATH="$_OLD_VIRTUAL_PATH"
|
| 50 |
+
export PATH
|
| 51 |
+
unset _OLD_VIRTUAL_PATH
|
| 52 |
+
fi
|
| 53 |
+
if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
|
| 54 |
+
PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
|
| 55 |
+
export PYTHONHOME
|
| 56 |
+
unset _OLD_VIRTUAL_PYTHONHOME
|
| 57 |
+
fi
|
| 58 |
+
|
| 59 |
+
# The hash command must be called to get it to forget past
|
| 60 |
+
# commands. Without forgetting past commands the $PATH changes
|
| 61 |
+
# we made may not be respected
|
| 62 |
+
hash -r 2>/dev/null
|
| 63 |
+
|
| 64 |
+
if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then
|
| 65 |
+
PS1="$_OLD_VIRTUAL_PS1"
|
| 66 |
+
export PS1
|
| 67 |
+
unset _OLD_VIRTUAL_PS1
|
| 68 |
+
fi
|
| 69 |
+
|
| 70 |
+
unset VIRTUAL_ENV
|
| 71 |
+
unset VIRTUAL_ENV_PROMPT
|
| 72 |
+
if [ ! "${1-}" = "nondestructive" ] ; then
|
| 73 |
+
# Self destruct!
|
| 74 |
+
unset -f deactivate
|
| 75 |
+
fi
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
# unset irrelevant variables
|
| 79 |
+
deactivate nondestructive
|
| 80 |
+
|
| 81 |
+
VIRTUAL_ENV='/Users/shreyas/work/rnd/personal/spaces/microembeddings/.venv'
|
| 82 |
+
if ([ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ]) && $(command -v cygpath &> /dev/null) ; then
|
| 83 |
+
VIRTUAL_ENV=$(cygpath -u "$VIRTUAL_ENV")
|
| 84 |
+
fi
|
| 85 |
+
export VIRTUAL_ENV
|
| 86 |
+
|
| 87 |
+
# Unset the `SCRIPT_PATH` variable, now that the `VIRTUAL_ENV` variable
|
| 88 |
+
# has been set. This is important for relocatable environments.
|
| 89 |
+
if ! [ -z "${_OLD_SCRIPT_PATH+_}" ] ; then
|
| 90 |
+
SCRIPT_PATH="$_OLD_SCRIPT_PATH"
|
| 91 |
+
export SCRIPT_PATH
|
| 92 |
+
unset _OLD_SCRIPT_PATH
|
| 93 |
+
else
|
| 94 |
+
unset SCRIPT_PATH
|
| 95 |
+
fi
|
| 96 |
+
|
| 97 |
+
_OLD_VIRTUAL_PATH="$PATH"
|
| 98 |
+
PATH="$VIRTUAL_ENV/bin:$PATH"
|
| 99 |
+
export PATH
|
| 100 |
+
|
| 101 |
+
if [ "xmicroembeddings" != x ] ; then
|
| 102 |
+
VIRTUAL_ENV_PROMPT="microembeddings"
|
| 103 |
+
else
|
| 104 |
+
VIRTUAL_ENV_PROMPT=$(basename "$VIRTUAL_ENV")
|
| 105 |
+
fi
|
| 106 |
+
export VIRTUAL_ENV_PROMPT
|
| 107 |
+
|
| 108 |
+
# unset PYTHONHOME if set
|
| 109 |
+
if ! [ -z "${PYTHONHOME+_}" ] ; then
|
| 110 |
+
_OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
|
| 111 |
+
unset PYTHONHOME
|
| 112 |
+
fi
|
| 113 |
+
|
| 114 |
+
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
|
| 115 |
+
_OLD_VIRTUAL_PS1="${PS1-}"
|
| 116 |
+
PS1="(${VIRTUAL_ENV_PROMPT}) ${PS1-}"
|
| 117 |
+
export PS1
|
| 118 |
+
fi
|
| 119 |
+
|
| 120 |
+
# Make sure to unalias pydoc if it's already there
|
| 121 |
+
alias pydoc 2>/dev/null >/dev/null && unalias pydoc || true
|
| 122 |
+
|
| 123 |
+
pydoc () {
|
| 124 |
+
python -m pydoc "$@"
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
# The hash command must be called to get it to forget past
|
| 128 |
+
# commands. Without forgetting past commands the $PATH changes
|
| 129 |
+
# we made may not be respected
|
| 130 |
+
hash -r 2>/dev/null || true
|
.venv/bin/activate.bat
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@REM Copyright (c) 2020-202x The virtualenv developers
|
| 2 |
+
@REM
|
| 3 |
+
@REM Permission is hereby granted, free of charge, to any person obtaining
|
| 4 |
+
@REM a copy of this software and associated documentation files (the
|
| 5 |
+
@REM "Software"), to deal in the Software without restriction, including
|
| 6 |
+
@REM without limitation the rights to use, copy, modify, merge, publish,
|
| 7 |
+
@REM distribute, sublicense, and/or sell copies of the Software, and to
|
| 8 |
+
@REM permit persons to whom the Software is furnished to do so, subject to
|
| 9 |
+
@REM the following conditions:
|
| 10 |
+
@REM
|
| 11 |
+
@REM The above copyright notice and this permission notice shall be
|
| 12 |
+
@REM included in all copies or substantial portions of the Software.
|
| 13 |
+
@REM
|
| 14 |
+
@REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 15 |
+
@REM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 16 |
+
@REM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| 17 |
+
@REM NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
| 18 |
+
@REM LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
| 19 |
+
@REM OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
| 20 |
+
@REM WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 21 |
+
|
| 22 |
+
@REM This file is UTF-8 encoded, so we need to update the current code page while executing it
|
| 23 |
+
@for /f "tokens=2 delims=:." %%a in ('"%SystemRoot%\System32\chcp.com"') do @set _OLD_CODEPAGE=%%a
|
| 24 |
+
|
| 25 |
+
@if defined _OLD_CODEPAGE (
|
| 26 |
+
"%SystemRoot%\System32\chcp.com" 65001 > nul
|
| 27 |
+
)
|
| 28 |
+
|
| 29 |
+
@for %%i in ("/Users/shreyas/work/rnd/personal/spaces/microembeddings/.venv") do @set "VIRTUAL_ENV=%%~fi"
|
| 30 |
+
|
| 31 |
+
@set "VIRTUAL_ENV_PROMPT=microembeddings"
|
| 32 |
+
@if NOT DEFINED VIRTUAL_ENV_PROMPT (
|
| 33 |
+
@for %%d in ("%VIRTUAL_ENV%") do @set "VIRTUAL_ENV_PROMPT=%%~nxd"
|
| 34 |
+
)
|
| 35 |
+
|
| 36 |
+
@if defined _OLD_VIRTUAL_PROMPT (
|
| 37 |
+
@set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
|
| 38 |
+
) else (
|
| 39 |
+
@if not defined PROMPT (
|
| 40 |
+
@set "PROMPT=$P$G"
|
| 41 |
+
)
|
| 42 |
+
@if not defined VIRTUAL_ENV_DISABLE_PROMPT (
|
| 43 |
+
@set "_OLD_VIRTUAL_PROMPT=%PROMPT%"
|
| 44 |
+
)
|
| 45 |
+
)
|
| 46 |
+
@if not defined VIRTUAL_ENV_DISABLE_PROMPT (
|
| 47 |
+
@set "PROMPT=(%VIRTUAL_ENV_PROMPT%) %PROMPT%"
|
| 48 |
+
)
|
| 49 |
+
|
| 50 |
+
@REM Don't use () to avoid problems with them in %PATH%
|
| 51 |
+
@if defined _OLD_VIRTUAL_PYTHONHOME @goto ENDIFVHOME
|
| 52 |
+
@set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%"
|
| 53 |
+
:ENDIFVHOME
|
| 54 |
+
|
| 55 |
+
@set PYTHONHOME=
|
| 56 |
+
|
| 57 |
+
@REM if defined _OLD_VIRTUAL_PATH (
|
| 58 |
+
@if not defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH1
|
| 59 |
+
@set "PATH=%_OLD_VIRTUAL_PATH%"
|
| 60 |
+
:ENDIFVPATH1
|
| 61 |
+
@REM ) else (
|
| 62 |
+
@if defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH2
|
| 63 |
+
@set "_OLD_VIRTUAL_PATH=%PATH%"
|
| 64 |
+
:ENDIFVPATH2
|
| 65 |
+
|
| 66 |
+
@set "PATH=%VIRTUAL_ENV%\bin;%PATH%"
|
| 67 |
+
|
| 68 |
+
@if defined _OLD_CODEPAGE (
|
| 69 |
+
"%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul
|
| 70 |
+
@set _OLD_CODEPAGE=
|
| 71 |
+
)
|
.venv/bin/activate.csh
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) 2020-202x The virtualenv developers
|
| 2 |
+
#
|
| 3 |
+
# Permission is hereby granted, free of charge, to any person obtaining
|
| 4 |
+
# a copy of this software and associated documentation files (the
|
| 5 |
+
# "Software"), to deal in the Software without restriction, including
|
| 6 |
+
# without limitation the rights to use, copy, modify, merge, publish,
|
| 7 |
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
| 8 |
+
# permit persons to whom the Software is furnished to do so, subject to
|
| 9 |
+
# the following conditions:
|
| 10 |
+
#
|
| 11 |
+
# The above copyright notice and this permission notice shall be
|
| 12 |
+
# included in all copies or substantial portions of the Software.
|
| 13 |
+
#
|
| 14 |
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 15 |
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 16 |
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| 17 |
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
| 18 |
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
| 19 |
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
| 20 |
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 21 |
+
|
| 22 |
+
# This file must be used with "source bin/activate.csh" *from csh*.
|
| 23 |
+
# You cannot run it directly.
|
| 24 |
+
# Created by Davide Di Blasi <davidedb@gmail.com>.
|
| 25 |
+
|
| 26 |
+
set newline='\
|
| 27 |
+
'
|
| 28 |
+
|
| 29 |
+
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH:q" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT:q" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc'
|
| 30 |
+
|
| 31 |
+
# Unset irrelevant variables.
|
| 32 |
+
deactivate nondestructive
|
| 33 |
+
|
| 34 |
+
setenv VIRTUAL_ENV '/Users/shreyas/work/rnd/personal/spaces/microembeddings/.venv'
|
| 35 |
+
|
| 36 |
+
set _OLD_VIRTUAL_PATH="$PATH:q"
|
| 37 |
+
setenv PATH "$VIRTUAL_ENV:q/bin:$PATH:q"
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
if ('microembeddings' != "") then
|
| 42 |
+
setenv VIRTUAL_ENV_PROMPT 'microembeddings'
|
| 43 |
+
else
|
| 44 |
+
setenv VIRTUAL_ENV_PROMPT "$VIRTUAL_ENV:t:q"
|
| 45 |
+
endif
|
| 46 |
+
|
| 47 |
+
if ( $?VIRTUAL_ENV_DISABLE_PROMPT ) then
|
| 48 |
+
if ( $VIRTUAL_ENV_DISABLE_PROMPT == "" ) then
|
| 49 |
+
set do_prompt = "1"
|
| 50 |
+
else
|
| 51 |
+
set do_prompt = "0"
|
| 52 |
+
endif
|
| 53 |
+
else
|
| 54 |
+
set do_prompt = "1"
|
| 55 |
+
endif
|
| 56 |
+
|
| 57 |
+
if ( $do_prompt == "1" ) then
|
| 58 |
+
# Could be in a non-interactive environment,
|
| 59 |
+
# in which case, $prompt is undefined and we wouldn't
|
| 60 |
+
# care about the prompt anyway.
|
| 61 |
+
if ( $?prompt ) then
|
| 62 |
+
set _OLD_VIRTUAL_PROMPT="$prompt:q"
|
| 63 |
+
if ( "$prompt:q" =~ *"$newline:q"* ) then
|
| 64 |
+
:
|
| 65 |
+
else
|
| 66 |
+
set prompt = '('"$VIRTUAL_ENV_PROMPT:q"') '"$prompt:q"
|
| 67 |
+
endif
|
| 68 |
+
endif
|
| 69 |
+
endif
|
| 70 |
+
|
| 71 |
+
unset env_name
|
| 72 |
+
unset do_prompt
|
| 73 |
+
|
| 74 |
+
alias pydoc python -m pydoc
|
| 75 |
+
|
| 76 |
+
rehash
|
.venv/bin/activate.fish
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) 2020-202x The virtualenv developers
|
| 2 |
+
#
|
| 3 |
+
# Permission is hereby granted, free of charge, to any person obtaining
|
| 4 |
+
# a copy of this software and associated documentation files (the
|
| 5 |
+
# "Software"), to deal in the Software without restriction, including
|
| 6 |
+
# without limitation the rights to use, copy, modify, merge, publish,
|
| 7 |
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
| 8 |
+
# permit persons to whom the Software is furnished to do so, subject to
|
| 9 |
+
# the following conditions:
|
| 10 |
+
#
|
| 11 |
+
# The above copyright notice and this permission notice shall be
|
| 12 |
+
# included in all copies or substantial portions of the Software.
|
| 13 |
+
#
|
| 14 |
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 15 |
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 16 |
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| 17 |
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
| 18 |
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
| 19 |
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
| 20 |
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 21 |
+
|
| 22 |
+
# This file must be used using `source bin/activate.fish` *within a running fish ( http://fishshell.com ) session*.
|
| 23 |
+
# Do not run it directly.
|
| 24 |
+
|
| 25 |
+
function _bashify_path -d "Converts a fish path to something bash can recognize"
|
| 26 |
+
set fishy_path $argv
|
| 27 |
+
set bashy_path $fishy_path[1]
|
| 28 |
+
for path_part in $fishy_path[2..-1]
|
| 29 |
+
set bashy_path "$bashy_path:$path_part"
|
| 30 |
+
end
|
| 31 |
+
echo $bashy_path
|
| 32 |
+
end
|
| 33 |
+
|
| 34 |
+
function _fishify_path -d "Converts a bash path to something fish can recognize"
|
| 35 |
+
echo $argv | tr ':' '\n'
|
| 36 |
+
end
|
| 37 |
+
|
| 38 |
+
function deactivate -d 'Exit virtualenv mode and return to the normal environment.'
|
| 39 |
+
# reset old environment variables
|
| 40 |
+
if test -n "$_OLD_VIRTUAL_PATH"
|
| 41 |
+
# https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling
|
| 42 |
+
if test (string sub -s 1 -l 1 $FISH_VERSION) -lt 3
|
| 43 |
+
set -gx PATH (_fishify_path "$_OLD_VIRTUAL_PATH")
|
| 44 |
+
else
|
| 45 |
+
set -gx PATH $_OLD_VIRTUAL_PATH
|
| 46 |
+
end
|
| 47 |
+
set -e _OLD_VIRTUAL_PATH
|
| 48 |
+
end
|
| 49 |
+
|
| 50 |
+
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
|
| 51 |
+
set -gx PYTHONHOME "$_OLD_VIRTUAL_PYTHONHOME"
|
| 52 |
+
set -e _OLD_VIRTUAL_PYTHONHOME
|
| 53 |
+
end
|
| 54 |
+
|
| 55 |
+
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
|
| 56 |
+
and functions -q _old_fish_prompt
|
| 57 |
+
# Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`.
|
| 58 |
+
set -l fish_function_path
|
| 59 |
+
|
| 60 |
+
# Erase virtualenv's `fish_prompt` and restore the original.
|
| 61 |
+
functions -e fish_prompt
|
| 62 |
+
functions -c _old_fish_prompt fish_prompt
|
| 63 |
+
functions -e _old_fish_prompt
|
| 64 |
+
set -e _OLD_FISH_PROMPT_OVERRIDE
|
| 65 |
+
end
|
| 66 |
+
|
| 67 |
+
set -e VIRTUAL_ENV
|
| 68 |
+
set -e VIRTUAL_ENV_PROMPT
|
| 69 |
+
|
| 70 |
+
if test "$argv[1]" != 'nondestructive'
|
| 71 |
+
# Self-destruct!
|
| 72 |
+
functions -e pydoc
|
| 73 |
+
functions -e deactivate
|
| 74 |
+
functions -e _bashify_path
|
| 75 |
+
functions -e _fishify_path
|
| 76 |
+
end
|
| 77 |
+
end
|
| 78 |
+
|
| 79 |
+
# Unset irrelevant variables.
|
| 80 |
+
deactivate nondestructive
|
| 81 |
+
|
| 82 |
+
set -gx VIRTUAL_ENV '/Users/shreyas/work/rnd/personal/spaces/microembeddings/.venv'
|
| 83 |
+
|
| 84 |
+
# https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling
|
| 85 |
+
if test (string sub -s 1 -l 1 $FISH_VERSION) -lt 3
|
| 86 |
+
set -gx _OLD_VIRTUAL_PATH (_bashify_path $PATH)
|
| 87 |
+
else
|
| 88 |
+
set -gx _OLD_VIRTUAL_PATH $PATH
|
| 89 |
+
end
|
| 90 |
+
set -gx PATH "$VIRTUAL_ENV"'/bin' $PATH
|
| 91 |
+
|
| 92 |
+
# Prompt override provided?
|
| 93 |
+
# If not, just use the environment name.
|
| 94 |
+
if test -n 'microembeddings'
|
| 95 |
+
set -gx VIRTUAL_ENV_PROMPT 'microembeddings'
|
| 96 |
+
else
|
| 97 |
+
set -gx VIRTUAL_ENV_PROMPT (basename "$VIRTUAL_ENV")
|
| 98 |
+
end
|
| 99 |
+
|
| 100 |
+
# Unset `$PYTHONHOME` if set.
|
| 101 |
+
if set -q PYTHONHOME
|
| 102 |
+
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
|
| 103 |
+
set -e PYTHONHOME
|
| 104 |
+
end
|
| 105 |
+
|
| 106 |
+
function pydoc
|
| 107 |
+
python -m pydoc $argv
|
| 108 |
+
end
|
| 109 |
+
|
| 110 |
+
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
|
| 111 |
+
# Copy the current `fish_prompt` function as `_old_fish_prompt`.
|
| 112 |
+
functions -c fish_prompt _old_fish_prompt
|
| 113 |
+
|
| 114 |
+
function fish_prompt
|
| 115 |
+
# Run the user's prompt first; it might depend on (pipe)status.
|
| 116 |
+
set -l prompt (_old_fish_prompt)
|
| 117 |
+
|
| 118 |
+
printf '(%s) ' $VIRTUAL_ENV_PROMPT
|
| 119 |
+
|
| 120 |
+
string join -- \n $prompt # handle multi-line prompts
|
| 121 |
+
end
|
| 122 |
+
|
| 123 |
+
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
|
| 124 |
+
end
|
.venv/bin/activate.nu
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) 2020-202x The virtualenv developers
|
| 2 |
+
#
|
| 3 |
+
# Permission is hereby granted, free of charge, to any person obtaining
|
| 4 |
+
# a copy of this software and associated documentation files (the
|
| 5 |
+
# "Software"), to deal in the Software without restriction, including
|
| 6 |
+
# without limitation the rights to use, copy, modify, merge, publish,
|
| 7 |
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
| 8 |
+
# permit persons to whom the Software is furnished to do so, subject to
|
| 9 |
+
# the following conditions:
|
| 10 |
+
#
|
| 11 |
+
# The above copyright notice and this permission notice shall be
|
| 12 |
+
# included in all copies or substantial portions of the Software.
|
| 13 |
+
#
|
| 14 |
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 15 |
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 16 |
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| 17 |
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
| 18 |
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
| 19 |
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
| 20 |
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 21 |
+
|
| 22 |
+
# virtualenv activation module:
|
| 23 |
+
# - Activate with `overlay use activate.nu`
|
| 24 |
+
# - Deactivate with `deactivate`, as usual
|
| 25 |
+
#
|
| 26 |
+
# To customize the overlay name, you can call `overlay use activate.nu as foo`, but then simply `deactivate` won't work
|
| 27 |
+
# because it is just an alias to hide the "activate" overlay. You'd need to call `overlay hide foo` manually.
|
| 28 |
+
|
| 29 |
+
module warning {
|
| 30 |
+
export-env {
|
| 31 |
+
const file = path self
|
| 32 |
+
error make -u {
|
| 33 |
+
msg: $"`($file | path basename)` is meant to be used with `overlay use`, not `source`"
|
| 34 |
+
}
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
use warning
|
| 40 |
+
|
| 41 |
+
export-env {
|
| 42 |
+
|
| 43 |
+
let nu_ver = (version | get version | split row '.' | take 2 | each { into int })
|
| 44 |
+
if $nu_ver.0 == 0 and $nu_ver.1 < 106 {
|
| 45 |
+
error make {
|
| 46 |
+
msg: 'virtualenv Nushell activation requires Nushell 0.106 or greater.'
|
| 47 |
+
}
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
def is-string [x] {
|
| 51 |
+
($x | describe) == 'string'
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
def has-env [...names] {
|
| 55 |
+
$names | each {|n| $n in $env } | all {|i| $i }
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
def is-env-true [name: string] {
|
| 59 |
+
if (has-env $name) {
|
| 60 |
+
let val = ($env | get --optional $name)
|
| 61 |
+
if ($val | describe) == 'bool' {
|
| 62 |
+
$val
|
| 63 |
+
} else {
|
| 64 |
+
not ($val | is-empty)
|
| 65 |
+
}
|
| 66 |
+
} else {
|
| 67 |
+
false
|
| 68 |
+
}
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
let virtual_env = '/Users/shreyas/work/rnd/personal/spaces/microembeddings/.venv'
|
| 72 |
+
let bin = 'bin'
|
| 73 |
+
let path_name = if (has-env 'Path') { 'Path' } else { 'PATH' }
|
| 74 |
+
let venv_path = ([$virtual_env $bin] | path join)
|
| 75 |
+
let new_path = ($env | get $path_name | prepend $venv_path)
|
| 76 |
+
let virtual_env_prompt = if ('microembeddings' | is-empty) {
|
| 77 |
+
($virtual_env | path basename)
|
| 78 |
+
} else {
|
| 79 |
+
'microembeddings'
|
| 80 |
+
}
|
| 81 |
+
let new_env = { $path_name: $new_path VIRTUAL_ENV: $virtual_env VIRTUAL_ENV_PROMPT: $virtual_env_prompt }
|
| 82 |
+
let old_prompt_command = if (has-env 'PROMPT_COMMAND') { $env.PROMPT_COMMAND } else { '' }
|
| 83 |
+
let new_env = if (is-env-true 'VIRTUAL_ENV_DISABLE_PROMPT') {
|
| 84 |
+
$new_env
|
| 85 |
+
} else {
|
| 86 |
+
let virtual_prefix = $'(char lparen)($virtual_env_prompt)(char rparen) '
|
| 87 |
+
let new_prompt = if (has-env 'PROMPT_COMMAND') {
|
| 88 |
+
if ('closure' in ($old_prompt_command | describe)) {
|
| 89 |
+
{|| $'($virtual_prefix)(do $old_prompt_command)' }
|
| 90 |
+
} else {
|
| 91 |
+
{|| $'($virtual_prefix)($old_prompt_command)' }
|
| 92 |
+
}
|
| 93 |
+
} else {
|
| 94 |
+
{|| $'($virtual_prefix)' }
|
| 95 |
+
}
|
| 96 |
+
$new_env | merge { PROMPT_COMMAND: $new_prompt VIRTUAL_PREFIX: $virtual_prefix }
|
| 97 |
+
}
|
| 98 |
+
load-env $new_env
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
export alias pydoc = python -m pydoc
|
| 102 |
+
export alias deactivate = overlay hide activate
|
.venv/bin/activate.ps1
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) 2020-202x The virtualenv developers
|
| 2 |
+
#
|
| 3 |
+
# Permission is hereby granted, free of charge, to any person obtaining
|
| 4 |
+
# a copy of this software and associated documentation files (the
|
| 5 |
+
# "Software"), to deal in the Software without restriction, including
|
| 6 |
+
# without limitation the rights to use, copy, modify, merge, publish,
|
| 7 |
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
| 8 |
+
# permit persons to whom the Software is furnished to do so, subject to
|
| 9 |
+
# the following conditions:
|
| 10 |
+
#
|
| 11 |
+
# The above copyright notice and this permission notice shall be
|
| 12 |
+
# included in all copies or substantial portions of the Software.
|
| 13 |
+
#
|
| 14 |
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 15 |
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 16 |
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| 17 |
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
| 18 |
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
| 19 |
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
| 20 |
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 21 |
+
|
| 22 |
+
$script:THIS_PATH = $myinvocation.mycommand.path
|
| 23 |
+
$script:BASE_DIR = Split-Path (Resolve-Path "$THIS_PATH/..") -Parent
|
| 24 |
+
|
| 25 |
+
function global:deactivate([switch] $NonDestructive) {
|
| 26 |
+
if (Test-Path variable:_OLD_VIRTUAL_PATH) {
|
| 27 |
+
$env:PATH = $variable:_OLD_VIRTUAL_PATH
|
| 28 |
+
Remove-Variable "_OLD_VIRTUAL_PATH" -Scope global
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
if (Test-Path function:_old_virtual_prompt) {
|
| 32 |
+
$function:prompt = $function:_old_virtual_prompt
|
| 33 |
+
Remove-Item function:\_old_virtual_prompt
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
if ($env:VIRTUAL_ENV) {
|
| 37 |
+
Remove-Item env:VIRTUAL_ENV -ErrorAction SilentlyContinue
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
if ($env:VIRTUAL_ENV_PROMPT) {
|
| 41 |
+
Remove-Item env:VIRTUAL_ENV_PROMPT -ErrorAction SilentlyContinue
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
if (!$NonDestructive) {
|
| 45 |
+
# Self destruct!
|
| 46 |
+
Remove-Item function:deactivate
|
| 47 |
+
Remove-Item function:pydoc
|
| 48 |
+
}
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
function global:pydoc {
|
| 52 |
+
python -m pydoc $args
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
# unset irrelevant variables
|
| 56 |
+
deactivate -nondestructive
|
| 57 |
+
|
| 58 |
+
$VIRTUAL_ENV = $BASE_DIR
|
| 59 |
+
$env:VIRTUAL_ENV = $VIRTUAL_ENV
|
| 60 |
+
|
| 61 |
+
if ("microembeddings" -ne "") {
|
| 62 |
+
$env:VIRTUAL_ENV_PROMPT = "microembeddings"
|
| 63 |
+
}
|
| 64 |
+
else {
|
| 65 |
+
$env:VIRTUAL_ENV_PROMPT = $( Split-Path $env:VIRTUAL_ENV -Leaf )
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
New-Variable -Scope global -Name _OLD_VIRTUAL_PATH -Value $env:PATH
|
| 69 |
+
|
| 70 |
+
$env:PATH = "$env:VIRTUAL_ENV/bin:" + $env:PATH
|
| 71 |
+
if (!$env:VIRTUAL_ENV_DISABLE_PROMPT) {
|
| 72 |
+
function global:_old_virtual_prompt {
|
| 73 |
+
""
|
| 74 |
+
}
|
| 75 |
+
$function:_old_virtual_prompt = $function:prompt
|
| 76 |
+
|
| 77 |
+
function global:prompt {
|
| 78 |
+
# Add the custom prefix to the existing prompt
|
| 79 |
+
$previous_prompt_value = & $function:_old_virtual_prompt
|
| 80 |
+
("(" + $env:VIRTUAL_ENV_PROMPT + ") " + $previous_prompt_value)
|
| 81 |
+
}
|
| 82 |
+
}
|
.venv/bin/activate_this.py
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) 2020-202x The virtualenv developers
|
| 2 |
+
#
|
| 3 |
+
# Permission is hereby granted, free of charge, to any person obtaining
|
| 4 |
+
# a copy of this software and associated documentation files (the
|
| 5 |
+
# "Software"), to deal in the Software without restriction, including
|
| 6 |
+
# without limitation the rights to use, copy, modify, merge, publish,
|
| 7 |
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
| 8 |
+
# permit persons to whom the Software is furnished to do so, subject to
|
| 9 |
+
# the following conditions:
|
| 10 |
+
#
|
| 11 |
+
# The above copyright notice and this permission notice shall be
|
| 12 |
+
# included in all copies or substantial portions of the Software.
|
| 13 |
+
#
|
| 14 |
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 15 |
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 16 |
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| 17 |
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
| 18 |
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
| 19 |
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
| 20 |
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 21 |
+
|
| 22 |
+
"""
|
| 23 |
+
Activate virtualenv for current interpreter:
|
| 24 |
+
|
| 25 |
+
import runpy
|
| 26 |
+
runpy.run_path(this_file)
|
| 27 |
+
|
| 28 |
+
This can be used when you must use an existing Python interpreter, not the virtualenv bin/python.
|
| 29 |
+
""" # noqa: D415
|
| 30 |
+
|
| 31 |
+
from __future__ import annotations
|
| 32 |
+
|
| 33 |
+
import os
|
| 34 |
+
import site
|
| 35 |
+
import sys
|
| 36 |
+
|
| 37 |
+
try:
|
| 38 |
+
abs_file = os.path.abspath(__file__)
|
| 39 |
+
except NameError as exc:
|
| 40 |
+
msg = "You must use import runpy; runpy.run_path(this_file)"
|
| 41 |
+
raise AssertionError(msg) from exc
|
| 42 |
+
|
| 43 |
+
bin_dir = os.path.dirname(abs_file)
|
| 44 |
+
base = bin_dir[: -len("bin") - 1] # strip away the bin part from the __file__, plus the path separator
|
| 45 |
+
|
| 46 |
+
# prepend bin to PATH (this file is inside the bin directory)
|
| 47 |
+
os.environ["PATH"] = os.pathsep.join([bin_dir, *os.environ.get("PATH", "").split(os.pathsep)])
|
| 48 |
+
os.environ["VIRTUAL_ENV"] = base # virtual env is right above bin directory
|
| 49 |
+
os.environ["VIRTUAL_ENV_PROMPT"] = "microembeddings" or os.path.basename(base) # noqa: SIM222
|
| 50 |
+
|
| 51 |
+
# add the virtual environments libraries to the host python import mechanism
|
| 52 |
+
prev_length = len(sys.path)
|
| 53 |
+
for lib in "../lib/python3.10/site-packages".split(os.pathsep):
|
| 54 |
+
path = os.path.realpath(os.path.join(bin_dir, lib))
|
| 55 |
+
site.addsitedir(path)
|
| 56 |
+
sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length]
|
| 57 |
+
|
| 58 |
+
sys.real_prefix = sys.prefix
|
| 59 |
+
sys.prefix = base
|
.venv/bin/deactivate.bat
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@REM Copyright (c) 2020-202x The virtualenv developers
|
| 2 |
+
@REM
|
| 3 |
+
@REM Permission is hereby granted, free of charge, to any person obtaining
|
| 4 |
+
@REM a copy of this software and associated documentation files (the
|
| 5 |
+
@REM "Software"), to deal in the Software without restriction, including
|
| 6 |
+
@REM without limitation the rights to use, copy, modify, merge, publish,
|
| 7 |
+
@REM distribute, sublicense, and/or sell copies of the Software, and to
|
| 8 |
+
@REM permit persons to whom the Software is furnished to do so, subject to
|
| 9 |
+
@REM the following conditions:
|
| 10 |
+
@REM
|
| 11 |
+
@REM The above copyright notice and this permission notice shall be
|
| 12 |
+
@REM included in all copies or substantial portions of the Software.
|
| 13 |
+
@REM
|
| 14 |
+
@REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 15 |
+
@REM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 16 |
+
@REM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| 17 |
+
@REM NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
| 18 |
+
@REM LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
| 19 |
+
@REM OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
| 20 |
+
@REM WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 21 |
+
|
| 22 |
+
@set VIRTUAL_ENV=
|
| 23 |
+
@set VIRTUAL_ENV_PROMPT=
|
| 24 |
+
|
| 25 |
+
@REM Don't use () to avoid problems with them in %PATH%
|
| 26 |
+
@if not defined _OLD_VIRTUAL_PROMPT @goto ENDIFVPROMPT
|
| 27 |
+
@set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
|
| 28 |
+
@set _OLD_VIRTUAL_PROMPT=
|
| 29 |
+
:ENDIFVPROMPT
|
| 30 |
+
|
| 31 |
+
@if not defined _OLD_VIRTUAL_PYTHONHOME @goto ENDIFVHOME
|
| 32 |
+
@set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%"
|
| 33 |
+
@set _OLD_VIRTUAL_PYTHONHOME=
|
| 34 |
+
:ENDIFVHOME
|
| 35 |
+
|
| 36 |
+
@if not defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH
|
| 37 |
+
@set "PATH=%_OLD_VIRTUAL_PATH%"
|
| 38 |
+
@set _OLD_VIRTUAL_PATH=
|
| 39 |
+
:ENDIFVPATH
|
.venv/bin/f2py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/Users/shreyas/work/rnd/personal/spaces/microembeddings/.venv/bin/python3
|
| 2 |
+
# -*- coding: utf-8 -*-
|
| 3 |
+
import sys
|
| 4 |
+
from numpy.f2py.f2py2e import main
|
| 5 |
+
if __name__ == "__main__":
|
| 6 |
+
if sys.argv[0].endswith("-script.pyw"):
|
| 7 |
+
sys.argv[0] = sys.argv[0][:-11]
|
| 8 |
+
elif sys.argv[0].endswith(".exe"):
|
| 9 |
+
sys.argv[0] = sys.argv[0][:-4]
|
| 10 |
+
sys.exit(main())
|
.venv/bin/numpy-config
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/Users/shreyas/work/rnd/personal/spaces/microembeddings/.venv/bin/python3
|
| 2 |
+
# -*- coding: utf-8 -*-
|
| 3 |
+
import sys
|
| 4 |
+
from numpy._configtool import main
|
| 5 |
+
if __name__ == "__main__":
|
| 6 |
+
if sys.argv[0].endswith("-script.pyw"):
|
| 7 |
+
sys.argv[0] = sys.argv[0][:-11]
|
| 8 |
+
elif sys.argv[0].endswith(".exe"):
|
| 9 |
+
sys.argv[0] = sys.argv[0][:-4]
|
| 10 |
+
sys.exit(main())
|
.venv/bin/pydoc.bat
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@REM Copyright (c) 2020-202x The virtualenv developers
|
| 2 |
+
@REM
|
| 3 |
+
@REM Permission is hereby granted, free of charge, to any person obtaining
|
| 4 |
+
@REM a copy of this software and associated documentation files (the
|
| 5 |
+
@REM "Software"), to deal in the Software without restriction, including
|
| 6 |
+
@REM without limitation the rights to use, copy, modify, merge, publish,
|
| 7 |
+
@REM distribute, sublicense, and/or sell copies of the Software, and to
|
| 8 |
+
@REM permit persons to whom the Software is furnished to do so, subject to
|
| 9 |
+
@REM the following conditions:
|
| 10 |
+
@REM
|
| 11 |
+
@REM The above copyright notice and this permission notice shall be
|
| 12 |
+
@REM included in all copies or substantial portions of the Software.
|
| 13 |
+
@REM
|
| 14 |
+
@REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 15 |
+
@REM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 16 |
+
@REM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| 17 |
+
@REM NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
| 18 |
+
@REM LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
| 19 |
+
@REM OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
| 20 |
+
@REM WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 21 |
+
|
| 22 |
+
python.exe -m pydoc %*
|
.venv/bin/python
ADDED
|
Binary file (50 kB). View file
|
|
|
.venv/bin/python3
ADDED
|
Binary file (50 kB). View file
|
|
|
.venv/bin/python3.10
ADDED
|
Binary file (50 kB). View file
|
|
|
.venv/lib/python3.10/site-packages/__pycache__/_virtualenv.cpython-310.pyc
ADDED
|
Binary file (2.73 kB). View file
|
|
|
.venv/lib/python3.10/site-packages/_virtualenv.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:69ac3d8f27e679c81b94ab30b3b56e9cd138219b1ba94a1fa3606d5a76a1433d
|
| 3 |
+
size 18
|
.venv/lib/python3.10/site-packages/_virtualenv.py
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Patches that are applied at runtime to the virtual environment."""
|
| 2 |
+
|
| 3 |
+
import os
|
| 4 |
+
import sys
|
| 5 |
+
|
| 6 |
+
VIRTUALENV_PATCH_FILE = os.path.join(__file__)
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
def patch_dist(dist):
|
| 10 |
+
"""
|
| 11 |
+
Distutils allows user to configure some arguments via a configuration file:
|
| 12 |
+
https://docs.python.org/3.11/install/index.html#distutils-configuration-files.
|
| 13 |
+
|
| 14 |
+
Some of this arguments though don't make sense in context of the virtual environment files, let's fix them up.
|
| 15 |
+
""" # noqa: D205
|
| 16 |
+
# we cannot allow some install config as that would get packages installed outside of the virtual environment
|
| 17 |
+
old_parse_config_files = dist.Distribution.parse_config_files
|
| 18 |
+
|
| 19 |
+
def parse_config_files(self, *args, **kwargs):
|
| 20 |
+
result = old_parse_config_files(self, *args, **kwargs)
|
| 21 |
+
install = self.get_option_dict("install")
|
| 22 |
+
|
| 23 |
+
if "prefix" in install: # the prefix governs where to install the libraries
|
| 24 |
+
install["prefix"] = VIRTUALENV_PATCH_FILE, os.path.abspath(sys.prefix)
|
| 25 |
+
for base in ("purelib", "platlib", "headers", "scripts", "data"):
|
| 26 |
+
key = f"install_{base}"
|
| 27 |
+
if key in install: # do not allow global configs to hijack venv paths
|
| 28 |
+
install.pop(key, None)
|
| 29 |
+
return result
|
| 30 |
+
|
| 31 |
+
dist.Distribution.parse_config_files = parse_config_files
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
# Import hook that patches some modules to ignore configuration values that break package installation in case
|
| 35 |
+
# of virtual environments.
|
| 36 |
+
_DISTUTILS_PATCH = "distutils.dist", "setuptools.dist"
|
| 37 |
+
# https://docs.python.org/3/library/importlib.html#setting-up-an-importer
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
class _Finder:
|
| 41 |
+
"""A meta path finder that allows patching the imported distutils modules."""
|
| 42 |
+
|
| 43 |
+
fullname = None
|
| 44 |
+
|
| 45 |
+
# lock[0] is threading.Lock(), but initialized lazily to avoid importing threading very early at startup,
|
| 46 |
+
# because there are gevent-based applications that need to be first to import threading by themselves.
|
| 47 |
+
# See https://github.com/pypa/virtualenv/issues/1895 for details.
|
| 48 |
+
lock = [] # noqa: RUF012
|
| 49 |
+
|
| 50 |
+
def find_spec(self, fullname, path, target=None): # noqa: ARG002
|
| 51 |
+
if fullname in _DISTUTILS_PATCH and self.fullname is None:
|
| 52 |
+
# initialize lock[0] lazily
|
| 53 |
+
if len(self.lock) == 0:
|
| 54 |
+
import threading
|
| 55 |
+
|
| 56 |
+
lock = threading.Lock()
|
| 57 |
+
# there is possibility that two threads T1 and T2 are simultaneously running into find_spec,
|
| 58 |
+
# observing .lock as empty, and further going into hereby initialization. However due to the GIL,
|
| 59 |
+
# list.append() operation is atomic and this way only one of the threads will "win" to put the lock
|
| 60 |
+
# - that every thread will use - into .lock[0].
|
| 61 |
+
# https://docs.python.org/3/faq/library.html#what-kinds-of-global-value-mutation-are-thread-safe
|
| 62 |
+
self.lock.append(lock)
|
| 63 |
+
|
| 64 |
+
from functools import partial
|
| 65 |
+
from importlib.util import find_spec
|
| 66 |
+
|
| 67 |
+
with self.lock[0]:
|
| 68 |
+
self.fullname = fullname
|
| 69 |
+
try:
|
| 70 |
+
spec = find_spec(fullname, path)
|
| 71 |
+
if spec is not None:
|
| 72 |
+
# https://www.python.org/dev/peps/pep-0451/#how-loading-will-work
|
| 73 |
+
is_new_api = hasattr(spec.loader, "exec_module")
|
| 74 |
+
func_name = "exec_module" if is_new_api else "load_module"
|
| 75 |
+
old = getattr(spec.loader, func_name)
|
| 76 |
+
func = self.exec_module if is_new_api else self.load_module
|
| 77 |
+
if old is not func:
|
| 78 |
+
try: # noqa: SIM105
|
| 79 |
+
setattr(spec.loader, func_name, partial(func, old))
|
| 80 |
+
except AttributeError:
|
| 81 |
+
pass # C-Extension loaders are r/o such as zipimporter with <3.7
|
| 82 |
+
return spec
|
| 83 |
+
finally:
|
| 84 |
+
self.fullname = None
|
| 85 |
+
return None
|
| 86 |
+
|
| 87 |
+
@staticmethod
|
| 88 |
+
def exec_module(old, module):
|
| 89 |
+
old(module)
|
| 90 |
+
if module.__name__ in _DISTUTILS_PATCH:
|
| 91 |
+
patch_dist(module)
|
| 92 |
+
|
| 93 |
+
@staticmethod
|
| 94 |
+
def load_module(old, name):
|
| 95 |
+
module = old(name)
|
| 96 |
+
if module.__name__ in _DISTUTILS_PATCH:
|
| 97 |
+
patch_dist(module)
|
| 98 |
+
return module
|
| 99 |
+
|
| 100 |
+
|
| 101 |
+
sys.meta_path.insert(0, _Finder())
|
.venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/INSTALLER
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
uv
|
.venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/LICENSE.txt
ADDED
|
@@ -0,0 +1,970 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Copyright (c) 2005-2024, NumPy Developers.
|
| 2 |
+
All rights reserved.
|
| 3 |
+
|
| 4 |
+
Redistribution and use in source and binary forms, with or without
|
| 5 |
+
modification, are permitted provided that the following conditions are
|
| 6 |
+
met:
|
| 7 |
+
|
| 8 |
+
* Redistributions of source code must retain the above copyright
|
| 9 |
+
notice, this list of conditions and the following disclaimer.
|
| 10 |
+
|
| 11 |
+
* Redistributions in binary form must reproduce the above
|
| 12 |
+
copyright notice, this list of conditions and the following
|
| 13 |
+
disclaimer in the documentation and/or other materials provided
|
| 14 |
+
with the distribution.
|
| 15 |
+
|
| 16 |
+
* Neither the name of the NumPy Developers nor the names of any
|
| 17 |
+
contributors may be used to endorse or promote products derived
|
| 18 |
+
from this software without specific prior written permission.
|
| 19 |
+
|
| 20 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 21 |
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 22 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 23 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| 24 |
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| 25 |
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| 26 |
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| 27 |
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| 28 |
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| 29 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 30 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 31 |
+
|
| 32 |
+
----
|
| 33 |
+
|
| 34 |
+
The NumPy repository and source distributions bundle several libraries that are
|
| 35 |
+
compatibly licensed. We list these here.
|
| 36 |
+
|
| 37 |
+
Name: lapack-lite
|
| 38 |
+
Files: numpy/linalg/lapack_lite/*
|
| 39 |
+
License: BSD-3-Clause
|
| 40 |
+
For details, see numpy/linalg/lapack_lite/LICENSE.txt
|
| 41 |
+
|
| 42 |
+
Name: dragon4
|
| 43 |
+
Files: numpy/_core/src/multiarray/dragon4.c
|
| 44 |
+
License: MIT
|
| 45 |
+
For license text, see numpy/_core/src/multiarray/dragon4.c
|
| 46 |
+
|
| 47 |
+
Name: libdivide
|
| 48 |
+
Files: numpy/_core/include/numpy/libdivide/*
|
| 49 |
+
License: Zlib
|
| 50 |
+
For license text, see numpy/_core/include/numpy/libdivide/LICENSE.txt
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
Note that the following files are vendored in the repository and sdist but not
|
| 54 |
+
installed in built numpy packages:
|
| 55 |
+
|
| 56 |
+
Name: Meson
|
| 57 |
+
Files: vendored-meson/meson/*
|
| 58 |
+
License: Apache 2.0
|
| 59 |
+
For license text, see vendored-meson/meson/COPYING
|
| 60 |
+
|
| 61 |
+
Name: spin
|
| 62 |
+
Files: .spin/cmds.py
|
| 63 |
+
License: BSD-3
|
| 64 |
+
For license text, see .spin/LICENSE
|
| 65 |
+
|
| 66 |
+
Name: tempita
|
| 67 |
+
Files: numpy/_build_utils/tempita/*
|
| 68 |
+
License: MIT
|
| 69 |
+
For details, see numpy/_build_utils/tempita/LICENCE.txt
|
| 70 |
+
|
| 71 |
+
----
|
| 72 |
+
|
| 73 |
+
This binary distribution of NumPy also bundles the following software:
|
| 74 |
+
|
| 75 |
+
Name: OpenBLAS
|
| 76 |
+
Files: numpy/.dylibs/libscipy_openblas*.so
|
| 77 |
+
Description: bundled as a dynamically linked library
|
| 78 |
+
Availability: https://github.com/OpenMathLib/OpenBLAS/
|
| 79 |
+
License: BSD-3-Clause
|
| 80 |
+
Copyright (c) 2011-2014, The OpenBLAS Project
|
| 81 |
+
All rights reserved.
|
| 82 |
+
|
| 83 |
+
Redistribution and use in source and binary forms, with or without
|
| 84 |
+
modification, are permitted provided that the following conditions are
|
| 85 |
+
met:
|
| 86 |
+
|
| 87 |
+
1. Redistributions of source code must retain the above copyright
|
| 88 |
+
notice, this list of conditions and the following disclaimer.
|
| 89 |
+
|
| 90 |
+
2. Redistributions in binary form must reproduce the above copyright
|
| 91 |
+
notice, this list of conditions and the following disclaimer in
|
| 92 |
+
the documentation and/or other materials provided with the
|
| 93 |
+
distribution.
|
| 94 |
+
3. Neither the name of the OpenBLAS project nor the names of
|
| 95 |
+
its contributors may be used to endorse or promote products
|
| 96 |
+
derived from this software without specific prior written
|
| 97 |
+
permission.
|
| 98 |
+
|
| 99 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| 100 |
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| 101 |
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| 102 |
+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
| 103 |
+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
| 104 |
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
| 105 |
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
| 106 |
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
| 107 |
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
| 108 |
+
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 109 |
+
|
| 110 |
+
|
| 111 |
+
Name: LAPACK
|
| 112 |
+
Files: numpy/.dylibs/libscipy_openblas*.so
|
| 113 |
+
Description: bundled in OpenBLAS
|
| 114 |
+
Availability: https://github.com/OpenMathLib/OpenBLAS/
|
| 115 |
+
License: BSD-3-Clause-Attribution
|
| 116 |
+
Copyright (c) 1992-2013 The University of Tennessee and The University
|
| 117 |
+
of Tennessee Research Foundation. All rights
|
| 118 |
+
reserved.
|
| 119 |
+
Copyright (c) 2000-2013 The University of California Berkeley. All
|
| 120 |
+
rights reserved.
|
| 121 |
+
Copyright (c) 2006-2013 The University of Colorado Denver. All rights
|
| 122 |
+
reserved.
|
| 123 |
+
|
| 124 |
+
$COPYRIGHT$
|
| 125 |
+
|
| 126 |
+
Additional copyrights may follow
|
| 127 |
+
|
| 128 |
+
$HEADER$
|
| 129 |
+
|
| 130 |
+
Redistribution and use in source and binary forms, with or without
|
| 131 |
+
modification, are permitted provided that the following conditions are
|
| 132 |
+
met:
|
| 133 |
+
|
| 134 |
+
- Redistributions of source code must retain the above copyright
|
| 135 |
+
notice, this list of conditions and the following disclaimer.
|
| 136 |
+
|
| 137 |
+
- Redistributions in binary form must reproduce the above copyright
|
| 138 |
+
notice, this list of conditions and the following disclaimer listed
|
| 139 |
+
in this license in the documentation and/or other materials
|
| 140 |
+
provided with the distribution.
|
| 141 |
+
|
| 142 |
+
- Neither the name of the copyright holders nor the names of its
|
| 143 |
+
contributors may be used to endorse or promote products derived from
|
| 144 |
+
this software without specific prior written permission.
|
| 145 |
+
|
| 146 |
+
The copyright holders provide no reassurances that the source code
|
| 147 |
+
provided does not infringe any patent, copyright, or any other
|
| 148 |
+
intellectual property rights of third parties. The copyright holders
|
| 149 |
+
disclaim any liability to any recipient for claims brought against
|
| 150 |
+
recipient by any third party for infringement of that parties
|
| 151 |
+
intellectual property rights.
|
| 152 |
+
|
| 153 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 154 |
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 155 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 156 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| 157 |
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| 158 |
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| 159 |
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| 160 |
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| 161 |
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| 162 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 163 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 164 |
+
|
| 165 |
+
|
| 166 |
+
Name: GCC runtime library
|
| 167 |
+
Files: numpy/.dylibs/libgfortran*, numpy/.dylibs/libgcc*
|
| 168 |
+
Description: dynamically linked to files compiled with gcc
|
| 169 |
+
Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libgfortran
|
| 170 |
+
License: GPL-3.0-with-GCC-exception
|
| 171 |
+
Copyright (C) 2002-2017 Free Software Foundation, Inc.
|
| 172 |
+
|
| 173 |
+
Libgfortran is free software; you can redistribute it and/or modify
|
| 174 |
+
it under the terms of the GNU General Public License as published by
|
| 175 |
+
the Free Software Foundation; either version 3, or (at your option)
|
| 176 |
+
any later version.
|
| 177 |
+
|
| 178 |
+
Libgfortran is distributed in the hope that it will be useful,
|
| 179 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 180 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 181 |
+
GNU General Public License for more details.
|
| 182 |
+
|
| 183 |
+
Under Section 7 of GPL version 3, you are granted additional
|
| 184 |
+
permissions described in the GCC Runtime Library Exception, version
|
| 185 |
+
3.1, as published by the Free Software Foundation.
|
| 186 |
+
|
| 187 |
+
You should have received a copy of the GNU General Public License and
|
| 188 |
+
a copy of the GCC Runtime Library Exception along with this program;
|
| 189 |
+
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
| 190 |
+
<http://www.gnu.org/licenses/>.
|
| 191 |
+
|
| 192 |
+
----
|
| 193 |
+
|
| 194 |
+
Full text of license texts referred to above follows (that they are
|
| 195 |
+
listed below does not necessarily imply the conditions apply to the
|
| 196 |
+
present binary release):
|
| 197 |
+
|
| 198 |
+
----
|
| 199 |
+
|
| 200 |
+
GCC RUNTIME LIBRARY EXCEPTION
|
| 201 |
+
|
| 202 |
+
Version 3.1, 31 March 2009
|
| 203 |
+
|
| 204 |
+
Copyright (C) 2009 Free Software Foundation, Inc. <http://fsf.org/>
|
| 205 |
+
|
| 206 |
+
Everyone is permitted to copy and distribute verbatim copies of this
|
| 207 |
+
license document, but changing it is not allowed.
|
| 208 |
+
|
| 209 |
+
This GCC Runtime Library Exception ("Exception") is an additional
|
| 210 |
+
permission under section 7 of the GNU General Public License, version
|
| 211 |
+
3 ("GPLv3"). It applies to a given file (the "Runtime Library") that
|
| 212 |
+
bears a notice placed by the copyright holder of the file stating that
|
| 213 |
+
the file is governed by GPLv3 along with this Exception.
|
| 214 |
+
|
| 215 |
+
When you use GCC to compile a program, GCC may combine portions of
|
| 216 |
+
certain GCC header files and runtime libraries with the compiled
|
| 217 |
+
program. The purpose of this Exception is to allow compilation of
|
| 218 |
+
non-GPL (including proprietary) programs to use, in this way, the
|
| 219 |
+
header files and runtime libraries covered by this Exception.
|
| 220 |
+
|
| 221 |
+
0. Definitions.
|
| 222 |
+
|
| 223 |
+
A file is an "Independent Module" if it either requires the Runtime
|
| 224 |
+
Library for execution after a Compilation Process, or makes use of an
|
| 225 |
+
interface provided by the Runtime Library, but is not otherwise based
|
| 226 |
+
on the Runtime Library.
|
| 227 |
+
|
| 228 |
+
"GCC" means a version of the GNU Compiler Collection, with or without
|
| 229 |
+
modifications, governed by version 3 (or a specified later version) of
|
| 230 |
+
the GNU General Public License (GPL) with the option of using any
|
| 231 |
+
subsequent versions published by the FSF.
|
| 232 |
+
|
| 233 |
+
"GPL-compatible Software" is software whose conditions of propagation,
|
| 234 |
+
modification and use would permit combination with GCC in accord with
|
| 235 |
+
the license of GCC.
|
| 236 |
+
|
| 237 |
+
"Target Code" refers to output from any compiler for a real or virtual
|
| 238 |
+
target processor architecture, in executable form or suitable for
|
| 239 |
+
input to an assembler, loader, linker and/or execution
|
| 240 |
+
phase. Notwithstanding that, Target Code does not include data in any
|
| 241 |
+
format that is used as a compiler intermediate representation, or used
|
| 242 |
+
for producing a compiler intermediate representation.
|
| 243 |
+
|
| 244 |
+
The "Compilation Process" transforms code entirely represented in
|
| 245 |
+
non-intermediate languages designed for human-written code, and/or in
|
| 246 |
+
Java Virtual Machine byte code, into Target Code. Thus, for example,
|
| 247 |
+
use of source code generators and preprocessors need not be considered
|
| 248 |
+
part of the Compilation Process, since the Compilation Process can be
|
| 249 |
+
understood as starting with the output of the generators or
|
| 250 |
+
preprocessors.
|
| 251 |
+
|
| 252 |
+
A Compilation Process is "Eligible" if it is done using GCC, alone or
|
| 253 |
+
with other GPL-compatible software, or if it is done without using any
|
| 254 |
+
work based on GCC. For example, using non-GPL-compatible Software to
|
| 255 |
+
optimize any GCC intermediate representations would not qualify as an
|
| 256 |
+
Eligible Compilation Process.
|
| 257 |
+
|
| 258 |
+
1. Grant of Additional Permission.
|
| 259 |
+
|
| 260 |
+
You have permission to propagate a work of Target Code formed by
|
| 261 |
+
combining the Runtime Library with Independent Modules, even if such
|
| 262 |
+
propagation would otherwise violate the terms of GPLv3, provided that
|
| 263 |
+
all Target Code was generated by Eligible Compilation Processes. You
|
| 264 |
+
may then convey such a combination under terms of your choice,
|
| 265 |
+
consistent with the licensing of the Independent Modules.
|
| 266 |
+
|
| 267 |
+
2. No Weakening of GCC Copyleft.
|
| 268 |
+
|
| 269 |
+
The availability of this Exception does not imply any general
|
| 270 |
+
presumption that third-party software is unaffected by the copyleft
|
| 271 |
+
requirements of the license of GCC.
|
| 272 |
+
|
| 273 |
+
----
|
| 274 |
+
|
| 275 |
+
GNU GENERAL PUBLIC LICENSE
|
| 276 |
+
Version 3, 29 June 2007
|
| 277 |
+
|
| 278 |
+
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
| 279 |
+
Everyone is permitted to copy and distribute verbatim copies
|
| 280 |
+
of this license document, but changing it is not allowed.
|
| 281 |
+
|
| 282 |
+
Preamble
|
| 283 |
+
|
| 284 |
+
The GNU General Public License is a free, copyleft license for
|
| 285 |
+
software and other kinds of works.
|
| 286 |
+
|
| 287 |
+
The licenses for most software and other practical works are designed
|
| 288 |
+
to take away your freedom to share and change the works. By contrast,
|
| 289 |
+
the GNU General Public License is intended to guarantee your freedom to
|
| 290 |
+
share and change all versions of a program--to make sure it remains free
|
| 291 |
+
software for all its users. We, the Free Software Foundation, use the
|
| 292 |
+
GNU General Public License for most of our software; it applies also to
|
| 293 |
+
any other work released this way by its authors. You can apply it to
|
| 294 |
+
your programs, too.
|
| 295 |
+
|
| 296 |
+
When we speak of free software, we are referring to freedom, not
|
| 297 |
+
price. Our General Public Licenses are designed to make sure that you
|
| 298 |
+
have the freedom to distribute copies of free software (and charge for
|
| 299 |
+
them if you wish), that you receive source code or can get it if you
|
| 300 |
+
want it, that you can change the software or use pieces of it in new
|
| 301 |
+
free programs, and that you know you can do these things.
|
| 302 |
+
|
| 303 |
+
To protect your rights, we need to prevent others from denying you
|
| 304 |
+
these rights or asking you to surrender the rights. Therefore, you have
|
| 305 |
+
certain responsibilities if you distribute copies of the software, or if
|
| 306 |
+
you modify it: responsibilities to respect the freedom of others.
|
| 307 |
+
|
| 308 |
+
For example, if you distribute copies of such a program, whether
|
| 309 |
+
gratis or for a fee, you must pass on to the recipients the same
|
| 310 |
+
freedoms that you received. You must make sure that they, too, receive
|
| 311 |
+
or can get the source code. And you must show them these terms so they
|
| 312 |
+
know their rights.
|
| 313 |
+
|
| 314 |
+
Developers that use the GNU GPL protect your rights with two steps:
|
| 315 |
+
(1) assert copyright on the software, and (2) offer you this License
|
| 316 |
+
giving you legal permission to copy, distribute and/or modify it.
|
| 317 |
+
|
| 318 |
+
For the developers' and authors' protection, the GPL clearly explains
|
| 319 |
+
that there is no warranty for this free software. For both users' and
|
| 320 |
+
authors' sake, the GPL requires that modified versions be marked as
|
| 321 |
+
changed, so that their problems will not be attributed erroneously to
|
| 322 |
+
authors of previous versions.
|
| 323 |
+
|
| 324 |
+
Some devices are designed to deny users access to install or run
|
| 325 |
+
modified versions of the software inside them, although the manufacturer
|
| 326 |
+
can do so. This is fundamentally incompatible with the aim of
|
| 327 |
+
protecting users' freedom to change the software. The systematic
|
| 328 |
+
pattern of such abuse occurs in the area of products for individuals to
|
| 329 |
+
use, which is precisely where it is most unacceptable. Therefore, we
|
| 330 |
+
have designed this version of the GPL to prohibit the practice for those
|
| 331 |
+
products. If such problems arise substantially in other domains, we
|
| 332 |
+
stand ready to extend this provision to those domains in future versions
|
| 333 |
+
of the GPL, as needed to protect the freedom of users.
|
| 334 |
+
|
| 335 |
+
Finally, every program is threatened constantly by software patents.
|
| 336 |
+
States should not allow patents to restrict development and use of
|
| 337 |
+
software on general-purpose computers, but in those that do, we wish to
|
| 338 |
+
avoid the special danger that patents applied to a free program could
|
| 339 |
+
make it effectively proprietary. To prevent this, the GPL assures that
|
| 340 |
+
patents cannot be used to render the program non-free.
|
| 341 |
+
|
| 342 |
+
The precise terms and conditions for copying, distribution and
|
| 343 |
+
modification follow.
|
| 344 |
+
|
| 345 |
+
TERMS AND CONDITIONS
|
| 346 |
+
|
| 347 |
+
0. Definitions.
|
| 348 |
+
|
| 349 |
+
"This License" refers to version 3 of the GNU General Public License.
|
| 350 |
+
|
| 351 |
+
"Copyright" also means copyright-like laws that apply to other kinds of
|
| 352 |
+
works, such as semiconductor masks.
|
| 353 |
+
|
| 354 |
+
"The Program" refers to any copyrightable work licensed under this
|
| 355 |
+
License. Each licensee is addressed as "you". "Licensees" and
|
| 356 |
+
"recipients" may be individuals or organizations.
|
| 357 |
+
|
| 358 |
+
To "modify" a work means to copy from or adapt all or part of the work
|
| 359 |
+
in a fashion requiring copyright permission, other than the making of an
|
| 360 |
+
exact copy. The resulting work is called a "modified version" of the
|
| 361 |
+
earlier work or a work "based on" the earlier work.
|
| 362 |
+
|
| 363 |
+
A "covered work" means either the unmodified Program or a work based
|
| 364 |
+
on the Program.
|
| 365 |
+
|
| 366 |
+
To "propagate" a work means to do anything with it that, without
|
| 367 |
+
permission, would make you directly or secondarily liable for
|
| 368 |
+
infringement under applicable copyright law, except executing it on a
|
| 369 |
+
computer or modifying a private copy. Propagation includes copying,
|
| 370 |
+
distribution (with or without modification), making available to the
|
| 371 |
+
public, and in some countries other activities as well.
|
| 372 |
+
|
| 373 |
+
To "convey" a work means any kind of propagation that enables other
|
| 374 |
+
parties to make or receive copies. Mere interaction with a user through
|
| 375 |
+
a computer network, with no transfer of a copy, is not conveying.
|
| 376 |
+
|
| 377 |
+
An interactive user interface displays "Appropriate Legal Notices"
|
| 378 |
+
to the extent that it includes a convenient and prominently visible
|
| 379 |
+
feature that (1) displays an appropriate copyright notice, and (2)
|
| 380 |
+
tells the user that there is no warranty for the work (except to the
|
| 381 |
+
extent that warranties are provided), that licensees may convey the
|
| 382 |
+
work under this License, and how to view a copy of this License. If
|
| 383 |
+
the interface presents a list of user commands or options, such as a
|
| 384 |
+
menu, a prominent item in the list meets this criterion.
|
| 385 |
+
|
| 386 |
+
1. Source Code.
|
| 387 |
+
|
| 388 |
+
The "source code" for a work means the preferred form of the work
|
| 389 |
+
for making modifications to it. "Object code" means any non-source
|
| 390 |
+
form of a work.
|
| 391 |
+
|
| 392 |
+
A "Standard Interface" means an interface that either is an official
|
| 393 |
+
standard defined by a recognized standards body, or, in the case of
|
| 394 |
+
interfaces specified for a particular programming language, one that
|
| 395 |
+
is widely used among developers working in that language.
|
| 396 |
+
|
| 397 |
+
The "System Libraries" of an executable work include anything, other
|
| 398 |
+
than the work as a whole, that (a) is included in the normal form of
|
| 399 |
+
packaging a Major Component, but which is not part of that Major
|
| 400 |
+
Component, and (b) serves only to enable use of the work with that
|
| 401 |
+
Major Component, or to implement a Standard Interface for which an
|
| 402 |
+
implementation is available to the public in source code form. A
|
| 403 |
+
"Major Component", in this context, means a major essential component
|
| 404 |
+
(kernel, window system, and so on) of the specific operating system
|
| 405 |
+
(if any) on which the executable work runs, or a compiler used to
|
| 406 |
+
produce the work, or an object code interpreter used to run it.
|
| 407 |
+
|
| 408 |
+
The "Corresponding Source" for a work in object code form means all
|
| 409 |
+
the source code needed to generate, install, and (for an executable
|
| 410 |
+
work) run the object code and to modify the work, including scripts to
|
| 411 |
+
control those activities. However, it does not include the work's
|
| 412 |
+
System Libraries, or general-purpose tools or generally available free
|
| 413 |
+
programs which are used unmodified in performing those activities but
|
| 414 |
+
which are not part of the work. For example, Corresponding Source
|
| 415 |
+
includes interface definition files associated with source files for
|
| 416 |
+
the work, and the source code for shared libraries and dynamically
|
| 417 |
+
linked subprograms that the work is specifically designed to require,
|
| 418 |
+
such as by intimate data communication or control flow between those
|
| 419 |
+
subprograms and other parts of the work.
|
| 420 |
+
|
| 421 |
+
The Corresponding Source need not include anything that users
|
| 422 |
+
can regenerate automatically from other parts of the Corresponding
|
| 423 |
+
Source.
|
| 424 |
+
|
| 425 |
+
The Corresponding Source for a work in source code form is that
|
| 426 |
+
same work.
|
| 427 |
+
|
| 428 |
+
2. Basic Permissions.
|
| 429 |
+
|
| 430 |
+
All rights granted under this License are granted for the term of
|
| 431 |
+
copyright on the Program, and are irrevocable provided the stated
|
| 432 |
+
conditions are met. This License explicitly affirms your unlimited
|
| 433 |
+
permission to run the unmodified Program. The output from running a
|
| 434 |
+
covered work is covered by this License only if the output, given its
|
| 435 |
+
content, constitutes a covered work. This License acknowledges your
|
| 436 |
+
rights of fair use or other equivalent, as provided by copyright law.
|
| 437 |
+
|
| 438 |
+
You may make, run and propagate covered works that you do not
|
| 439 |
+
convey, without conditions so long as your license otherwise remains
|
| 440 |
+
in force. You may convey covered works to others for the sole purpose
|
| 441 |
+
of having them make modifications exclusively for you, or provide you
|
| 442 |
+
with facilities for running those works, provided that you comply with
|
| 443 |
+
the terms of this License in conveying all material for which you do
|
| 444 |
+
not control copyright. Those thus making or running the covered works
|
| 445 |
+
for you must do so exclusively on your behalf, under your direction
|
| 446 |
+
and control, on terms that prohibit them from making any copies of
|
| 447 |
+
your copyrighted material outside their relationship with you.
|
| 448 |
+
|
| 449 |
+
Conveying under any other circumstances is permitted solely under
|
| 450 |
+
the conditions stated below. Sublicensing is not allowed; section 10
|
| 451 |
+
makes it unnecessary.
|
| 452 |
+
|
| 453 |
+
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
| 454 |
+
|
| 455 |
+
No covered work shall be deemed part of an effective technological
|
| 456 |
+
measure under any applicable law fulfilling obligations under article
|
| 457 |
+
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
| 458 |
+
similar laws prohibiting or restricting circumvention of such
|
| 459 |
+
measures.
|
| 460 |
+
|
| 461 |
+
When you convey a covered work, you waive any legal power to forbid
|
| 462 |
+
circumvention of technological measures to the extent such circumvention
|
| 463 |
+
is effected by exercising rights under this License with respect to
|
| 464 |
+
the covered work, and you disclaim any intention to limit operation or
|
| 465 |
+
modification of the work as a means of enforcing, against the work's
|
| 466 |
+
users, your or third parties' legal rights to forbid circumvention of
|
| 467 |
+
technological measures.
|
| 468 |
+
|
| 469 |
+
4. Conveying Verbatim Copies.
|
| 470 |
+
|
| 471 |
+
You may convey verbatim copies of the Program's source code as you
|
| 472 |
+
receive it, in any medium, provided that you conspicuously and
|
| 473 |
+
appropriately publish on each copy an appropriate copyright notice;
|
| 474 |
+
keep intact all notices stating that this License and any
|
| 475 |
+
non-permissive terms added in accord with section 7 apply to the code;
|
| 476 |
+
keep intact all notices of the absence of any warranty; and give all
|
| 477 |
+
recipients a copy of this License along with the Program.
|
| 478 |
+
|
| 479 |
+
You may charge any price or no price for each copy that you convey,
|
| 480 |
+
and you may offer support or warranty protection for a fee.
|
| 481 |
+
|
| 482 |
+
5. Conveying Modified Source Versions.
|
| 483 |
+
|
| 484 |
+
You may convey a work based on the Program, or the modifications to
|
| 485 |
+
produce it from the Program, in the form of source code under the
|
| 486 |
+
terms of section 4, provided that you also meet all of these conditions:
|
| 487 |
+
|
| 488 |
+
a) The work must carry prominent notices stating that you modified
|
| 489 |
+
it, and giving a relevant date.
|
| 490 |
+
|
| 491 |
+
b) The work must carry prominent notices stating that it is
|
| 492 |
+
released under this License and any conditions added under section
|
| 493 |
+
7. This requirement modifies the requirement in section 4 to
|
| 494 |
+
"keep intact all notices".
|
| 495 |
+
|
| 496 |
+
c) You must license the entire work, as a whole, under this
|
| 497 |
+
License to anyone who comes into possession of a copy. This
|
| 498 |
+
License will therefore apply, along with any applicable section 7
|
| 499 |
+
additional terms, to the whole of the work, and all its parts,
|
| 500 |
+
regardless of how they are packaged. This License gives no
|
| 501 |
+
permission to license the work in any other way, but it does not
|
| 502 |
+
invalidate such permission if you have separately received it.
|
| 503 |
+
|
| 504 |
+
d) If the work has interactive user interfaces, each must display
|
| 505 |
+
Appropriate Legal Notices; however, if the Program has interactive
|
| 506 |
+
interfaces that do not display Appropriate Legal Notices, your
|
| 507 |
+
work need not make them do so.
|
| 508 |
+
|
| 509 |
+
A compilation of a covered work with other separate and independent
|
| 510 |
+
works, which are not by their nature extensions of the covered work,
|
| 511 |
+
and which are not combined with it such as to form a larger program,
|
| 512 |
+
in or on a volume of a storage or distribution medium, is called an
|
| 513 |
+
"aggregate" if the compilation and its resulting copyright are not
|
| 514 |
+
used to limit the access or legal rights of the compilation's users
|
| 515 |
+
beyond what the individual works permit. Inclusion of a covered work
|
| 516 |
+
in an aggregate does not cause this License to apply to the other
|
| 517 |
+
parts of the aggregate.
|
| 518 |
+
|
| 519 |
+
6. Conveying Non-Source Forms.
|
| 520 |
+
|
| 521 |
+
You may convey a covered work in object code form under the terms
|
| 522 |
+
of sections 4 and 5, provided that you also convey the
|
| 523 |
+
machine-readable Corresponding Source under the terms of this License,
|
| 524 |
+
in one of these ways:
|
| 525 |
+
|
| 526 |
+
a) Convey the object code in, or embodied in, a physical product
|
| 527 |
+
(including a physical distribution medium), accompanied by the
|
| 528 |
+
Corresponding Source fixed on a durable physical medium
|
| 529 |
+
customarily used for software interchange.
|
| 530 |
+
|
| 531 |
+
b) Convey the object code in, or embodied in, a physical product
|
| 532 |
+
(including a physical distribution medium), accompanied by a
|
| 533 |
+
written offer, valid for at least three years and valid for as
|
| 534 |
+
long as you offer spare parts or customer support for that product
|
| 535 |
+
model, to give anyone who possesses the object code either (1) a
|
| 536 |
+
copy of the Corresponding Source for all the software in the
|
| 537 |
+
product that is covered by this License, on a durable physical
|
| 538 |
+
medium customarily used for software interchange, for a price no
|
| 539 |
+
more than your reasonable cost of physically performing this
|
| 540 |
+
conveying of source, or (2) access to copy the
|
| 541 |
+
Corresponding Source from a network server at no charge.
|
| 542 |
+
|
| 543 |
+
c) Convey individual copies of the object code with a copy of the
|
| 544 |
+
written offer to provide the Corresponding Source. This
|
| 545 |
+
alternative is allowed only occasionally and noncommercially, and
|
| 546 |
+
only if you received the object code with such an offer, in accord
|
| 547 |
+
with subsection 6b.
|
| 548 |
+
|
| 549 |
+
d) Convey the object code by offering access from a designated
|
| 550 |
+
place (gratis or for a charge), and offer equivalent access to the
|
| 551 |
+
Corresponding Source in the same way through the same place at no
|
| 552 |
+
further charge. You need not require recipients to copy the
|
| 553 |
+
Corresponding Source along with the object code. If the place to
|
| 554 |
+
copy the object code is a network server, the Corresponding Source
|
| 555 |
+
may be on a different server (operated by you or a third party)
|
| 556 |
+
that supports equivalent copying facilities, provided you maintain
|
| 557 |
+
clear directions next to the object code saying where to find the
|
| 558 |
+
Corresponding Source. Regardless of what server hosts the
|
| 559 |
+
Corresponding Source, you remain obligated to ensure that it is
|
| 560 |
+
available for as long as needed to satisfy these requirements.
|
| 561 |
+
|
| 562 |
+
e) Convey the object code using peer-to-peer transmission, provided
|
| 563 |
+
you inform other peers where the object code and Corresponding
|
| 564 |
+
Source of the work are being offered to the general public at no
|
| 565 |
+
charge under subsection 6d.
|
| 566 |
+
|
| 567 |
+
A separable portion of the object code, whose source code is excluded
|
| 568 |
+
from the Corresponding Source as a System Library, need not be
|
| 569 |
+
included in conveying the object code work.
|
| 570 |
+
|
| 571 |
+
A "User Product" is either (1) a "consumer product", which means any
|
| 572 |
+
tangible personal property which is normally used for personal, family,
|
| 573 |
+
or household purposes, or (2) anything designed or sold for incorporation
|
| 574 |
+
into a dwelling. In determining whether a product is a consumer product,
|
| 575 |
+
doubtful cases shall be resolved in favor of coverage. For a particular
|
| 576 |
+
product received by a particular user, "normally used" refers to a
|
| 577 |
+
typical or common use of that class of product, regardless of the status
|
| 578 |
+
of the particular user or of the way in which the particular user
|
| 579 |
+
actually uses, or expects or is expected to use, the product. A product
|
| 580 |
+
is a consumer product regardless of whether the product has substantial
|
| 581 |
+
commercial, industrial or non-consumer uses, unless such uses represent
|
| 582 |
+
the only significant mode of use of the product.
|
| 583 |
+
|
| 584 |
+
"Installation Information" for a User Product means any methods,
|
| 585 |
+
procedures, authorization keys, or other information required to install
|
| 586 |
+
and execute modified versions of a covered work in that User Product from
|
| 587 |
+
a modified version of its Corresponding Source. The information must
|
| 588 |
+
suffice to ensure that the continued functioning of the modified object
|
| 589 |
+
code is in no case prevented or interfered with solely because
|
| 590 |
+
modification has been made.
|
| 591 |
+
|
| 592 |
+
If you convey an object code work under this section in, or with, or
|
| 593 |
+
specifically for use in, a User Product, and the conveying occurs as
|
| 594 |
+
part of a transaction in which the right of possession and use of the
|
| 595 |
+
User Product is transferred to the recipient in perpetuity or for a
|
| 596 |
+
fixed term (regardless of how the transaction is characterized), the
|
| 597 |
+
Corresponding Source conveyed under this section must be accompanied
|
| 598 |
+
by the Installation Information. But this requirement does not apply
|
| 599 |
+
if neither you nor any third party retains the ability to install
|
| 600 |
+
modified object code on the User Product (for example, the work has
|
| 601 |
+
been installed in ROM).
|
| 602 |
+
|
| 603 |
+
The requirement to provide Installation Information does not include a
|
| 604 |
+
requirement to continue to provide support service, warranty, or updates
|
| 605 |
+
for a work that has been modified or installed by the recipient, or for
|
| 606 |
+
the User Product in which it has been modified or installed. Access to a
|
| 607 |
+
network may be denied when the modification itself materially and
|
| 608 |
+
adversely affects the operation of the network or violates the rules and
|
| 609 |
+
protocols for communication across the network.
|
| 610 |
+
|
| 611 |
+
Corresponding Source conveyed, and Installation Information provided,
|
| 612 |
+
in accord with this section must be in a format that is publicly
|
| 613 |
+
documented (and with an implementation available to the public in
|
| 614 |
+
source code form), and must require no special password or key for
|
| 615 |
+
unpacking, reading or copying.
|
| 616 |
+
|
| 617 |
+
7. Additional Terms.
|
| 618 |
+
|
| 619 |
+
"Additional permissions" are terms that supplement the terms of this
|
| 620 |
+
License by making exceptions from one or more of its conditions.
|
| 621 |
+
Additional permissions that are applicable to the entire Program shall
|
| 622 |
+
be treated as though they were included in this License, to the extent
|
| 623 |
+
that they are valid under applicable law. If additional permissions
|
| 624 |
+
apply only to part of the Program, that part may be used separately
|
| 625 |
+
under those permissions, but the entire Program remains governed by
|
| 626 |
+
this License without regard to the additional permissions.
|
| 627 |
+
|
| 628 |
+
When you convey a copy of a covered work, you may at your option
|
| 629 |
+
remove any additional permissions from that copy, or from any part of
|
| 630 |
+
it. (Additional permissions may be written to require their own
|
| 631 |
+
removal in certain cases when you modify the work.) You may place
|
| 632 |
+
additional permissions on material, added by you to a covered work,
|
| 633 |
+
for which you have or can give appropriate copyright permission.
|
| 634 |
+
|
| 635 |
+
Notwithstanding any other provision of this License, for material you
|
| 636 |
+
add to a covered work, you may (if authorized by the copyright holders of
|
| 637 |
+
that material) supplement the terms of this License with terms:
|
| 638 |
+
|
| 639 |
+
a) Disclaiming warranty or limiting liability differently from the
|
| 640 |
+
terms of sections 15 and 16 of this License; or
|
| 641 |
+
|
| 642 |
+
b) Requiring preservation of specified reasonable legal notices or
|
| 643 |
+
author attributions in that material or in the Appropriate Legal
|
| 644 |
+
Notices displayed by works containing it; or
|
| 645 |
+
|
| 646 |
+
c) Prohibiting misrepresentation of the origin of that material, or
|
| 647 |
+
requiring that modified versions of such material be marked in
|
| 648 |
+
reasonable ways as different from the original version; or
|
| 649 |
+
|
| 650 |
+
d) Limiting the use for publicity purposes of names of licensors or
|
| 651 |
+
authors of the material; or
|
| 652 |
+
|
| 653 |
+
e) Declining to grant rights under trademark law for use of some
|
| 654 |
+
trade names, trademarks, or service marks; or
|
| 655 |
+
|
| 656 |
+
f) Requiring indemnification of licensors and authors of that
|
| 657 |
+
material by anyone who conveys the material (or modified versions of
|
| 658 |
+
it) with contractual assumptions of liability to the recipient, for
|
| 659 |
+
any liability that these contractual assumptions directly impose on
|
| 660 |
+
those licensors and authors.
|
| 661 |
+
|
| 662 |
+
All other non-permissive additional terms are considered "further
|
| 663 |
+
restrictions" within the meaning of section 10. If the Program as you
|
| 664 |
+
received it, or any part of it, contains a notice stating that it is
|
| 665 |
+
governed by this License along with a term that is a further
|
| 666 |
+
restriction, you may remove that term. If a license document contains
|
| 667 |
+
a further restriction but permits relicensing or conveying under this
|
| 668 |
+
License, you may add to a covered work material governed by the terms
|
| 669 |
+
of that license document, provided that the further restriction does
|
| 670 |
+
not survive such relicensing or conveying.
|
| 671 |
+
|
| 672 |
+
If you add terms to a covered work in accord with this section, you
|
| 673 |
+
must place, in the relevant source files, a statement of the
|
| 674 |
+
additional terms that apply to those files, or a notice indicating
|
| 675 |
+
where to find the applicable terms.
|
| 676 |
+
|
| 677 |
+
Additional terms, permissive or non-permissive, may be stated in the
|
| 678 |
+
form of a separately written license, or stated as exceptions;
|
| 679 |
+
the above requirements apply either way.
|
| 680 |
+
|
| 681 |
+
8. Termination.
|
| 682 |
+
|
| 683 |
+
You may not propagate or modify a covered work except as expressly
|
| 684 |
+
provided under this License. Any attempt otherwise to propagate or
|
| 685 |
+
modify it is void, and will automatically terminate your rights under
|
| 686 |
+
this License (including any patent licenses granted under the third
|
| 687 |
+
paragraph of section 11).
|
| 688 |
+
|
| 689 |
+
However, if you cease all violation of this License, then your
|
| 690 |
+
license from a particular copyright holder is reinstated (a)
|
| 691 |
+
provisionally, unless and until the copyright holder explicitly and
|
| 692 |
+
finally terminates your license, and (b) permanently, if the copyright
|
| 693 |
+
holder fails to notify you of the violation by some reasonable means
|
| 694 |
+
prior to 60 days after the cessation.
|
| 695 |
+
|
| 696 |
+
Moreover, your license from a particular copyright holder is
|
| 697 |
+
reinstated permanently if the copyright holder notifies you of the
|
| 698 |
+
violation by some reasonable means, this is the first time you have
|
| 699 |
+
received notice of violation of this License (for any work) from that
|
| 700 |
+
copyright holder, and you cure the violation prior to 30 days after
|
| 701 |
+
your receipt of the notice.
|
| 702 |
+
|
| 703 |
+
Termination of your rights under this section does not terminate the
|
| 704 |
+
licenses of parties who have received copies or rights from you under
|
| 705 |
+
this License. If your rights have been terminated and not permanently
|
| 706 |
+
reinstated, you do not qualify to receive new licenses for the same
|
| 707 |
+
material under section 10.
|
| 708 |
+
|
| 709 |
+
9. Acceptance Not Required for Having Copies.
|
| 710 |
+
|
| 711 |
+
You are not required to accept this License in order to receive or
|
| 712 |
+
run a copy of the Program. Ancillary propagation of a covered work
|
| 713 |
+
occurring solely as a consequence of using peer-to-peer transmission
|
| 714 |
+
to receive a copy likewise does not require acceptance. However,
|
| 715 |
+
nothing other than this License grants you permission to propagate or
|
| 716 |
+
modify any covered work. These actions infringe copyright if you do
|
| 717 |
+
not accept this License. Therefore, by modifying or propagating a
|
| 718 |
+
covered work, you indicate your acceptance of this License to do so.
|
| 719 |
+
|
| 720 |
+
10. Automatic Licensing of Downstream Recipients.
|
| 721 |
+
|
| 722 |
+
Each time you convey a covered work, the recipient automatically
|
| 723 |
+
receives a license from the original licensors, to run, modify and
|
| 724 |
+
propagate that work, subject to this License. You are not responsible
|
| 725 |
+
for enforcing compliance by third parties with this License.
|
| 726 |
+
|
| 727 |
+
An "entity transaction" is a transaction transferring control of an
|
| 728 |
+
organization, or substantially all assets of one, or subdividing an
|
| 729 |
+
organization, or merging organizations. If propagation of a covered
|
| 730 |
+
work results from an entity transaction, each party to that
|
| 731 |
+
transaction who receives a copy of the work also receives whatever
|
| 732 |
+
licenses to the work the party's predecessor in interest had or could
|
| 733 |
+
give under the previous paragraph, plus a right to possession of the
|
| 734 |
+
Corresponding Source of the work from the predecessor in interest, if
|
| 735 |
+
the predecessor has it or can get it with reasonable efforts.
|
| 736 |
+
|
| 737 |
+
You may not impose any further restrictions on the exercise of the
|
| 738 |
+
rights granted or affirmed under this License. For example, you may
|
| 739 |
+
not impose a license fee, royalty, or other charge for exercise of
|
| 740 |
+
rights granted under this License, and you may not initiate litigation
|
| 741 |
+
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
| 742 |
+
any patent claim is infringed by making, using, selling, offering for
|
| 743 |
+
sale, or importing the Program or any portion of it.
|
| 744 |
+
|
| 745 |
+
11. Patents.
|
| 746 |
+
|
| 747 |
+
A "contributor" is a copyright holder who authorizes use under this
|
| 748 |
+
License of the Program or a work on which the Program is based. The
|
| 749 |
+
work thus licensed is called the contributor's "contributor version".
|
| 750 |
+
|
| 751 |
+
A contributor's "essential patent claims" are all patent claims
|
| 752 |
+
owned or controlled by the contributor, whether already acquired or
|
| 753 |
+
hereafter acquired, that would be infringed by some manner, permitted
|
| 754 |
+
by this License, of making, using, or selling its contributor version,
|
| 755 |
+
but do not include claims that would be infringed only as a
|
| 756 |
+
consequence of further modification of the contributor version. For
|
| 757 |
+
purposes of this definition, "control" includes the right to grant
|
| 758 |
+
patent sublicenses in a manner consistent with the requirements of
|
| 759 |
+
this License.
|
| 760 |
+
|
| 761 |
+
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
| 762 |
+
patent license under the contributor's essential patent claims, to
|
| 763 |
+
make, use, sell, offer for sale, import and otherwise run, modify and
|
| 764 |
+
propagate the contents of its contributor version.
|
| 765 |
+
|
| 766 |
+
In the following three paragraphs, a "patent license" is any express
|
| 767 |
+
agreement or commitment, however denominated, not to enforce a patent
|
| 768 |
+
(such as an express permission to practice a patent or covenant not to
|
| 769 |
+
sue for patent infringement). To "grant" such a patent license to a
|
| 770 |
+
party means to make such an agreement or commitment not to enforce a
|
| 771 |
+
patent against the party.
|
| 772 |
+
|
| 773 |
+
If you convey a covered work, knowingly relying on a patent license,
|
| 774 |
+
and the Corresponding Source of the work is not available for anyone
|
| 775 |
+
to copy, free of charge and under the terms of this License, through a
|
| 776 |
+
publicly available network server or other readily accessible means,
|
| 777 |
+
then you must either (1) cause the Corresponding Source to be so
|
| 778 |
+
available, or (2) arrange to deprive yourself of the benefit of the
|
| 779 |
+
patent license for this particular work, or (3) arrange, in a manner
|
| 780 |
+
consistent with the requirements of this License, to extend the patent
|
| 781 |
+
license to downstream recipients. "Knowingly relying" means you have
|
| 782 |
+
actual knowledge that, but for the patent license, your conveying the
|
| 783 |
+
covered work in a country, or your recipient's use of the covered work
|
| 784 |
+
in a country, would infringe one or more identifiable patents in that
|
| 785 |
+
country that you have reason to believe are valid.
|
| 786 |
+
|
| 787 |
+
If, pursuant to or in connection with a single transaction or
|
| 788 |
+
arrangement, you convey, or propagate by procuring conveyance of, a
|
| 789 |
+
covered work, and grant a patent license to some of the parties
|
| 790 |
+
receiving the covered work authorizing them to use, propagate, modify
|
| 791 |
+
or convey a specific copy of the covered work, then the patent license
|
| 792 |
+
you grant is automatically extended to all recipients of the covered
|
| 793 |
+
work and works based on it.
|
| 794 |
+
|
| 795 |
+
A patent license is "discriminatory" if it does not include within
|
| 796 |
+
the scope of its coverage, prohibits the exercise of, or is
|
| 797 |
+
conditioned on the non-exercise of one or more of the rights that are
|
| 798 |
+
specifically granted under this License. You may not convey a covered
|
| 799 |
+
work if you are a party to an arrangement with a third party that is
|
| 800 |
+
in the business of distributing software, under which you make payment
|
| 801 |
+
to the third party based on the extent of your activity of conveying
|
| 802 |
+
the work, and under which the third party grants, to any of the
|
| 803 |
+
parties who would receive the covered work from you, a discriminatory
|
| 804 |
+
patent license (a) in connection with copies of the covered work
|
| 805 |
+
conveyed by you (or copies made from those copies), or (b) primarily
|
| 806 |
+
for and in connection with specific products or compilations that
|
| 807 |
+
contain the covered work, unless you entered into that arrangement,
|
| 808 |
+
or that patent license was granted, prior to 28 March 2007.
|
| 809 |
+
|
| 810 |
+
Nothing in this License shall be construed as excluding or limiting
|
| 811 |
+
any implied license or other defenses to infringement that may
|
| 812 |
+
otherwise be available to you under applicable patent law.
|
| 813 |
+
|
| 814 |
+
12. No Surrender of Others' Freedom.
|
| 815 |
+
|
| 816 |
+
If conditions are imposed on you (whether by court order, agreement or
|
| 817 |
+
otherwise) that contradict the conditions of this License, they do not
|
| 818 |
+
excuse you from the conditions of this License. If you cannot convey a
|
| 819 |
+
covered work so as to satisfy simultaneously your obligations under this
|
| 820 |
+
License and any other pertinent obligations, then as a consequence you may
|
| 821 |
+
not convey it at all. For example, if you agree to terms that obligate you
|
| 822 |
+
to collect a royalty for further conveying from those to whom you convey
|
| 823 |
+
the Program, the only way you could satisfy both those terms and this
|
| 824 |
+
License would be to refrain entirely from conveying the Program.
|
| 825 |
+
|
| 826 |
+
13. Use with the GNU Affero General Public License.
|
| 827 |
+
|
| 828 |
+
Notwithstanding any other provision of this License, you have
|
| 829 |
+
permission to link or combine any covered work with a work licensed
|
| 830 |
+
under version 3 of the GNU Affero General Public License into a single
|
| 831 |
+
combined work, and to convey the resulting work. The terms of this
|
| 832 |
+
License will continue to apply to the part which is the covered work,
|
| 833 |
+
but the special requirements of the GNU Affero General Public License,
|
| 834 |
+
section 13, concerning interaction through a network will apply to the
|
| 835 |
+
combination as such.
|
| 836 |
+
|
| 837 |
+
14. Revised Versions of this License.
|
| 838 |
+
|
| 839 |
+
The Free Software Foundation may publish revised and/or new versions of
|
| 840 |
+
the GNU General Public License from time to time. Such new versions will
|
| 841 |
+
be similar in spirit to the present version, but may differ in detail to
|
| 842 |
+
address new problems or concerns.
|
| 843 |
+
|
| 844 |
+
Each version is given a distinguishing version number. If the
|
| 845 |
+
Program specifies that a certain numbered version of the GNU General
|
| 846 |
+
Public License "or any later version" applies to it, you have the
|
| 847 |
+
option of following the terms and conditions either of that numbered
|
| 848 |
+
version or of any later version published by the Free Software
|
| 849 |
+
Foundation. If the Program does not specify a version number of the
|
| 850 |
+
GNU General Public License, you may choose any version ever published
|
| 851 |
+
by the Free Software Foundation.
|
| 852 |
+
|
| 853 |
+
If the Program specifies that a proxy can decide which future
|
| 854 |
+
versions of the GNU General Public License can be used, that proxy's
|
| 855 |
+
public statement of acceptance of a version permanently authorizes you
|
| 856 |
+
to choose that version for the Program.
|
| 857 |
+
|
| 858 |
+
Later license versions may give you additional or different
|
| 859 |
+
permissions. However, no additional obligations are imposed on any
|
| 860 |
+
author or copyright holder as a result of your choosing to follow a
|
| 861 |
+
later version.
|
| 862 |
+
|
| 863 |
+
15. Disclaimer of Warranty.
|
| 864 |
+
|
| 865 |
+
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
| 866 |
+
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
| 867 |
+
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
| 868 |
+
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
| 869 |
+
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
| 870 |
+
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
| 871 |
+
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
| 872 |
+
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
| 873 |
+
|
| 874 |
+
16. Limitation of Liability.
|
| 875 |
+
|
| 876 |
+
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
| 877 |
+
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
| 878 |
+
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
| 879 |
+
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
| 880 |
+
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
| 881 |
+
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
| 882 |
+
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
| 883 |
+
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
| 884 |
+
SUCH DAMAGES.
|
| 885 |
+
|
| 886 |
+
17. Interpretation of Sections 15 and 16.
|
| 887 |
+
|
| 888 |
+
If the disclaimer of warranty and limitation of liability provided
|
| 889 |
+
above cannot be given local legal effect according to their terms,
|
| 890 |
+
reviewing courts shall apply local law that most closely approximates
|
| 891 |
+
an absolute waiver of all civil liability in connection with the
|
| 892 |
+
Program, unless a warranty or assumption of liability accompanies a
|
| 893 |
+
copy of the Program in return for a fee.
|
| 894 |
+
|
| 895 |
+
END OF TERMS AND CONDITIONS
|
| 896 |
+
|
| 897 |
+
How to Apply These Terms to Your New Programs
|
| 898 |
+
|
| 899 |
+
If you develop a new program, and you want it to be of the greatest
|
| 900 |
+
possible use to the public, the best way to achieve this is to make it
|
| 901 |
+
free software which everyone can redistribute and change under these terms.
|
| 902 |
+
|
| 903 |
+
To do so, attach the following notices to the program. It is safest
|
| 904 |
+
to attach them to the start of each source file to most effectively
|
| 905 |
+
state the exclusion of warranty; and each file should have at least
|
| 906 |
+
the "copyright" line and a pointer to where the full notice is found.
|
| 907 |
+
|
| 908 |
+
<one line to give the program's name and a brief idea of what it does.>
|
| 909 |
+
Copyright (C) <year> <name of author>
|
| 910 |
+
|
| 911 |
+
This program is free software: you can redistribute it and/or modify
|
| 912 |
+
it under the terms of the GNU General Public License as published by
|
| 913 |
+
the Free Software Foundation, either version 3 of the License, or
|
| 914 |
+
(at your option) any later version.
|
| 915 |
+
|
| 916 |
+
This program is distributed in the hope that it will be useful,
|
| 917 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 918 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 919 |
+
GNU General Public License for more details.
|
| 920 |
+
|
| 921 |
+
You should have received a copy of the GNU General Public License
|
| 922 |
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| 923 |
+
|
| 924 |
+
Also add information on how to contact you by electronic and paper mail.
|
| 925 |
+
|
| 926 |
+
If the program does terminal interaction, make it output a short
|
| 927 |
+
notice like this when it starts in an interactive mode:
|
| 928 |
+
|
| 929 |
+
<program> Copyright (C) <year> <name of author>
|
| 930 |
+
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
| 931 |
+
This is free software, and you are welcome to redistribute it
|
| 932 |
+
under certain conditions; type `show c' for details.
|
| 933 |
+
|
| 934 |
+
The hypothetical commands `show w' and `show c' should show the appropriate
|
| 935 |
+
parts of the General Public License. Of course, your program's commands
|
| 936 |
+
might be different; for a GUI interface, you would use an "about box".
|
| 937 |
+
|
| 938 |
+
You should also get your employer (if you work as a programmer) or school,
|
| 939 |
+
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
| 940 |
+
For more information on this, and how to apply and follow the GNU GPL, see
|
| 941 |
+
<http://www.gnu.org/licenses/>.
|
| 942 |
+
|
| 943 |
+
The GNU General Public License does not permit incorporating your program
|
| 944 |
+
into proprietary programs. If your program is a subroutine library, you
|
| 945 |
+
may consider it more useful to permit linking proprietary applications with
|
| 946 |
+
the library. If this is what you want to do, use the GNU Lesser General
|
| 947 |
+
Public License instead of this License. But first, please read
|
| 948 |
+
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
| 949 |
+
|
| 950 |
+
Name: libquadmath
|
| 951 |
+
Files: numpy/.dylibs/libquadmath*.so
|
| 952 |
+
Description: dynamically linked to files compiled with gcc
|
| 953 |
+
Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libquadmath
|
| 954 |
+
License: LGPL-2.1-or-later
|
| 955 |
+
|
| 956 |
+
GCC Quad-Precision Math Library
|
| 957 |
+
Copyright (C) 2010-2019 Free Software Foundation, Inc.
|
| 958 |
+
Written by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
| 959 |
+
|
| 960 |
+
This file is part of the libquadmath library.
|
| 961 |
+
Libquadmath is free software; you can redistribute it and/or
|
| 962 |
+
modify it under the terms of the GNU Library General Public
|
| 963 |
+
License as published by the Free Software Foundation; either
|
| 964 |
+
version 2.1 of the License, or (at your option) any later version.
|
| 965 |
+
|
| 966 |
+
Libquadmath is distributed in the hope that it will be useful,
|
| 967 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 968 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
| 969 |
+
Lesser General Public License for more details.
|
| 970 |
+
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
|
.venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/METADATA
ADDED
|
@@ -0,0 +1,1091 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Metadata-Version: 2.1
|
| 2 |
+
Name: numpy
|
| 3 |
+
Version: 2.2.6
|
| 4 |
+
Summary: Fundamental package for array computing in Python
|
| 5 |
+
Author: Travis E. Oliphant et al.
|
| 6 |
+
Maintainer-Email: NumPy Developers <numpy-discussion@python.org>
|
| 7 |
+
License: Copyright (c) 2005-2024, NumPy Developers.
|
| 8 |
+
All rights reserved.
|
| 9 |
+
|
| 10 |
+
Redistribution and use in source and binary forms, with or without
|
| 11 |
+
modification, are permitted provided that the following conditions are
|
| 12 |
+
met:
|
| 13 |
+
|
| 14 |
+
* Redistributions of source code must retain the above copyright
|
| 15 |
+
notice, this list of conditions and the following disclaimer.
|
| 16 |
+
|
| 17 |
+
* Redistributions in binary form must reproduce the above
|
| 18 |
+
copyright notice, this list of conditions and the following
|
| 19 |
+
disclaimer in the documentation and/or other materials provided
|
| 20 |
+
with the distribution.
|
| 21 |
+
|
| 22 |
+
* Neither the name of the NumPy Developers nor the names of any
|
| 23 |
+
contributors may be used to endorse or promote products derived
|
| 24 |
+
from this software without specific prior written permission.
|
| 25 |
+
|
| 26 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 27 |
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 28 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 29 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| 30 |
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| 31 |
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| 32 |
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| 33 |
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| 34 |
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| 35 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 36 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 37 |
+
|
| 38 |
+
----
|
| 39 |
+
|
| 40 |
+
The NumPy repository and source distributions bundle several libraries that are
|
| 41 |
+
compatibly licensed. We list these here.
|
| 42 |
+
|
| 43 |
+
Name: lapack-lite
|
| 44 |
+
Files: numpy/linalg/lapack_lite/*
|
| 45 |
+
License: BSD-3-Clause
|
| 46 |
+
For details, see numpy/linalg/lapack_lite/LICENSE.txt
|
| 47 |
+
|
| 48 |
+
Name: dragon4
|
| 49 |
+
Files: numpy/_core/src/multiarray/dragon4.c
|
| 50 |
+
License: MIT
|
| 51 |
+
For license text, see numpy/_core/src/multiarray/dragon4.c
|
| 52 |
+
|
| 53 |
+
Name: libdivide
|
| 54 |
+
Files: numpy/_core/include/numpy/libdivide/*
|
| 55 |
+
License: Zlib
|
| 56 |
+
For license text, see numpy/_core/include/numpy/libdivide/LICENSE.txt
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
Note that the following files are vendored in the repository and sdist but not
|
| 60 |
+
installed in built numpy packages:
|
| 61 |
+
|
| 62 |
+
Name: Meson
|
| 63 |
+
Files: vendored-meson/meson/*
|
| 64 |
+
License: Apache 2.0
|
| 65 |
+
For license text, see vendored-meson/meson/COPYING
|
| 66 |
+
|
| 67 |
+
Name: spin
|
| 68 |
+
Files: .spin/cmds.py
|
| 69 |
+
License: BSD-3
|
| 70 |
+
For license text, see .spin/LICENSE
|
| 71 |
+
|
| 72 |
+
Name: tempita
|
| 73 |
+
Files: numpy/_build_utils/tempita/*
|
| 74 |
+
License: MIT
|
| 75 |
+
For details, see numpy/_build_utils/tempita/LICENCE.txt
|
| 76 |
+
|
| 77 |
+
----
|
| 78 |
+
|
| 79 |
+
This binary distribution of NumPy also bundles the following software:
|
| 80 |
+
|
| 81 |
+
Name: OpenBLAS
|
| 82 |
+
Files: numpy/.dylibs/libscipy_openblas*.so
|
| 83 |
+
Description: bundled as a dynamically linked library
|
| 84 |
+
Availability: https://github.com/OpenMathLib/OpenBLAS/
|
| 85 |
+
License: BSD-3-Clause
|
| 86 |
+
Copyright (c) 2011-2014, The OpenBLAS Project
|
| 87 |
+
All rights reserved.
|
| 88 |
+
|
| 89 |
+
Redistribution and use in source and binary forms, with or without
|
| 90 |
+
modification, are permitted provided that the following conditions are
|
| 91 |
+
met:
|
| 92 |
+
|
| 93 |
+
1. Redistributions of source code must retain the above copyright
|
| 94 |
+
notice, this list of conditions and the following disclaimer.
|
| 95 |
+
|
| 96 |
+
2. Redistributions in binary form must reproduce the above copyright
|
| 97 |
+
notice, this list of conditions and the following disclaimer in
|
| 98 |
+
the documentation and/or other materials provided with the
|
| 99 |
+
distribution.
|
| 100 |
+
3. Neither the name of the OpenBLAS project nor the names of
|
| 101 |
+
its contributors may be used to endorse or promote products
|
| 102 |
+
derived from this software without specific prior written
|
| 103 |
+
permission.
|
| 104 |
+
|
| 105 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| 106 |
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| 107 |
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| 108 |
+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
| 109 |
+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
| 110 |
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
| 111 |
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
| 112 |
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
| 113 |
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
| 114 |
+
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 115 |
+
|
| 116 |
+
|
| 117 |
+
Name: LAPACK
|
| 118 |
+
Files: numpy/.dylibs/libscipy_openblas*.so
|
| 119 |
+
Description: bundled in OpenBLAS
|
| 120 |
+
Availability: https://github.com/OpenMathLib/OpenBLAS/
|
| 121 |
+
License: BSD-3-Clause-Attribution
|
| 122 |
+
Copyright (c) 1992-2013 The University of Tennessee and The University
|
| 123 |
+
of Tennessee Research Foundation. All rights
|
| 124 |
+
reserved.
|
| 125 |
+
Copyright (c) 2000-2013 The University of California Berkeley. All
|
| 126 |
+
rights reserved.
|
| 127 |
+
Copyright (c) 2006-2013 The University of Colorado Denver. All rights
|
| 128 |
+
reserved.
|
| 129 |
+
|
| 130 |
+
$COPYRIGHT$
|
| 131 |
+
|
| 132 |
+
Additional copyrights may follow
|
| 133 |
+
|
| 134 |
+
$HEADER$
|
| 135 |
+
|
| 136 |
+
Redistribution and use in source and binary forms, with or without
|
| 137 |
+
modification, are permitted provided that the following conditions are
|
| 138 |
+
met:
|
| 139 |
+
|
| 140 |
+
- Redistributions of source code must retain the above copyright
|
| 141 |
+
notice, this list of conditions and the following disclaimer.
|
| 142 |
+
|
| 143 |
+
- Redistributions in binary form must reproduce the above copyright
|
| 144 |
+
notice, this list of conditions and the following disclaimer listed
|
| 145 |
+
in this license in the documentation and/or other materials
|
| 146 |
+
provided with the distribution.
|
| 147 |
+
|
| 148 |
+
- Neither the name of the copyright holders nor the names of its
|
| 149 |
+
contributors may be used to endorse or promote products derived from
|
| 150 |
+
this software without specific prior written permission.
|
| 151 |
+
|
| 152 |
+
The copyright holders provide no reassurances that the source code
|
| 153 |
+
provided does not infringe any patent, copyright, or any other
|
| 154 |
+
intellectual property rights of third parties. The copyright holders
|
| 155 |
+
disclaim any liability to any recipient for claims brought against
|
| 156 |
+
recipient by any third party for infringement of that parties
|
| 157 |
+
intellectual property rights.
|
| 158 |
+
|
| 159 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 160 |
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 161 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 162 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| 163 |
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| 164 |
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| 165 |
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| 166 |
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| 167 |
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| 168 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 169 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 170 |
+
|
| 171 |
+
|
| 172 |
+
Name: GCC runtime library
|
| 173 |
+
Files: numpy/.dylibs/libgfortran*, numpy/.dylibs/libgcc*
|
| 174 |
+
Description: dynamically linked to files compiled with gcc
|
| 175 |
+
Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libgfortran
|
| 176 |
+
License: GPL-3.0-with-GCC-exception
|
| 177 |
+
Copyright (C) 2002-2017 Free Software Foundation, Inc.
|
| 178 |
+
|
| 179 |
+
Libgfortran is free software; you can redistribute it and/or modify
|
| 180 |
+
it under the terms of the GNU General Public License as published by
|
| 181 |
+
the Free Software Foundation; either version 3, or (at your option)
|
| 182 |
+
any later version.
|
| 183 |
+
|
| 184 |
+
Libgfortran is distributed in the hope that it will be useful,
|
| 185 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 186 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 187 |
+
GNU General Public License for more details.
|
| 188 |
+
|
| 189 |
+
Under Section 7 of GPL version 3, you are granted additional
|
| 190 |
+
permissions described in the GCC Runtime Library Exception, version
|
| 191 |
+
3.1, as published by the Free Software Foundation.
|
| 192 |
+
|
| 193 |
+
You should have received a copy of the GNU General Public License and
|
| 194 |
+
a copy of the GCC Runtime Library Exception along with this program;
|
| 195 |
+
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
| 196 |
+
<http://www.gnu.org/licenses/>.
|
| 197 |
+
|
| 198 |
+
----
|
| 199 |
+
|
| 200 |
+
Full text of license texts referred to above follows (that they are
|
| 201 |
+
listed below does not necessarily imply the conditions apply to the
|
| 202 |
+
present binary release):
|
| 203 |
+
|
| 204 |
+
----
|
| 205 |
+
|
| 206 |
+
GCC RUNTIME LIBRARY EXCEPTION
|
| 207 |
+
|
| 208 |
+
Version 3.1, 31 March 2009
|
| 209 |
+
|
| 210 |
+
Copyright (C) 2009 Free Software Foundation, Inc. <http://fsf.org/>
|
| 211 |
+
|
| 212 |
+
Everyone is permitted to copy and distribute verbatim copies of this
|
| 213 |
+
license document, but changing it is not allowed.
|
| 214 |
+
|
| 215 |
+
This GCC Runtime Library Exception ("Exception") is an additional
|
| 216 |
+
permission under section 7 of the GNU General Public License, version
|
| 217 |
+
3 ("GPLv3"). It applies to a given file (the "Runtime Library") that
|
| 218 |
+
bears a notice placed by the copyright holder of the file stating that
|
| 219 |
+
the file is governed by GPLv3 along with this Exception.
|
| 220 |
+
|
| 221 |
+
When you use GCC to compile a program, GCC may combine portions of
|
| 222 |
+
certain GCC header files and runtime libraries with the compiled
|
| 223 |
+
program. The purpose of this Exception is to allow compilation of
|
| 224 |
+
non-GPL (including proprietary) programs to use, in this way, the
|
| 225 |
+
header files and runtime libraries covered by this Exception.
|
| 226 |
+
|
| 227 |
+
0. Definitions.
|
| 228 |
+
|
| 229 |
+
A file is an "Independent Module" if it either requires the Runtime
|
| 230 |
+
Library for execution after a Compilation Process, or makes use of an
|
| 231 |
+
interface provided by the Runtime Library, but is not otherwise based
|
| 232 |
+
on the Runtime Library.
|
| 233 |
+
|
| 234 |
+
"GCC" means a version of the GNU Compiler Collection, with or without
|
| 235 |
+
modifications, governed by version 3 (or a specified later version) of
|
| 236 |
+
the GNU General Public License (GPL) with the option of using any
|
| 237 |
+
subsequent versions published by the FSF.
|
| 238 |
+
|
| 239 |
+
"GPL-compatible Software" is software whose conditions of propagation,
|
| 240 |
+
modification and use would permit combination with GCC in accord with
|
| 241 |
+
the license of GCC.
|
| 242 |
+
|
| 243 |
+
"Target Code" refers to output from any compiler for a real or virtual
|
| 244 |
+
target processor architecture, in executable form or suitable for
|
| 245 |
+
input to an assembler, loader, linker and/or execution
|
| 246 |
+
phase. Notwithstanding that, Target Code does not include data in any
|
| 247 |
+
format that is used as a compiler intermediate representation, or used
|
| 248 |
+
for producing a compiler intermediate representation.
|
| 249 |
+
|
| 250 |
+
The "Compilation Process" transforms code entirely represented in
|
| 251 |
+
non-intermediate languages designed for human-written code, and/or in
|
| 252 |
+
Java Virtual Machine byte code, into Target Code. Thus, for example,
|
| 253 |
+
use of source code generators and preprocessors need not be considered
|
| 254 |
+
part of the Compilation Process, since the Compilation Process can be
|
| 255 |
+
understood as starting with the output of the generators or
|
| 256 |
+
preprocessors.
|
| 257 |
+
|
| 258 |
+
A Compilation Process is "Eligible" if it is done using GCC, alone or
|
| 259 |
+
with other GPL-compatible software, or if it is done without using any
|
| 260 |
+
work based on GCC. For example, using non-GPL-compatible Software to
|
| 261 |
+
optimize any GCC intermediate representations would not qualify as an
|
| 262 |
+
Eligible Compilation Process.
|
| 263 |
+
|
| 264 |
+
1. Grant of Additional Permission.
|
| 265 |
+
|
| 266 |
+
You have permission to propagate a work of Target Code formed by
|
| 267 |
+
combining the Runtime Library with Independent Modules, even if such
|
| 268 |
+
propagation would otherwise violate the terms of GPLv3, provided that
|
| 269 |
+
all Target Code was generated by Eligible Compilation Processes. You
|
| 270 |
+
may then convey such a combination under terms of your choice,
|
| 271 |
+
consistent with the licensing of the Independent Modules.
|
| 272 |
+
|
| 273 |
+
2. No Weakening of GCC Copyleft.
|
| 274 |
+
|
| 275 |
+
The availability of this Exception does not imply any general
|
| 276 |
+
presumption that third-party software is unaffected by the copyleft
|
| 277 |
+
requirements of the license of GCC.
|
| 278 |
+
|
| 279 |
+
----
|
| 280 |
+
|
| 281 |
+
GNU GENERAL PUBLIC LICENSE
|
| 282 |
+
Version 3, 29 June 2007
|
| 283 |
+
|
| 284 |
+
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
| 285 |
+
Everyone is permitted to copy and distribute verbatim copies
|
| 286 |
+
of this license document, but changing it is not allowed.
|
| 287 |
+
|
| 288 |
+
Preamble
|
| 289 |
+
|
| 290 |
+
The GNU General Public License is a free, copyleft license for
|
| 291 |
+
software and other kinds of works.
|
| 292 |
+
|
| 293 |
+
The licenses for most software and other practical works are designed
|
| 294 |
+
to take away your freedom to share and change the works. By contrast,
|
| 295 |
+
the GNU General Public License is intended to guarantee your freedom to
|
| 296 |
+
share and change all versions of a program--to make sure it remains free
|
| 297 |
+
software for all its users. We, the Free Software Foundation, use the
|
| 298 |
+
GNU General Public License for most of our software; it applies also to
|
| 299 |
+
any other work released this way by its authors. You can apply it to
|
| 300 |
+
your programs, too.
|
| 301 |
+
|
| 302 |
+
When we speak of free software, we are referring to freedom, not
|
| 303 |
+
price. Our General Public Licenses are designed to make sure that you
|
| 304 |
+
have the freedom to distribute copies of free software (and charge for
|
| 305 |
+
them if you wish), that you receive source code or can get it if you
|
| 306 |
+
want it, that you can change the software or use pieces of it in new
|
| 307 |
+
free programs, and that you know you can do these things.
|
| 308 |
+
|
| 309 |
+
To protect your rights, we need to prevent others from denying you
|
| 310 |
+
these rights or asking you to surrender the rights. Therefore, you have
|
| 311 |
+
certain responsibilities if you distribute copies of the software, or if
|
| 312 |
+
you modify it: responsibilities to respect the freedom of others.
|
| 313 |
+
|
| 314 |
+
For example, if you distribute copies of such a program, whether
|
| 315 |
+
gratis or for a fee, you must pass on to the recipients the same
|
| 316 |
+
freedoms that you received. You must make sure that they, too, receive
|
| 317 |
+
or can get the source code. And you must show them these terms so they
|
| 318 |
+
know their rights.
|
| 319 |
+
|
| 320 |
+
Developers that use the GNU GPL protect your rights with two steps:
|
| 321 |
+
(1) assert copyright on the software, and (2) offer you this License
|
| 322 |
+
giving you legal permission to copy, distribute and/or modify it.
|
| 323 |
+
|
| 324 |
+
For the developers' and authors' protection, the GPL clearly explains
|
| 325 |
+
that there is no warranty for this free software. For both users' and
|
| 326 |
+
authors' sake, the GPL requires that modified versions be marked as
|
| 327 |
+
changed, so that their problems will not be attributed erroneously to
|
| 328 |
+
authors of previous versions.
|
| 329 |
+
|
| 330 |
+
Some devices are designed to deny users access to install or run
|
| 331 |
+
modified versions of the software inside them, although the manufacturer
|
| 332 |
+
can do so. This is fundamentally incompatible with the aim of
|
| 333 |
+
protecting users' freedom to change the software. The systematic
|
| 334 |
+
pattern of such abuse occurs in the area of products for individuals to
|
| 335 |
+
use, which is precisely where it is most unacceptable. Therefore, we
|
| 336 |
+
have designed this version of the GPL to prohibit the practice for those
|
| 337 |
+
products. If such problems arise substantially in other domains, we
|
| 338 |
+
stand ready to extend this provision to those domains in future versions
|
| 339 |
+
of the GPL, as needed to protect the freedom of users.
|
| 340 |
+
|
| 341 |
+
Finally, every program is threatened constantly by software patents.
|
| 342 |
+
States should not allow patents to restrict development and use of
|
| 343 |
+
software on general-purpose computers, but in those that do, we wish to
|
| 344 |
+
avoid the special danger that patents applied to a free program could
|
| 345 |
+
make it effectively proprietary. To prevent this, the GPL assures that
|
| 346 |
+
patents cannot be used to render the program non-free.
|
| 347 |
+
|
| 348 |
+
The precise terms and conditions for copying, distribution and
|
| 349 |
+
modification follow.
|
| 350 |
+
|
| 351 |
+
TERMS AND CONDITIONS
|
| 352 |
+
|
| 353 |
+
0. Definitions.
|
| 354 |
+
|
| 355 |
+
"This License" refers to version 3 of the GNU General Public License.
|
| 356 |
+
|
| 357 |
+
"Copyright" also means copyright-like laws that apply to other kinds of
|
| 358 |
+
works, such as semiconductor masks.
|
| 359 |
+
|
| 360 |
+
"The Program" refers to any copyrightable work licensed under this
|
| 361 |
+
License. Each licensee is addressed as "you". "Licensees" and
|
| 362 |
+
"recipients" may be individuals or organizations.
|
| 363 |
+
|
| 364 |
+
To "modify" a work means to copy from or adapt all or part of the work
|
| 365 |
+
in a fashion requiring copyright permission, other than the making of an
|
| 366 |
+
exact copy. The resulting work is called a "modified version" of the
|
| 367 |
+
earlier work or a work "based on" the earlier work.
|
| 368 |
+
|
| 369 |
+
A "covered work" means either the unmodified Program or a work based
|
| 370 |
+
on the Program.
|
| 371 |
+
|
| 372 |
+
To "propagate" a work means to do anything with it that, without
|
| 373 |
+
permission, would make you directly or secondarily liable for
|
| 374 |
+
infringement under applicable copyright law, except executing it on a
|
| 375 |
+
computer or modifying a private copy. Propagation includes copying,
|
| 376 |
+
distribution (with or without modification), making available to the
|
| 377 |
+
public, and in some countries other activities as well.
|
| 378 |
+
|
| 379 |
+
To "convey" a work means any kind of propagation that enables other
|
| 380 |
+
parties to make or receive copies. Mere interaction with a user through
|
| 381 |
+
a computer network, with no transfer of a copy, is not conveying.
|
| 382 |
+
|
| 383 |
+
An interactive user interface displays "Appropriate Legal Notices"
|
| 384 |
+
to the extent that it includes a convenient and prominently visible
|
| 385 |
+
feature that (1) displays an appropriate copyright notice, and (2)
|
| 386 |
+
tells the user that there is no warranty for the work (except to the
|
| 387 |
+
extent that warranties are provided), that licensees may convey the
|
| 388 |
+
work under this License, and how to view a copy of this License. If
|
| 389 |
+
the interface presents a list of user commands or options, such as a
|
| 390 |
+
menu, a prominent item in the list meets this criterion.
|
| 391 |
+
|
| 392 |
+
1. Source Code.
|
| 393 |
+
|
| 394 |
+
The "source code" for a work means the preferred form of the work
|
| 395 |
+
for making modifications to it. "Object code" means any non-source
|
| 396 |
+
form of a work.
|
| 397 |
+
|
| 398 |
+
A "Standard Interface" means an interface that either is an official
|
| 399 |
+
standard defined by a recognized standards body, or, in the case of
|
| 400 |
+
interfaces specified for a particular programming language, one that
|
| 401 |
+
is widely used among developers working in that language.
|
| 402 |
+
|
| 403 |
+
The "System Libraries" of an executable work include anything, other
|
| 404 |
+
than the work as a whole, that (a) is included in the normal form of
|
| 405 |
+
packaging a Major Component, but which is not part of that Major
|
| 406 |
+
Component, and (b) serves only to enable use of the work with that
|
| 407 |
+
Major Component, or to implement a Standard Interface for which an
|
| 408 |
+
implementation is available to the public in source code form. A
|
| 409 |
+
"Major Component", in this context, means a major essential component
|
| 410 |
+
(kernel, window system, and so on) of the specific operating system
|
| 411 |
+
(if any) on which the executable work runs, or a compiler used to
|
| 412 |
+
produce the work, or an object code interpreter used to run it.
|
| 413 |
+
|
| 414 |
+
The "Corresponding Source" for a work in object code form means all
|
| 415 |
+
the source code needed to generate, install, and (for an executable
|
| 416 |
+
work) run the object code and to modify the work, including scripts to
|
| 417 |
+
control those activities. However, it does not include the work's
|
| 418 |
+
System Libraries, or general-purpose tools or generally available free
|
| 419 |
+
programs which are used unmodified in performing those activities but
|
| 420 |
+
which are not part of the work. For example, Corresponding Source
|
| 421 |
+
includes interface definition files associated with source files for
|
| 422 |
+
the work, and the source code for shared libraries and dynamically
|
| 423 |
+
linked subprograms that the work is specifically designed to require,
|
| 424 |
+
such as by intimate data communication or control flow between those
|
| 425 |
+
subprograms and other parts of the work.
|
| 426 |
+
|
| 427 |
+
The Corresponding Source need not include anything that users
|
| 428 |
+
can regenerate automatically from other parts of the Corresponding
|
| 429 |
+
Source.
|
| 430 |
+
|
| 431 |
+
The Corresponding Source for a work in source code form is that
|
| 432 |
+
same work.
|
| 433 |
+
|
| 434 |
+
2. Basic Permissions.
|
| 435 |
+
|
| 436 |
+
All rights granted under this License are granted for the term of
|
| 437 |
+
copyright on the Program, and are irrevocable provided the stated
|
| 438 |
+
conditions are met. This License explicitly affirms your unlimited
|
| 439 |
+
permission to run the unmodified Program. The output from running a
|
| 440 |
+
covered work is covered by this License only if the output, given its
|
| 441 |
+
content, constitutes a covered work. This License acknowledges your
|
| 442 |
+
rights of fair use or other equivalent, as provided by copyright law.
|
| 443 |
+
|
| 444 |
+
You may make, run and propagate covered works that you do not
|
| 445 |
+
convey, without conditions so long as your license otherwise remains
|
| 446 |
+
in force. You may convey covered works to others for the sole purpose
|
| 447 |
+
of having them make modifications exclusively for you, or provide you
|
| 448 |
+
with facilities for running those works, provided that you comply with
|
| 449 |
+
the terms of this License in conveying all material for which you do
|
| 450 |
+
not control copyright. Those thus making or running the covered works
|
| 451 |
+
for you must do so exclusively on your behalf, under your direction
|
| 452 |
+
and control, on terms that prohibit them from making any copies of
|
| 453 |
+
your copyrighted material outside their relationship with you.
|
| 454 |
+
|
| 455 |
+
Conveying under any other circumstances is permitted solely under
|
| 456 |
+
the conditions stated below. Sublicensing is not allowed; section 10
|
| 457 |
+
makes it unnecessary.
|
| 458 |
+
|
| 459 |
+
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
| 460 |
+
|
| 461 |
+
No covered work shall be deemed part of an effective technological
|
| 462 |
+
measure under any applicable law fulfilling obligations under article
|
| 463 |
+
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
| 464 |
+
similar laws prohibiting or restricting circumvention of such
|
| 465 |
+
measures.
|
| 466 |
+
|
| 467 |
+
When you convey a covered work, you waive any legal power to forbid
|
| 468 |
+
circumvention of technological measures to the extent such circumvention
|
| 469 |
+
is effected by exercising rights under this License with respect to
|
| 470 |
+
the covered work, and you disclaim any intention to limit operation or
|
| 471 |
+
modification of the work as a means of enforcing, against the work's
|
| 472 |
+
users, your or third parties' legal rights to forbid circumvention of
|
| 473 |
+
technological measures.
|
| 474 |
+
|
| 475 |
+
4. Conveying Verbatim Copies.
|
| 476 |
+
|
| 477 |
+
You may convey verbatim copies of the Program's source code as you
|
| 478 |
+
receive it, in any medium, provided that you conspicuously and
|
| 479 |
+
appropriately publish on each copy an appropriate copyright notice;
|
| 480 |
+
keep intact all notices stating that this License and any
|
| 481 |
+
non-permissive terms added in accord with section 7 apply to the code;
|
| 482 |
+
keep intact all notices of the absence of any warranty; and give all
|
| 483 |
+
recipients a copy of this License along with the Program.
|
| 484 |
+
|
| 485 |
+
You may charge any price or no price for each copy that you convey,
|
| 486 |
+
and you may offer support or warranty protection for a fee.
|
| 487 |
+
|
| 488 |
+
5. Conveying Modified Source Versions.
|
| 489 |
+
|
| 490 |
+
You may convey a work based on the Program, or the modifications to
|
| 491 |
+
produce it from the Program, in the form of source code under the
|
| 492 |
+
terms of section 4, provided that you also meet all of these conditions:
|
| 493 |
+
|
| 494 |
+
a) The work must carry prominent notices stating that you modified
|
| 495 |
+
it, and giving a relevant date.
|
| 496 |
+
|
| 497 |
+
b) The work must carry prominent notices stating that it is
|
| 498 |
+
released under this License and any conditions added under section
|
| 499 |
+
7. This requirement modifies the requirement in section 4 to
|
| 500 |
+
"keep intact all notices".
|
| 501 |
+
|
| 502 |
+
c) You must license the entire work, as a whole, under this
|
| 503 |
+
License to anyone who comes into possession of a copy. This
|
| 504 |
+
License will therefore apply, along with any applicable section 7
|
| 505 |
+
additional terms, to the whole of the work, and all its parts,
|
| 506 |
+
regardless of how they are packaged. This License gives no
|
| 507 |
+
permission to license the work in any other way, but it does not
|
| 508 |
+
invalidate such permission if you have separately received it.
|
| 509 |
+
|
| 510 |
+
d) If the work has interactive user interfaces, each must display
|
| 511 |
+
Appropriate Legal Notices; however, if the Program has interactive
|
| 512 |
+
interfaces that do not display Appropriate Legal Notices, your
|
| 513 |
+
work need not make them do so.
|
| 514 |
+
|
| 515 |
+
A compilation of a covered work with other separate and independent
|
| 516 |
+
works, which are not by their nature extensions of the covered work,
|
| 517 |
+
and which are not combined with it such as to form a larger program,
|
| 518 |
+
in or on a volume of a storage or distribution medium, is called an
|
| 519 |
+
"aggregate" if the compilation and its resulting copyright are not
|
| 520 |
+
used to limit the access or legal rights of the compilation's users
|
| 521 |
+
beyond what the individual works permit. Inclusion of a covered work
|
| 522 |
+
in an aggregate does not cause this License to apply to the other
|
| 523 |
+
parts of the aggregate.
|
| 524 |
+
|
| 525 |
+
6. Conveying Non-Source Forms.
|
| 526 |
+
|
| 527 |
+
You may convey a covered work in object code form under the terms
|
| 528 |
+
of sections 4 and 5, provided that you also convey the
|
| 529 |
+
machine-readable Corresponding Source under the terms of this License,
|
| 530 |
+
in one of these ways:
|
| 531 |
+
|
| 532 |
+
a) Convey the object code in, or embodied in, a physical product
|
| 533 |
+
(including a physical distribution medium), accompanied by the
|
| 534 |
+
Corresponding Source fixed on a durable physical medium
|
| 535 |
+
customarily used for software interchange.
|
| 536 |
+
|
| 537 |
+
b) Convey the object code in, or embodied in, a physical product
|
| 538 |
+
(including a physical distribution medium), accompanied by a
|
| 539 |
+
written offer, valid for at least three years and valid for as
|
| 540 |
+
long as you offer spare parts or customer support for that product
|
| 541 |
+
model, to give anyone who possesses the object code either (1) a
|
| 542 |
+
copy of the Corresponding Source for all the software in the
|
| 543 |
+
product that is covered by this License, on a durable physical
|
| 544 |
+
medium customarily used for software interchange, for a price no
|
| 545 |
+
more than your reasonable cost of physically performing this
|
| 546 |
+
conveying of source, or (2) access to copy the
|
| 547 |
+
Corresponding Source from a network server at no charge.
|
| 548 |
+
|
| 549 |
+
c) Convey individual copies of the object code with a copy of the
|
| 550 |
+
written offer to provide the Corresponding Source. This
|
| 551 |
+
alternative is allowed only occasionally and noncommercially, and
|
| 552 |
+
only if you received the object code with such an offer, in accord
|
| 553 |
+
with subsection 6b.
|
| 554 |
+
|
| 555 |
+
d) Convey the object code by offering access from a designated
|
| 556 |
+
place (gratis or for a charge), and offer equivalent access to the
|
| 557 |
+
Corresponding Source in the same way through the same place at no
|
| 558 |
+
further charge. You need not require recipients to copy the
|
| 559 |
+
Corresponding Source along with the object code. If the place to
|
| 560 |
+
copy the object code is a network server, the Corresponding Source
|
| 561 |
+
may be on a different server (operated by you or a third party)
|
| 562 |
+
that supports equivalent copying facilities, provided you maintain
|
| 563 |
+
clear directions next to the object code saying where to find the
|
| 564 |
+
Corresponding Source. Regardless of what server hosts the
|
| 565 |
+
Corresponding Source, you remain obligated to ensure that it is
|
| 566 |
+
available for as long as needed to satisfy these requirements.
|
| 567 |
+
|
| 568 |
+
e) Convey the object code using peer-to-peer transmission, provided
|
| 569 |
+
you inform other peers where the object code and Corresponding
|
| 570 |
+
Source of the work are being offered to the general public at no
|
| 571 |
+
charge under subsection 6d.
|
| 572 |
+
|
| 573 |
+
A separable portion of the object code, whose source code is excluded
|
| 574 |
+
from the Corresponding Source as a System Library, need not be
|
| 575 |
+
included in conveying the object code work.
|
| 576 |
+
|
| 577 |
+
A "User Product" is either (1) a "consumer product", which means any
|
| 578 |
+
tangible personal property which is normally used for personal, family,
|
| 579 |
+
or household purposes, or (2) anything designed or sold for incorporation
|
| 580 |
+
into a dwelling. In determining whether a product is a consumer product,
|
| 581 |
+
doubtful cases shall be resolved in favor of coverage. For a particular
|
| 582 |
+
product received by a particular user, "normally used" refers to a
|
| 583 |
+
typical or common use of that class of product, regardless of the status
|
| 584 |
+
of the particular user or of the way in which the particular user
|
| 585 |
+
actually uses, or expects or is expected to use, the product. A product
|
| 586 |
+
is a consumer product regardless of whether the product has substantial
|
| 587 |
+
commercial, industrial or non-consumer uses, unless such uses represent
|
| 588 |
+
the only significant mode of use of the product.
|
| 589 |
+
|
| 590 |
+
"Installation Information" for a User Product means any methods,
|
| 591 |
+
procedures, authorization keys, or other information required to install
|
| 592 |
+
and execute modified versions of a covered work in that User Product from
|
| 593 |
+
a modified version of its Corresponding Source. The information must
|
| 594 |
+
suffice to ensure that the continued functioning of the modified object
|
| 595 |
+
code is in no case prevented or interfered with solely because
|
| 596 |
+
modification has been made.
|
| 597 |
+
|
| 598 |
+
If you convey an object code work under this section in, or with, or
|
| 599 |
+
specifically for use in, a User Product, and the conveying occurs as
|
| 600 |
+
part of a transaction in which the right of possession and use of the
|
| 601 |
+
User Product is transferred to the recipient in perpetuity or for a
|
| 602 |
+
fixed term (regardless of how the transaction is characterized), the
|
| 603 |
+
Corresponding Source conveyed under this section must be accompanied
|
| 604 |
+
by the Installation Information. But this requirement does not apply
|
| 605 |
+
if neither you nor any third party retains the ability to install
|
| 606 |
+
modified object code on the User Product (for example, the work has
|
| 607 |
+
been installed in ROM).
|
| 608 |
+
|
| 609 |
+
The requirement to provide Installation Information does not include a
|
| 610 |
+
requirement to continue to provide support service, warranty, or updates
|
| 611 |
+
for a work that has been modified or installed by the recipient, or for
|
| 612 |
+
the User Product in which it has been modified or installed. Access to a
|
| 613 |
+
network may be denied when the modification itself materially and
|
| 614 |
+
adversely affects the operation of the network or violates the rules and
|
| 615 |
+
protocols for communication across the network.
|
| 616 |
+
|
| 617 |
+
Corresponding Source conveyed, and Installation Information provided,
|
| 618 |
+
in accord with this section must be in a format that is publicly
|
| 619 |
+
documented (and with an implementation available to the public in
|
| 620 |
+
source code form), and must require no special password or key for
|
| 621 |
+
unpacking, reading or copying.
|
| 622 |
+
|
| 623 |
+
7. Additional Terms.
|
| 624 |
+
|
| 625 |
+
"Additional permissions" are terms that supplement the terms of this
|
| 626 |
+
License by making exceptions from one or more of its conditions.
|
| 627 |
+
Additional permissions that are applicable to the entire Program shall
|
| 628 |
+
be treated as though they were included in this License, to the extent
|
| 629 |
+
that they are valid under applicable law. If additional permissions
|
| 630 |
+
apply only to part of the Program, that part may be used separately
|
| 631 |
+
under those permissions, but the entire Program remains governed by
|
| 632 |
+
this License without regard to the additional permissions.
|
| 633 |
+
|
| 634 |
+
When you convey a copy of a covered work, you may at your option
|
| 635 |
+
remove any additional permissions from that copy, or from any part of
|
| 636 |
+
it. (Additional permissions may be written to require their own
|
| 637 |
+
removal in certain cases when you modify the work.) You may place
|
| 638 |
+
additional permissions on material, added by you to a covered work,
|
| 639 |
+
for which you have or can give appropriate copyright permission.
|
| 640 |
+
|
| 641 |
+
Notwithstanding any other provision of this License, for material you
|
| 642 |
+
add to a covered work, you may (if authorized by the copyright holders of
|
| 643 |
+
that material) supplement the terms of this License with terms:
|
| 644 |
+
|
| 645 |
+
a) Disclaiming warranty or limiting liability differently from the
|
| 646 |
+
terms of sections 15 and 16 of this License; or
|
| 647 |
+
|
| 648 |
+
b) Requiring preservation of specified reasonable legal notices or
|
| 649 |
+
author attributions in that material or in the Appropriate Legal
|
| 650 |
+
Notices displayed by works containing it; or
|
| 651 |
+
|
| 652 |
+
c) Prohibiting misrepresentation of the origin of that material, or
|
| 653 |
+
requiring that modified versions of such material be marked in
|
| 654 |
+
reasonable ways as different from the original version; or
|
| 655 |
+
|
| 656 |
+
d) Limiting the use for publicity purposes of names of licensors or
|
| 657 |
+
authors of the material; or
|
| 658 |
+
|
| 659 |
+
e) Declining to grant rights under trademark law for use of some
|
| 660 |
+
trade names, trademarks, or service marks; or
|
| 661 |
+
|
| 662 |
+
f) Requiring indemnification of licensors and authors of that
|
| 663 |
+
material by anyone who conveys the material (or modified versions of
|
| 664 |
+
it) with contractual assumptions of liability to the recipient, for
|
| 665 |
+
any liability that these contractual assumptions directly impose on
|
| 666 |
+
those licensors and authors.
|
| 667 |
+
|
| 668 |
+
All other non-permissive additional terms are considered "further
|
| 669 |
+
restrictions" within the meaning of section 10. If the Program as you
|
| 670 |
+
received it, or any part of it, contains a notice stating that it is
|
| 671 |
+
governed by this License along with a term that is a further
|
| 672 |
+
restriction, you may remove that term. If a license document contains
|
| 673 |
+
a further restriction but permits relicensing or conveying under this
|
| 674 |
+
License, you may add to a covered work material governed by the terms
|
| 675 |
+
of that license document, provided that the further restriction does
|
| 676 |
+
not survive such relicensing or conveying.
|
| 677 |
+
|
| 678 |
+
If you add terms to a covered work in accord with this section, you
|
| 679 |
+
must place, in the relevant source files, a statement of the
|
| 680 |
+
additional terms that apply to those files, or a notice indicating
|
| 681 |
+
where to find the applicable terms.
|
| 682 |
+
|
| 683 |
+
Additional terms, permissive or non-permissive, may be stated in the
|
| 684 |
+
form of a separately written license, or stated as exceptions;
|
| 685 |
+
the above requirements apply either way.
|
| 686 |
+
|
| 687 |
+
8. Termination.
|
| 688 |
+
|
| 689 |
+
You may not propagate or modify a covered work except as expressly
|
| 690 |
+
provided under this License. Any attempt otherwise to propagate or
|
| 691 |
+
modify it is void, and will automatically terminate your rights under
|
| 692 |
+
this License (including any patent licenses granted under the third
|
| 693 |
+
paragraph of section 11).
|
| 694 |
+
|
| 695 |
+
However, if you cease all violation of this License, then your
|
| 696 |
+
license from a particular copyright holder is reinstated (a)
|
| 697 |
+
provisionally, unless and until the copyright holder explicitly and
|
| 698 |
+
finally terminates your license, and (b) permanently, if the copyright
|
| 699 |
+
holder fails to notify you of the violation by some reasonable means
|
| 700 |
+
prior to 60 days after the cessation.
|
| 701 |
+
|
| 702 |
+
Moreover, your license from a particular copyright holder is
|
| 703 |
+
reinstated permanently if the copyright holder notifies you of the
|
| 704 |
+
violation by some reasonable means, this is the first time you have
|
| 705 |
+
received notice of violation of this License (for any work) from that
|
| 706 |
+
copyright holder, and you cure the violation prior to 30 days after
|
| 707 |
+
your receipt of the notice.
|
| 708 |
+
|
| 709 |
+
Termination of your rights under this section does not terminate the
|
| 710 |
+
licenses of parties who have received copies or rights from you under
|
| 711 |
+
this License. If your rights have been terminated and not permanently
|
| 712 |
+
reinstated, you do not qualify to receive new licenses for the same
|
| 713 |
+
material under section 10.
|
| 714 |
+
|
| 715 |
+
9. Acceptance Not Required for Having Copies.
|
| 716 |
+
|
| 717 |
+
You are not required to accept this License in order to receive or
|
| 718 |
+
run a copy of the Program. Ancillary propagation of a covered work
|
| 719 |
+
occurring solely as a consequence of using peer-to-peer transmission
|
| 720 |
+
to receive a copy likewise does not require acceptance. However,
|
| 721 |
+
nothing other than this License grants you permission to propagate or
|
| 722 |
+
modify any covered work. These actions infringe copyright if you do
|
| 723 |
+
not accept this License. Therefore, by modifying or propagating a
|
| 724 |
+
covered work, you indicate your acceptance of this License to do so.
|
| 725 |
+
|
| 726 |
+
10. Automatic Licensing of Downstream Recipients.
|
| 727 |
+
|
| 728 |
+
Each time you convey a covered work, the recipient automatically
|
| 729 |
+
receives a license from the original licensors, to run, modify and
|
| 730 |
+
propagate that work, subject to this License. You are not responsible
|
| 731 |
+
for enforcing compliance by third parties with this License.
|
| 732 |
+
|
| 733 |
+
An "entity transaction" is a transaction transferring control of an
|
| 734 |
+
organization, or substantially all assets of one, or subdividing an
|
| 735 |
+
organization, or merging organizations. If propagation of a covered
|
| 736 |
+
work results from an entity transaction, each party to that
|
| 737 |
+
transaction who receives a copy of the work also receives whatever
|
| 738 |
+
licenses to the work the party's predecessor in interest had or could
|
| 739 |
+
give under the previous paragraph, plus a right to possession of the
|
| 740 |
+
Corresponding Source of the work from the predecessor in interest, if
|
| 741 |
+
the predecessor has it or can get it with reasonable efforts.
|
| 742 |
+
|
| 743 |
+
You may not impose any further restrictions on the exercise of the
|
| 744 |
+
rights granted or affirmed under this License. For example, you may
|
| 745 |
+
not impose a license fee, royalty, or other charge for exercise of
|
| 746 |
+
rights granted under this License, and you may not initiate litigation
|
| 747 |
+
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
| 748 |
+
any patent claim is infringed by making, using, selling, offering for
|
| 749 |
+
sale, or importing the Program or any portion of it.
|
| 750 |
+
|
| 751 |
+
11. Patents.
|
| 752 |
+
|
| 753 |
+
A "contributor" is a copyright holder who authorizes use under this
|
| 754 |
+
License of the Program or a work on which the Program is based. The
|
| 755 |
+
work thus licensed is called the contributor's "contributor version".
|
| 756 |
+
|
| 757 |
+
A contributor's "essential patent claims" are all patent claims
|
| 758 |
+
owned or controlled by the contributor, whether already acquired or
|
| 759 |
+
hereafter acquired, that would be infringed by some manner, permitted
|
| 760 |
+
by this License, of making, using, or selling its contributor version,
|
| 761 |
+
but do not include claims that would be infringed only as a
|
| 762 |
+
consequence of further modification of the contributor version. For
|
| 763 |
+
purposes of this definition, "control" includes the right to grant
|
| 764 |
+
patent sublicenses in a manner consistent with the requirements of
|
| 765 |
+
this License.
|
| 766 |
+
|
| 767 |
+
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
| 768 |
+
patent license under the contributor's essential patent claims, to
|
| 769 |
+
make, use, sell, offer for sale, import and otherwise run, modify and
|
| 770 |
+
propagate the contents of its contributor version.
|
| 771 |
+
|
| 772 |
+
In the following three paragraphs, a "patent license" is any express
|
| 773 |
+
agreement or commitment, however denominated, not to enforce a patent
|
| 774 |
+
(such as an express permission to practice a patent or covenant not to
|
| 775 |
+
sue for patent infringement). To "grant" such a patent license to a
|
| 776 |
+
party means to make such an agreement or commitment not to enforce a
|
| 777 |
+
patent against the party.
|
| 778 |
+
|
| 779 |
+
If you convey a covered work, knowingly relying on a patent license,
|
| 780 |
+
and the Corresponding Source of the work is not available for anyone
|
| 781 |
+
to copy, free of charge and under the terms of this License, through a
|
| 782 |
+
publicly available network server or other readily accessible means,
|
| 783 |
+
then you must either (1) cause the Corresponding Source to be so
|
| 784 |
+
available, or (2) arrange to deprive yourself of the benefit of the
|
| 785 |
+
patent license for this particular work, or (3) arrange, in a manner
|
| 786 |
+
consistent with the requirements of this License, to extend the patent
|
| 787 |
+
license to downstream recipients. "Knowingly relying" means you have
|
| 788 |
+
actual knowledge that, but for the patent license, your conveying the
|
| 789 |
+
covered work in a country, or your recipient's use of the covered work
|
| 790 |
+
in a country, would infringe one or more identifiable patents in that
|
| 791 |
+
country that you have reason to believe are valid.
|
| 792 |
+
|
| 793 |
+
If, pursuant to or in connection with a single transaction or
|
| 794 |
+
arrangement, you convey, or propagate by procuring conveyance of, a
|
| 795 |
+
covered work, and grant a patent license to some of the parties
|
| 796 |
+
receiving the covered work authorizing them to use, propagate, modify
|
| 797 |
+
or convey a specific copy of the covered work, then the patent license
|
| 798 |
+
you grant is automatically extended to all recipients of the covered
|
| 799 |
+
work and works based on it.
|
| 800 |
+
|
| 801 |
+
A patent license is "discriminatory" if it does not include within
|
| 802 |
+
the scope of its coverage, prohibits the exercise of, or is
|
| 803 |
+
conditioned on the non-exercise of one or more of the rights that are
|
| 804 |
+
specifically granted under this License. You may not convey a covered
|
| 805 |
+
work if you are a party to an arrangement with a third party that is
|
| 806 |
+
in the business of distributing software, under which you make payment
|
| 807 |
+
to the third party based on the extent of your activity of conveying
|
| 808 |
+
the work, and under which the third party grants, to any of the
|
| 809 |
+
parties who would receive the covered work from you, a discriminatory
|
| 810 |
+
patent license (a) in connection with copies of the covered work
|
| 811 |
+
conveyed by you (or copies made from those copies), or (b) primarily
|
| 812 |
+
for and in connection with specific products or compilations that
|
| 813 |
+
contain the covered work, unless you entered into that arrangement,
|
| 814 |
+
or that patent license was granted, prior to 28 March 2007.
|
| 815 |
+
|
| 816 |
+
Nothing in this License shall be construed as excluding or limiting
|
| 817 |
+
any implied license or other defenses to infringement that may
|
| 818 |
+
otherwise be available to you under applicable patent law.
|
| 819 |
+
|
| 820 |
+
12. No Surrender of Others' Freedom.
|
| 821 |
+
|
| 822 |
+
If conditions are imposed on you (whether by court order, agreement or
|
| 823 |
+
otherwise) that contradict the conditions of this License, they do not
|
| 824 |
+
excuse you from the conditions of this License. If you cannot convey a
|
| 825 |
+
covered work so as to satisfy simultaneously your obligations under this
|
| 826 |
+
License and any other pertinent obligations, then as a consequence you may
|
| 827 |
+
not convey it at all. For example, if you agree to terms that obligate you
|
| 828 |
+
to collect a royalty for further conveying from those to whom you convey
|
| 829 |
+
the Program, the only way you could satisfy both those terms and this
|
| 830 |
+
License would be to refrain entirely from conveying the Program.
|
| 831 |
+
|
| 832 |
+
13. Use with the GNU Affero General Public License.
|
| 833 |
+
|
| 834 |
+
Notwithstanding any other provision of this License, you have
|
| 835 |
+
permission to link or combine any covered work with a work licensed
|
| 836 |
+
under version 3 of the GNU Affero General Public License into a single
|
| 837 |
+
combined work, and to convey the resulting work. The terms of this
|
| 838 |
+
License will continue to apply to the part which is the covered work,
|
| 839 |
+
but the special requirements of the GNU Affero General Public License,
|
| 840 |
+
section 13, concerning interaction through a network will apply to the
|
| 841 |
+
combination as such.
|
| 842 |
+
|
| 843 |
+
14. Revised Versions of this License.
|
| 844 |
+
|
| 845 |
+
The Free Software Foundation may publish revised and/or new versions of
|
| 846 |
+
the GNU General Public License from time to time. Such new versions will
|
| 847 |
+
be similar in spirit to the present version, but may differ in detail to
|
| 848 |
+
address new problems or concerns.
|
| 849 |
+
|
| 850 |
+
Each version is given a distinguishing version number. If the
|
| 851 |
+
Program specifies that a certain numbered version of the GNU General
|
| 852 |
+
Public License "or any later version" applies to it, you have the
|
| 853 |
+
option of following the terms and conditions either of that numbered
|
| 854 |
+
version or of any later version published by the Free Software
|
| 855 |
+
Foundation. If the Program does not specify a version number of the
|
| 856 |
+
GNU General Public License, you may choose any version ever published
|
| 857 |
+
by the Free Software Foundation.
|
| 858 |
+
|
| 859 |
+
If the Program specifies that a proxy can decide which future
|
| 860 |
+
versions of the GNU General Public License can be used, that proxy's
|
| 861 |
+
public statement of acceptance of a version permanently authorizes you
|
| 862 |
+
to choose that version for the Program.
|
| 863 |
+
|
| 864 |
+
Later license versions may give you additional or different
|
| 865 |
+
permissions. However, no additional obligations are imposed on any
|
| 866 |
+
author or copyright holder as a result of your choosing to follow a
|
| 867 |
+
later version.
|
| 868 |
+
|
| 869 |
+
15. Disclaimer of Warranty.
|
| 870 |
+
|
| 871 |
+
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
| 872 |
+
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
| 873 |
+
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
| 874 |
+
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
| 875 |
+
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
| 876 |
+
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
| 877 |
+
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
| 878 |
+
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
| 879 |
+
|
| 880 |
+
16. Limitation of Liability.
|
| 881 |
+
|
| 882 |
+
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
| 883 |
+
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
| 884 |
+
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
| 885 |
+
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
| 886 |
+
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
| 887 |
+
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
| 888 |
+
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
| 889 |
+
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
| 890 |
+
SUCH DAMAGES.
|
| 891 |
+
|
| 892 |
+
17. Interpretation of Sections 15 and 16.
|
| 893 |
+
|
| 894 |
+
If the disclaimer of warranty and limitation of liability provided
|
| 895 |
+
above cannot be given local legal effect according to their terms,
|
| 896 |
+
reviewing courts shall apply local law that most closely approximates
|
| 897 |
+
an absolute waiver of all civil liability in connection with the
|
| 898 |
+
Program, unless a warranty or assumption of liability accompanies a
|
| 899 |
+
copy of the Program in return for a fee.
|
| 900 |
+
|
| 901 |
+
END OF TERMS AND CONDITIONS
|
| 902 |
+
|
| 903 |
+
How to Apply These Terms to Your New Programs
|
| 904 |
+
|
| 905 |
+
If you develop a new program, and you want it to be of the greatest
|
| 906 |
+
possible use to the public, the best way to achieve this is to make it
|
| 907 |
+
free software which everyone can redistribute and change under these terms.
|
| 908 |
+
|
| 909 |
+
To do so, attach the following notices to the program. It is safest
|
| 910 |
+
to attach them to the start of each source file to most effectively
|
| 911 |
+
state the exclusion of warranty; and each file should have at least
|
| 912 |
+
the "copyright" line and a pointer to where the full notice is found.
|
| 913 |
+
|
| 914 |
+
<one line to give the program's name and a brief idea of what it does.>
|
| 915 |
+
Copyright (C) <year> <name of author>
|
| 916 |
+
|
| 917 |
+
This program is free software: you can redistribute it and/or modify
|
| 918 |
+
it under the terms of the GNU General Public License as published by
|
| 919 |
+
the Free Software Foundation, either version 3 of the License, or
|
| 920 |
+
(at your option) any later version.
|
| 921 |
+
|
| 922 |
+
This program is distributed in the hope that it will be useful,
|
| 923 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 924 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 925 |
+
GNU General Public License for more details.
|
| 926 |
+
|
| 927 |
+
You should have received a copy of the GNU General Public License
|
| 928 |
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| 929 |
+
|
| 930 |
+
Also add information on how to contact you by electronic and paper mail.
|
| 931 |
+
|
| 932 |
+
If the program does terminal interaction, make it output a short
|
| 933 |
+
notice like this when it starts in an interactive mode:
|
| 934 |
+
|
| 935 |
+
<program> Copyright (C) <year> <name of author>
|
| 936 |
+
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
| 937 |
+
This is free software, and you are welcome to redistribute it
|
| 938 |
+
under certain conditions; type `show c' for details.
|
| 939 |
+
|
| 940 |
+
The hypothetical commands `show w' and `show c' should show the appropriate
|
| 941 |
+
parts of the General Public License. Of course, your program's commands
|
| 942 |
+
might be different; for a GUI interface, you would use an "about box".
|
| 943 |
+
|
| 944 |
+
You should also get your employer (if you work as a programmer) or school,
|
| 945 |
+
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
| 946 |
+
For more information on this, and how to apply and follow the GNU GPL, see
|
| 947 |
+
<http://www.gnu.org/licenses/>.
|
| 948 |
+
|
| 949 |
+
The GNU General Public License does not permit incorporating your program
|
| 950 |
+
into proprietary programs. If your program is a subroutine library, you
|
| 951 |
+
may consider it more useful to permit linking proprietary applications with
|
| 952 |
+
the library. If this is what you want to do, use the GNU Lesser General
|
| 953 |
+
Public License instead of this License. But first, please read
|
| 954 |
+
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
| 955 |
+
|
| 956 |
+
Name: libquadmath
|
| 957 |
+
Files: numpy/.dylibs/libquadmath*.so
|
| 958 |
+
Description: dynamically linked to files compiled with gcc
|
| 959 |
+
Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libquadmath
|
| 960 |
+
License: LGPL-2.1-or-later
|
| 961 |
+
|
| 962 |
+
GCC Quad-Precision Math Library
|
| 963 |
+
Copyright (C) 2010-2019 Free Software Foundation, Inc.
|
| 964 |
+
Written by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
| 965 |
+
|
| 966 |
+
This file is part of the libquadmath library.
|
| 967 |
+
Libquadmath is free software; you can redistribute it and/or
|
| 968 |
+
modify it under the terms of the GNU Library General Public
|
| 969 |
+
License as published by the Free Software Foundation; either
|
| 970 |
+
version 2.1 of the License, or (at your option) any later version.
|
| 971 |
+
|
| 972 |
+
Libquadmath is distributed in the hope that it will be useful,
|
| 973 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 974 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
| 975 |
+
Lesser General Public License for more details.
|
| 976 |
+
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
|
| 977 |
+
|
| 978 |
+
Classifier: Development Status :: 5 - Production/Stable
|
| 979 |
+
Classifier: Intended Audience :: Science/Research
|
| 980 |
+
Classifier: Intended Audience :: Developers
|
| 981 |
+
Classifier: License :: OSI Approved :: BSD License
|
| 982 |
+
Classifier: Programming Language :: C
|
| 983 |
+
Classifier: Programming Language :: Python
|
| 984 |
+
Classifier: Programming Language :: Python :: 3
|
| 985 |
+
Classifier: Programming Language :: Python :: 3.10
|
| 986 |
+
Classifier: Programming Language :: Python :: 3.11
|
| 987 |
+
Classifier: Programming Language :: Python :: 3.12
|
| 988 |
+
Classifier: Programming Language :: Python :: 3.13
|
| 989 |
+
Classifier: Programming Language :: Python :: 3 :: Only
|
| 990 |
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
| 991 |
+
Classifier: Topic :: Software Development
|
| 992 |
+
Classifier: Topic :: Scientific/Engineering
|
| 993 |
+
Classifier: Typing :: Typed
|
| 994 |
+
Classifier: Operating System :: Microsoft :: Windows
|
| 995 |
+
Classifier: Operating System :: POSIX
|
| 996 |
+
Classifier: Operating System :: Unix
|
| 997 |
+
Classifier: Operating System :: MacOS
|
| 998 |
+
Project-URL: homepage, https://numpy.org
|
| 999 |
+
Project-URL: documentation, https://numpy.org/doc/
|
| 1000 |
+
Project-URL: source, https://github.com/numpy/numpy
|
| 1001 |
+
Project-URL: download, https://pypi.org/project/numpy/#files
|
| 1002 |
+
Project-URL: tracker, https://github.com/numpy/numpy/issues
|
| 1003 |
+
Project-URL: release notes, https://numpy.org/doc/stable/release
|
| 1004 |
+
Requires-Python: >=3.10
|
| 1005 |
+
Description-Content-Type: text/markdown
|
| 1006 |
+
|
| 1007 |
+
<h1 align="center">
|
| 1008 |
+
<img src="https://raw.githubusercontent.com/numpy/numpy/main/branding/logo/primary/numpylogo.svg" width="300">
|
| 1009 |
+
</h1><br>
|
| 1010 |
+
|
| 1011 |
+
|
| 1012 |
+
[](
|
| 1013 |
+
https://numfocus.org)
|
| 1014 |
+
[](
|
| 1015 |
+
https://pypi.org/project/numpy/)
|
| 1016 |
+
[](
|
| 1017 |
+
https://anaconda.org/conda-forge/numpy)
|
| 1018 |
+
[](
|
| 1019 |
+
https://stackoverflow.com/questions/tagged/numpy)
|
| 1020 |
+
[](
|
| 1021 |
+
https://doi.org/10.1038/s41586-020-2649-2)
|
| 1022 |
+
[](https://securityscorecards.dev/viewer/?uri=github.com/numpy/numpy)
|
| 1023 |
+
|
| 1024 |
+
|
| 1025 |
+
NumPy is the fundamental package for scientific computing with Python.
|
| 1026 |
+
|
| 1027 |
+
- **Website:** https://www.numpy.org
|
| 1028 |
+
- **Documentation:** https://numpy.org/doc
|
| 1029 |
+
- **Mailing list:** https://mail.python.org/mailman/listinfo/numpy-discussion
|
| 1030 |
+
- **Source code:** https://github.com/numpy/numpy
|
| 1031 |
+
- **Contributing:** https://www.numpy.org/devdocs/dev/index.html
|
| 1032 |
+
- **Bug reports:** https://github.com/numpy/numpy/issues
|
| 1033 |
+
- **Report a security vulnerability:** https://tidelift.com/docs/security
|
| 1034 |
+
|
| 1035 |
+
It provides:
|
| 1036 |
+
|
| 1037 |
+
- a powerful N-dimensional array object
|
| 1038 |
+
- sophisticated (broadcasting) functions
|
| 1039 |
+
- tools for integrating C/C++ and Fortran code
|
| 1040 |
+
- useful linear algebra, Fourier transform, and random number capabilities
|
| 1041 |
+
|
| 1042 |
+
Testing:
|
| 1043 |
+
|
| 1044 |
+
NumPy requires `pytest` and `hypothesis`. Tests can then be run after installation with:
|
| 1045 |
+
|
| 1046 |
+
python -c "import numpy, sys; sys.exit(numpy.test() is False)"
|
| 1047 |
+
|
| 1048 |
+
Code of Conduct
|
| 1049 |
+
----------------------
|
| 1050 |
+
|
| 1051 |
+
NumPy is a community-driven open source project developed by a diverse group of
|
| 1052 |
+
[contributors](https://numpy.org/teams/). The NumPy leadership has made a strong
|
| 1053 |
+
commitment to creating an open, inclusive, and positive community. Please read the
|
| 1054 |
+
[NumPy Code of Conduct](https://numpy.org/code-of-conduct/) for guidance on how to interact
|
| 1055 |
+
with others in a way that makes our community thrive.
|
| 1056 |
+
|
| 1057 |
+
Call for Contributions
|
| 1058 |
+
----------------------
|
| 1059 |
+
|
| 1060 |
+
The NumPy project welcomes your expertise and enthusiasm!
|
| 1061 |
+
|
| 1062 |
+
Small improvements or fixes are always appreciated. If you are considering larger contributions
|
| 1063 |
+
to the source code, please contact us through the [mailing
|
| 1064 |
+
list](https://mail.python.org/mailman/listinfo/numpy-discussion) first.
|
| 1065 |
+
|
| 1066 |
+
Writing code isn’t the only way to contribute to NumPy. You can also:
|
| 1067 |
+
- review pull requests
|
| 1068 |
+
- help us stay on top of new and old issues
|
| 1069 |
+
- develop tutorials, presentations, and other educational materials
|
| 1070 |
+
- maintain and improve [our website](https://github.com/numpy/numpy.org)
|
| 1071 |
+
- develop graphic design for our brand assets and promotional materials
|
| 1072 |
+
- translate website content
|
| 1073 |
+
- help with outreach and onboard new contributors
|
| 1074 |
+
- write grant proposals and help with other fundraising efforts
|
| 1075 |
+
|
| 1076 |
+
For more information about the ways you can contribute to NumPy, visit [our website](https://numpy.org/contribute/).
|
| 1077 |
+
If you’re unsure where to start or how your skills fit in, reach out! You can
|
| 1078 |
+
ask on the mailing list or here, on GitHub, by opening a new issue or leaving a
|
| 1079 |
+
comment on a relevant issue that is already open.
|
| 1080 |
+
|
| 1081 |
+
Our preferred channels of communication are all public, but if you’d like to
|
| 1082 |
+
speak to us in private first, contact our community coordinators at
|
| 1083 |
+
numpy-team@googlegroups.com or on Slack (write numpy-team@googlegroups.com for
|
| 1084 |
+
an invitation).
|
| 1085 |
+
|
| 1086 |
+
We also have a biweekly community call, details of which are announced on the
|
| 1087 |
+
mailing list. You are very welcome to join.
|
| 1088 |
+
|
| 1089 |
+
If you are new to contributing to open source, [this
|
| 1090 |
+
guide](https://opensource.guide/how-to-contribute/) helps explain why, what,
|
| 1091 |
+
and how to successfully get involved.
|
.venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/RECORD
ADDED
|
@@ -0,0 +1,1005 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
../../../bin/f2py,sha256=nbjJ_Fox7CQRaUFHRAAQuW7w8HkWxpWcMbpEA47s_J4,356
|
| 2 |
+
../../../bin/numpy-config,sha256=M3yR4B3aVUxPD9JFpqlSPOLz4Y0wsmIrbwScPXoOo9k,356
|
| 3 |
+
numpy-2.2.6.dist-info/INSTALLER,sha256=5hhM4Q4mYTT9z6QB6PGpUAW81PGNFrYrdXMj4oM_6ak,2
|
| 4 |
+
numpy-2.2.6.dist-info/LICENSE.txt,sha256=tK5iiH9N1ulDCxqNcBejuoTF16pjC50X7W8lwhsOxbQ,47786
|
| 5 |
+
numpy-2.2.6.dist-info/METADATA,sha256=kdZtDWCtRnxnlVXA4SrHObs5WUDcIrxaOdRXgKuhKa0,62048
|
| 6 |
+
numpy-2.2.6.dist-info/RECORD,,
|
| 7 |
+
numpy-2.2.6.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 8 |
+
numpy-2.2.6.dist-info/WHEEL,sha256=_cS6fEsxLUIcIdoA6Si0dddGONVIRpHlSl13K8j9MME,93
|
| 9 |
+
numpy-2.2.6.dist-info/entry_points.txt,sha256=4mXDNhJDQ9GHqMBeRJ8B3PlixTFmkXGqU3RVuac20q0,172
|
| 10 |
+
numpy/__config__.py,sha256=7x8sKgKIYttfP-o_eI9nPvPRKnmbkYfGUfFygVtjcSo,4867
|
| 11 |
+
numpy/__config__.pyi,sha256=ZKpaYX_mDS5X5VwNaH5wNAVi3X1FP0XkI5LcFOImNPk,2377
|
| 12 |
+
numpy/__init__.cython-30.pxd,sha256=cWfkT3NMZ3X0V3kjbEeS6qZIhR_eBNVYdO_8Mp-ebGk,46791
|
| 13 |
+
numpy/__init__.pxd,sha256=pPfD2-RbhOQKZ7IgCkduBgGYZELhvycWeESYSFh_274,43427
|
| 14 |
+
numpy/__init__.py,sha256=auF7BwwPcKjjytiaUQolaULlofN-pf6xIM7BZ-0qYjY,22147
|
| 15 |
+
numpy/__init__.pyi,sha256=ofWyIU0AzmaLAVNQmCmOEDgOVzffZEyXXE3PmjWOeIs,211670
|
| 16 |
+
numpy/_array_api_info.py,sha256=qiHJDVG58rAk1iTlXsFrnhZ7Y-ghPUkyBpJiMvPK2jg,10381
|
| 17 |
+
numpy/_array_api_info.pyi,sha256=P71pudeW0DUFIlo27p5NHC8hoxkYP2ZhrsoS9uEJcvo,4892
|
| 18 |
+
numpy/_configtool.py,sha256=asiPfz_TX2Dp0msoNjG43pZKRYgNYusSIg2ieczK8as,1007
|
| 19 |
+
numpy/_configtool.pyi,sha256=d4f22QGwpb1ZtDk-1Sn72ftvo4incC5E2JAikmjzfJI,24
|
| 20 |
+
numpy/_core/__init__.py,sha256=H95-zST0CH6pnnObjXUXXiPgtub9M35IBGaYE-q4wrU,5612
|
| 21 |
+
numpy/_core/__init__.pyi,sha256=Mj2I4BtqBVNUZVs5o1T58Z7wSaWjfhX0nCl-a0ULjgA,86
|
| 22 |
+
numpy/_core/_add_newdocs.py,sha256=stKVrZWkWH-g_mp7MwO-N1DkMfKXjLxBsrlurBXmeA4,208755
|
| 23 |
+
numpy/_core/_add_newdocs.pyi,sha256=r__d_-GHkfjzuZ0qyjDztsKgdc1eIyeN-cBoYVgMBuo,168
|
| 24 |
+
numpy/_core/_add_newdocs_scalars.py,sha256=ePmas0mI6OCpq9W8ZszXHyEhktsBUj_hvEt6ozb8Zic,12603
|
| 25 |
+
numpy/_core/_add_newdocs_scalars.pyi,sha256=ZnIk0TgL0szrv6SPCH-4dF469Q_92UvV5_ek47Oj7HM,573
|
| 26 |
+
numpy/_core/_asarray.py,sha256=7oZPqNjuDL0IxIeT7V_UJW19lsKS3eny-jlN4Ha-hoA,3912
|
| 27 |
+
numpy/_core/_asarray.pyi,sha256=xkgqEh4c9lcFktJija8a1w5Tj7-2XfZOV8GjDZsXpzY,1085
|
| 28 |
+
numpy/_core/_dtype.py,sha256=4Pz6KJQJRywlsMhdH8NbIugziDyQi1ekv2ZMw7zomzo,10734
|
| 29 |
+
numpy/_core/_dtype.pyi,sha256=DKUAq45hxO7xO6zVuI6oYkkl1gtodB2z0NJ9JtFNhfc,1951
|
| 30 |
+
numpy/_core/_dtype_ctypes.py,sha256=dcZHQ46qjV0n7l934WIYw7kv-1HoHxelu50oIIX7GWU,3718
|
| 31 |
+
numpy/_core/_dtype_ctypes.pyi,sha256=VwEZFViCPuHlCURv2jpJp9sbHh2hYUpzC_FRZNNGMMw,3682
|
| 32 |
+
numpy/_core/_exceptions.py,sha256=dZWKqfdLRvJvbAEG_fof_8ikEKxjakADMty1kLC_l_M,5379
|
| 33 |
+
numpy/_core/_exceptions.pyi,sha256=xH30RJw6Yi0lyJzcwb32uSS7aMT64Kf1Cr82ZNCu9jQ,2146
|
| 34 |
+
numpy/_core/_internal.py,sha256=B8t6mxvaDouxE-COR010v4_PUHNzOF8mHgFatRPlJWk,29164
|
| 35 |
+
numpy/_core/_internal.pyi,sha256=QKaBqSkdl1mnHLJb376B_5mv-GCZtmn8DXDQufA1D4E,2654
|
| 36 |
+
numpy/_core/_machar.py,sha256=399tphFPGzJy1bpbeXLDjUUZTebWto1lozB1praORfE,11565
|
| 37 |
+
numpy/_core/_machar.pyi,sha256=xH30RJw6Yi0lyJzcwb32uSS7aMT64Kf1Cr82ZNCu9jQ,2146
|
| 38 |
+
numpy/_core/_methods.py,sha256=pjmP1yAbtVesXTytuupGIXojO55y8LBS-8fEQPusNIU,9469
|
| 39 |
+
numpy/_core/_methods.pyi,sha256=-WJkb43KYhpq59UpUxsjTIB30WAIApHjmlBzXFMrc8Y,556
|
| 40 |
+
numpy/_core/_multiarray_tests.cpython-310-darwin.so,sha256=kMnVXzhk4Ar4tVUWg3qEoXfB5ikWly33FALDHwkb42A,120376
|
| 41 |
+
numpy/_core/_multiarray_umath.cpython-310-darwin.so,sha256=TiOjJaNzhIJAxqwSLUdJwIQAHa5D9LVHd0V3-R9cLO0,3347048
|
| 42 |
+
numpy/_core/_operand_flag_tests.cpython-310-darwin.so,sha256=avyKyJgjGlWI6JA4O46eOVUhad95LhPothUlUWrrNXY,51240
|
| 43 |
+
numpy/_core/_rational_tests.cpython-310-darwin.so,sha256=93HTBZvX1Dg7ioMOmF2oEJvHdLAhnpmxYk7f_kHZBgo,72792
|
| 44 |
+
numpy/_core/_simd.cpython-310-darwin.so,sha256=cLNlscvmTM9hb67DzzSe32z8gTKFexqd9i2MYarRQ6s,339592
|
| 45 |
+
numpy/_core/_simd.pyi,sha256=2z2sFPgXr3KRzHltbt31HVrhkXM0VwXFp1lUjxaRMAM,669
|
| 46 |
+
numpy/_core/_string_helpers.py,sha256=gu3x0dEnRnh3mnOkviX17r8rCmagVgYHfxILt9Q9irA,2837
|
| 47 |
+
numpy/_core/_string_helpers.pyi,sha256=xLlLKJHutEYzyKnTG2k7clcWvVUTvD319SjnKmDXuac,358
|
| 48 |
+
numpy/_core/_struct_ufunc_tests.cpython-310-darwin.so,sha256=3b1LTj7NJ1OAoiGZKnG6dhXuEQYkVtZjmbaT4w_3KZY,51480
|
| 49 |
+
numpy/_core/_type_aliases.py,sha256=4AU_cVekBKDIXO1URlOQKsMz8nrDw1tHr_nBdQzvNzo,3489
|
| 50 |
+
numpy/_core/_type_aliases.pyi,sha256=9nNzq_Bxy5ikgnRaFMEcbThUVrb4HYJQvH58gXDWCGE,2400
|
| 51 |
+
numpy/_core/_ufunc_config.py,sha256=LlFpTUnHFeHQlNFiuBHvrqVn-nQ7EvIgUEn3HUclt7k,15030
|
| 52 |
+
numpy/_core/_ufunc_config.pyi,sha256=piQY1VeYD5rKJUOOMYRvLhNPMAdLEik4Yzgx-ioB19A,1172
|
| 53 |
+
numpy/_core/_umath_tests.cpython-310-darwin.so,sha256=58fJVq6nBIsUJdhsZB48CGYpHQ0sSbYvTUORz8_Ug1s,71712
|
| 54 |
+
numpy/_core/arrayprint.py,sha256=s5lMLv3Wy_fa3hB1OqUaM4h1Ja9SB_X-3zAkQW1Tu4E,64812
|
| 55 |
+
numpy/_core/arrayprint.pyi,sha256=BmhTDgihJN2U08C0RUzvl36lXp8Cc1CF-uy3MuF3kbI,6934
|
| 56 |
+
numpy/_core/cversions.py,sha256=H_iNIpx9-hY1cQNxqjT2d_5SXZhJbMo_caq4_q6LB7I,347
|
| 57 |
+
numpy/_core/defchararray.py,sha256=hwzNR5D4bYTDU846j0uKoTnRsZk22jmM5KeXZitkvmU,37798
|
| 58 |
+
numpy/_core/defchararray.pyi,sha256=n4P-zXnU8SdMf1cAiKDnJA08L_sVsvoDx7ONFOO-8YM,26962
|
| 59 |
+
numpy/_core/einsumfunc.py,sha256=xsYoawvzK4EA2QIYdtk5KyrFkUCe4kSt5wOtXCm_v1s,52820
|
| 60 |
+
numpy/_core/einsumfunc.pyi,sha256=mx5u6i7mdFuJH4MqLZVU26-ld5y0x5B9ln6lw9RpW-w,4929
|
| 61 |
+
numpy/_core/fromnumeric.py,sha256=gK8m2Y3lSJ5qszgNE-F-ZdN6uab40cW5BBsD4SONHLA,143907
|
| 62 |
+
numpy/_core/fromnumeric.pyi,sha256=VLvvO7t4JLBXEX2EHwSjFOQpDfN_ss9VOLwpgc9NwkQ,41190
|
| 63 |
+
numpy/_core/function_base.py,sha256=hfcYdavNeeDbiYjvTBqDA6OJHxH1fuNDdMtTZUi3RZg,19733
|
| 64 |
+
numpy/_core/function_base.pyi,sha256=_pJUw_NYCDy1EyGL0ABeXAWNOTsj_n7L_8GHPoqPfYs,5690
|
| 65 |
+
numpy/_core/getlimits.py,sha256=Uy3W6eJwu2l7R6ovqdfeOyQybF5jjlPER88pSM3_JPg,26112
|
| 66 |
+
numpy/_core/getlimits.pyi,sha256=q30hQ3wDenmxoZUSoSOqyVrZZVGlsixXCHe6QUthbp8,61
|
| 67 |
+
numpy/_core/include/numpy/__multiarray_api.c,sha256=u7HxPIx7xdxAPTE0gristUOO0-1L-_fl0IeKqR4voxI,12669
|
| 68 |
+
numpy/_core/include/numpy/__multiarray_api.h,sha256=akdAXdNQvHxPFPbdeobhoGzyLUkoVdwzKDjzdbtk5zQ,61383
|
| 69 |
+
numpy/_core/include/numpy/__ufunc_api.c,sha256=Fg7WlH4Ow6jETKRArVL_QF11ABKYz1VpOve56_U3E0w,1755
|
| 70 |
+
numpy/_core/include/numpy/__ufunc_api.h,sha256=tayZuDCeuqm3ggFvWxJuoARz5obz6Saas9L7JcKO_eQ,13166
|
| 71 |
+
numpy/_core/include/numpy/_neighborhood_iterator_imp.h,sha256=s-Hw_l5WRwKtYvsiIghF0bg-mA_CgWnzFFOYVFJ-q4k,1857
|
| 72 |
+
numpy/_core/include/numpy/_numpyconfig.h,sha256=MuJjpqwVFBqqHattoyPQTYDFFMTdcwWaTWZVR8u8Nio,928
|
| 73 |
+
numpy/_core/include/numpy/_public_dtype_api_table.h,sha256=n6_Kb98SyvsR_X7stiNA6VuGp_c5W1e4fMVcJdO0wis,4574
|
| 74 |
+
numpy/_core/include/numpy/arrayobject.h,sha256=mU5vpcQ95PH1j3bp8KYhJOFHB-GxwRjSUsR7nxlTSRk,204
|
| 75 |
+
numpy/_core/include/numpy/arrayscalars.h,sha256=LlyrZIa_5td11BfqfMCv1hYbiG6__zxxGv1MRj8uIVo,4243
|
| 76 |
+
numpy/_core/include/numpy/dtype_api.h,sha256=Gn37RzObmcTsL6YUYY9aG22Ct8F-r4ZaC53NPFqaIso,19238
|
| 77 |
+
numpy/_core/include/numpy/halffloat.h,sha256=TRZfXgipa-dFppX2uNgkrjrPli-1BfJtadWjAembJ4s,1959
|
| 78 |
+
numpy/_core/include/numpy/ndarrayobject.h,sha256=MnykWmchyS05ler_ZyhFIr_0j6c0IcndEi3X3n0ZWDk,12057
|
| 79 |
+
numpy/_core/include/numpy/ndarraytypes.h,sha256=qnnC60F-oeGzkM65vV8VcMsThLYKcDWkhLQBOfJ3jZk,65053
|
| 80 |
+
numpy/_core/include/numpy/npy_1_7_deprecated_api.h,sha256=90kGcNaBPgT5FJArB_MPgW24_Mpl5RcfUR3Y0rRB5Bw,3746
|
| 81 |
+
numpy/_core/include/numpy/npy_2_compat.h,sha256=wdjB7_-AtW3op67Xbj3EVH6apSF7cRG6h3c5hBz-YMs,8546
|
| 82 |
+
numpy/_core/include/numpy/npy_2_complexcompat.h,sha256=eE9dV_Iq3jEfGGJFH_pQjJnvC6eQ12WgOB7cZMmHByE,857
|
| 83 |
+
numpy/_core/include/numpy/npy_3kcompat.h,sha256=grN6W1n7benj3F2pSAOpl_s6vn1Y50QfAP-DaleD7cA,9648
|
| 84 |
+
numpy/_core/include/numpy/npy_common.h,sha256=wbV1Z6m3w1h4qVcOxfF38s3H13UfFHEuBGRfDhTeUKE,36551
|
| 85 |
+
numpy/_core/include/numpy/npy_cpu.h,sha256=AUJ5CqlguteR3-R0IjPt5rylWtvvccCWtt0GpjZbexU,4703
|
| 86 |
+
numpy/_core/include/numpy/npy_endian.h,sha256=vvK7ZlOt0vgqTVrIyviWzoxQz70S-BvflS4Z_k6X5XE,2834
|
| 87 |
+
numpy/_core/include/numpy/npy_math.h,sha256=aeSFs60QbWPy1gIPyHDPrYExifm5mbDAcjP_mLk_PF0,18858
|
| 88 |
+
numpy/_core/include/numpy/npy_no_deprecated_api.h,sha256=0yZrJcQEJ6MCHJInQk5TP9_qZ4t7EfBuoLOJ34IlJd4,678
|
| 89 |
+
numpy/_core/include/numpy/npy_os.h,sha256=hlQsg_7-RkvS3s8OM8KXy99xxyJbCm-W1AYVcdnO1cw,1256
|
| 90 |
+
numpy/_core/include/numpy/numpyconfig.h,sha256=OvRlre4eb9KBWt6gAE5cQ4K-P2uRmIKU1rAKxWFygmA,7161
|
| 91 |
+
numpy/_core/include/numpy/random/LICENSE.txt,sha256=-8U59H0M-DvGE3gID7hz1cFGMBJsrL_nVANcOSbapew,1018
|
| 92 |
+
numpy/_core/include/numpy/random/bitgen.h,sha256=49AwKOR552r-NkhuSOF1usb_URiMSRMvD22JF5pKIng,488
|
| 93 |
+
numpy/_core/include/numpy/random/distributions.h,sha256=W5tOyETd0m1W0GdaZ5dJP8fKlBtsTpG23V2Zlmrlqpg,9861
|
| 94 |
+
numpy/_core/include/numpy/random/libdivide.h,sha256=ew9MNhPQd1LsCZiWiFmj9IZ7yOnA3HKOXffDeR9X1jw,80138
|
| 95 |
+
numpy/_core/include/numpy/ufuncobject.h,sha256=r2XM6XyILKXLqgmHFVu8jXqvOp_Zv8tLfS8Omn5jbng,11918
|
| 96 |
+
numpy/_core/include/numpy/utils.h,sha256=wMNomSH3Dfj0q78PrjLVtFtN-FPo7UJ4o0ifCUO-6Es,1185
|
| 97 |
+
numpy/_core/lib/libnpymath.a,sha256=DHqsIInSe6ThlLelLlIt-zzv0DRHijNDV4tnK9rLby8,35240
|
| 98 |
+
numpy/_core/lib/npy-pkg-config/mlib.ini,sha256=_LsWV1eStNqwhdiYPa2538GL46dnfVwT4MrI1zbsoFw,147
|
| 99 |
+
numpy/_core/lib/npy-pkg-config/npymath.ini,sha256=0iMzarBfkkZ_EXO95_kz-SHZRcNIEwIeOjE_esVBkRQ,361
|
| 100 |
+
numpy/_core/lib/pkgconfig/numpy.pc,sha256=TixQH5uvO6LvobGP1BrUfGuCdMxvdphpZUy_KczizY4,191
|
| 101 |
+
numpy/_core/memmap.py,sha256=B3k5EZ8QwzjPwWwOtVRVyEofQJSG_pCBcWCFknO-GaU,12664
|
| 102 |
+
numpy/_core/memmap.pyi,sha256=_LKjb_PuhcQwpqc2lFaL379DYzQ9PtuKdlVV3jXOYEM,47
|
| 103 |
+
numpy/_core/multiarray.py,sha256=0P7ZBHKR0mI0tatyqDCHwnfewEEiQ48dwrzVL2PQAk0,58137
|
| 104 |
+
numpy/_core/multiarray.pyi,sha256=MzZt-K2x2BrDebbirvR2so5Tbipw3u189VVsDjkAdyk,33396
|
| 105 |
+
numpy/_core/numeric.py,sha256=vsiEcMig4QHwMf9HP5maqOhFsblqGbh8AtE4cX08D7w,81726
|
| 106 |
+
numpy/_core/numeric.pyi,sha256=Ax8B42cDqwsrlVsYt6NhthEZvQNMGdNzNcpXAy9i1kw,19198
|
| 107 |
+
numpy/_core/numerictypes.py,sha256=W-Eu_Av5zNNBHDZHGLNlmNb2UuMByKRdwWPTsJxA5oQ,16125
|
| 108 |
+
numpy/_core/numerictypes.pyi,sha256=ZlPCN6_8qJ7ZWiDayxfQ9oRnq1Gej2P388BX30SUR7s,3533
|
| 109 |
+
numpy/_core/overrides.py,sha256=czubu5JHSdid31If0WLqOYEM3WiAY03tLmyoa04sWjg,7211
|
| 110 |
+
numpy/_core/overrides.pyi,sha256=4ycXYFRjEycSPOaRtciFKwBTsAjHUoGztX-IkTpXQYw,1743
|
| 111 |
+
numpy/_core/printoptions.py,sha256=FUY--hG0-oobvtHOY64D50Bs_-JFmf-Nza7C9IXORFY,1063
|
| 112 |
+
numpy/_core/printoptions.pyi,sha256=eNiliCnDuZBxla6X9kwZ-7YiCn-UtMbT-U_qTnw8l9w,594
|
| 113 |
+
numpy/_core/records.py,sha256=0Uv2Z2xBvxYQUsAhp5zZ262YFHmSN6R_bazI_EyRE00,36862
|
| 114 |
+
numpy/_core/records.pyi,sha256=nDLqj-5Z8hE8hQ4HiDPuHqGy91srd4Vvpn3_ZbEk2o4,8789
|
| 115 |
+
numpy/_core/shape_base.py,sha256=CK3LrcfWKnChokUm1eHYsL43Q7D5qPq7QxDPuYYMnAU,32883
|
| 116 |
+
numpy/_core/shape_base.pyi,sha256=4UDvO6R4ZtZChKb4HNZUil3P8HOGTM5wOwPMT8tsp6Y,4545
|
| 117 |
+
numpy/_core/strings.py,sha256=wCfZ3b3_WKY3LZ0cPn5IXrTN6wXtCSfa8Jrvpznz85c,45672
|
| 118 |
+
numpy/_core/strings.pyi,sha256=NRCCxdkiEvQO9I__b-rNef4pxiqrCgtIFvyPvs7rLng,12770
|
| 119 |
+
numpy/_core/tests/_locales.py,sha256=_J4MFSLUG1hiIfiifglI0nD--lS3CqwIjKKM3is0S6Q,2176
|
| 120 |
+
numpy/_core/tests/_natype.py,sha256=9N-pE9LuQKrqT7ef-P9mtXpWls3YAsZ8JR-3cR7TRjs,6259
|
| 121 |
+
numpy/_core/tests/data/astype_copy.pkl,sha256=lWSzCcvzRB_wpuRGj92spGIw-rNPFcd9hwJaRVvfWdk,716
|
| 122 |
+
numpy/_core/tests/data/generate_umath_validation_data.cpp,sha256=BQakB5o8Mq60zex5ovVO0IatNa7xbF8JvXmtk6373So,5842
|
| 123 |
+
numpy/_core/tests/data/recarray_from_file.fits,sha256=NA0kliz31FlLnYxv3ppzeruONqNYkuEvts5wzXEeIc4,8640
|
| 124 |
+
numpy/_core/tests/data/umath-validation-set-README.txt,sha256=pxWwOaGGahaRd-AlAidDfocLyrAiDp0whf5hC7hYwqM,967
|
| 125 |
+
numpy/_core/tests/data/umath-validation-set-arccos.csv,sha256=yBlz8r6RnnAYhdlobzGGo2FKY-DoSTQaP26y8138a3I,61365
|
| 126 |
+
numpy/_core/tests/data/umath-validation-set-arccosh.csv,sha256=0GXe7XG1Z3jXAcK-OlEot_Df3MetDQSlbm3MJ__iMQk,61365
|
| 127 |
+
numpy/_core/tests/data/umath-validation-set-arcsin.csv,sha256=w_Sv2NDn-mLZSAqb56JT2g4bqBzxYAihedWxHuf82uU,61339
|
| 128 |
+
numpy/_core/tests/data/umath-validation-set-arcsinh.csv,sha256=DZrMYoZZZyM1DDyXNUxSlzx6bOgajnRSLWAzxcPck8k,60289
|
| 129 |
+
numpy/_core/tests/data/umath-validation-set-arctan.csv,sha256=0aosXZ-9DYTop0lj4bfcBNwYVvjZdW13hbMRTRRTmV0,60305
|
| 130 |
+
numpy/_core/tests/data/umath-validation-set-arctanh.csv,sha256=HEK9ePx1OkKrXIKkMUV0IxrmsDqIlgKddiI-LvF2J20,61339
|
| 131 |
+
numpy/_core/tests/data/umath-validation-set-cbrt.csv,sha256=v855MTZih-fZp_GuEDst2qaIsxU4a7vlAbeIJy2xKpc,60846
|
| 132 |
+
numpy/_core/tests/data/umath-validation-set-cos.csv,sha256=0PNnDqKkokZ7ERVDgbes8KNZc-ISJrZUlVZc5LkW18E,59122
|
| 133 |
+
numpy/_core/tests/data/umath-validation-set-cosh.csv,sha256=JKC4nKr3wTzA_XNSiQvVUq9zkYy4djvtu2-j4ZZ_7Oc,60869
|
| 134 |
+
numpy/_core/tests/data/umath-validation-set-exp.csv,sha256=rUAWIbvyeKh9rPfp2n0Zq7AKq_nvHpgbgzLjAllhsek,17491
|
| 135 |
+
numpy/_core/tests/data/umath-validation-set-exp2.csv,sha256=djosT-3fTpiN_f_2WOumgMuuKgC_XhpVO-QsUFwI6uU,58624
|
| 136 |
+
numpy/_core/tests/data/umath-validation-set-expm1.csv,sha256=K7jL6N4KQGX71fj5hvYkzcMXk7MmQes8FwrNfyrPpgU,60299
|
| 137 |
+
numpy/_core/tests/data/umath-validation-set-log.csv,sha256=ynzbVbKxFzxWFwxHnxX7Fpm-va09oI3oK1_lTe19g4w,11692
|
| 138 |
+
numpy/_core/tests/data/umath-validation-set-log10.csv,sha256=NOBD-rOWI_FPG4Vmbzu3JtX9UA838f2AaDFA-waiqGA,68922
|
| 139 |
+
numpy/_core/tests/data/umath-validation-set-log1p.csv,sha256=tdbYWPqWIz8BEbIyklynh_tpQJzo970Edd4ek6DsPb8,60303
|
| 140 |
+
numpy/_core/tests/data/umath-validation-set-log2.csv,sha256=39EUD0vFMbwyoXoOhgCmid6NeEAQU7Ff7QFjPsVObIE,68917
|
| 141 |
+
numpy/_core/tests/data/umath-validation-set-sin.csv,sha256=8PUjnQ_YfmxFb42XJrvpvmkeSpEOlEXSmNvIK4VgfAM,58611
|
| 142 |
+
numpy/_core/tests/data/umath-validation-set-sinh.csv,sha256=XOsBUuPcMjiO_pevMalpmd0iRv2gmnh9u7bV9ZLLg8I,60293
|
| 143 |
+
numpy/_core/tests/data/umath-validation-set-tan.csv,sha256=Hv2WUMIscfvQJ5Y5BipuHk4oE4VY6QKbQp_kNRdCqYQ,60299
|
| 144 |
+
numpy/_core/tests/data/umath-validation-set-tanh.csv,sha256=iolZF_MOyWRgYSa-SsD4df5mnyFK18zrICI740SWoTc,60299
|
| 145 |
+
numpy/_core/tests/examples/cython/checks.pyx,sha256=7wt61LhY_j0ZPzKcWDKnnbtDR8PoHmQixpFYNlCwMOM,7900
|
| 146 |
+
numpy/_core/tests/examples/cython/meson.build,sha256=uuXVPKemNVMQ5MiEDqS4BXhwGHa96JHjS50WxZuJS_8,1268
|
| 147 |
+
numpy/_core/tests/examples/cython/setup.py,sha256=6k4eEMjzjXPhGAW440qpMp2S2l5Ltv-e9e-FnVnzl3w,857
|
| 148 |
+
numpy/_core/tests/examples/limited_api/limited_api1.c,sha256=htSR9ER3S8AJqv4EZMsrxQ-SufTIlXNpuFI6MXQs87w,346
|
| 149 |
+
numpy/_core/tests/examples/limited_api/limited_api2.pyx,sha256=1q4I59pdkCmMhLcYngN_XwQnPoLmDEo1uTGnhrLRjDc,203
|
| 150 |
+
numpy/_core/tests/examples/limited_api/limited_api_latest.c,sha256=ltBLbrl1g9XxD2wvN_-g3NhIizc8mxnh2Z6wCyXo-8E,452
|
| 151 |
+
numpy/_core/tests/examples/limited_api/meson.build,sha256=YM5RwW_waFymlWSHFhCCOHO6KCknooN0jCiqScL0i5M,1627
|
| 152 |
+
numpy/_core/tests/examples/limited_api/setup.py,sha256=p2w7F1ardi_GRXSrnNIR8W1oeH_pgmw_1P2wS0A2I6M,435
|
| 153 |
+
numpy/_core/tests/test__exceptions.py,sha256=PA9MhiaEITLOaIe86lnOwqAa3RFrA5Ra4IrqKXF-nMU,2881
|
| 154 |
+
numpy/_core/tests/test_abc.py,sha256=mIZtCZ8PEIOd6pxLqdUws3wMfXUjsVO3vOE9vK5YPd8,2221
|
| 155 |
+
numpy/_core/tests/test_api.py,sha256=aCh293oLPnbK7gi0PW_ilL9Gcr6-3UpO0MMzS39D8Sc,22930
|
| 156 |
+
numpy/_core/tests/test_argparse.py,sha256=DRLQD5TxhudrQZ79hm5ds3eKsXh_Ub7QsvEYzsdDSX0,2824
|
| 157 |
+
numpy/_core/tests/test_array_api_info.py,sha256=4CpUWnch1EtLojYabVAF7n_-Fks3QTODHERL2FzR1Ps,3062
|
| 158 |
+
numpy/_core/tests/test_array_coercion.py,sha256=p-qWx0wju9JIwIC3wUrVFUJpi5FeOD88OljtzTzndmk,34833
|
| 159 |
+
numpy/_core/tests/test_array_interface.py,sha256=9ND3Y00rgdBSgst5555zrzkvdWzZ4vZgWJOw3djXZAk,7767
|
| 160 |
+
numpy/_core/tests/test_arraymethod.py,sha256=SL2PN10yYMp6C8CnKEykjit8QBtVBIGwbTPDdSDpCLY,3253
|
| 161 |
+
numpy/_core/tests/test_arrayobject.py,sha256=aVv2eGjunCMEDFgmFujxMpk4xb-zo1MQrFcwQLfblx0,2596
|
| 162 |
+
numpy/_core/tests/test_arrayprint.py,sha256=NKFx165-YwIw-sf7et1_M1cQ2V4t6nh8JN5N4GiohYw,49068
|
| 163 |
+
numpy/_core/tests/test_casting_floatingpoint_errors.py,sha256=nnBEgeRIENrOOZvTzRK7SRYYW9dD6E6npDmIuN0ggCc,5074
|
| 164 |
+
numpy/_core/tests/test_casting_unittests.py,sha256=iXHJR9sjpKk37toV9TMDYJAErVgqOxxEM-SEGOvdyF8,34308
|
| 165 |
+
numpy/_core/tests/test_conversion_utils.py,sha256=fpduQ79yLpvZ8fdLs4H0CCsBEh3TlZs3SMr-lUQ6pTg,6605
|
| 166 |
+
numpy/_core/tests/test_cpu_dispatcher.py,sha256=nqlgFk-Ocfgc18g-b4fprYssfcpReiyvgbWPzsNEoFI,1552
|
| 167 |
+
numpy/_core/tests/test_cpu_features.py,sha256=WcKrpR7sPZkF7V-tALki9KfRaEJedE3WpA9AfXNE2Dw,15419
|
| 168 |
+
numpy/_core/tests/test_custom_dtypes.py,sha256=_T9kvGbPJzjLnAtGqoRIeXQNjEuBgJ2DvLN6lrb-fJA,11623
|
| 169 |
+
numpy/_core/tests/test_cython.py,sha256=G3usNUppvqvlbLqTBREn2II9_bhdlxfuZTg8EFd2LpU,8619
|
| 170 |
+
numpy/_core/tests/test_datetime.py,sha256=KD9WAcYjDoa_dujH3lUQukb3IMyyPy2Gkf2oHm6sdOg,121671
|
| 171 |
+
numpy/_core/tests/test_defchararray.py,sha256=tLrnS4oEVDwjbx74fHyi9r43yAE0J7mJZVfdeHvlSJg,30601
|
| 172 |
+
numpy/_core/tests/test_deprecations.py,sha256=q6yJhSODzcbx6LmQzHJqtFKsW4_xfuuy0BC-RK4t6mI,28510
|
| 173 |
+
numpy/_core/tests/test_dlpack.py,sha256=SQCgw4Ya2iYwEjEVJ0p_XvSYNKY2h_eygTmZp8-T4F8,5801
|
| 174 |
+
numpy/_core/tests/test_dtype.py,sha256=lEpYwt2LZ0MWH3jGliiwLkeoqSi0iNI-KSEoAIwH9cg,77402
|
| 175 |
+
numpy/_core/tests/test_einsum.py,sha256=zcFC5OFRGZA9r53gXKmFZUQV0o_T1BkdTXLZ8vG0YLA,52890
|
| 176 |
+
numpy/_core/tests/test_errstate.py,sha256=5YUzK95WyepGyaJ4nkkXLUiHziNBoU0SFBHjMn5U7G0,4634
|
| 177 |
+
numpy/_core/tests/test_extint128.py,sha256=tVrw3jMHQkA0ebk7Pnq33I5Yu9V24KNHotYIG3V8ds0,5644
|
| 178 |
+
numpy/_core/tests/test_function_base.py,sha256=L_toIAG1hbAiOcRxIiLX7yxK4E-hqVMqdUGCBhg9dMQ,17462
|
| 179 |
+
numpy/_core/tests/test_getlimits.py,sha256=xMcjRyx_hAwR-Q3qTcZSFhneZtIXp6u7KOsihUu7-Yg,6977
|
| 180 |
+
numpy/_core/tests/test_half.py,sha256=EFzZNaNNY_H1hd3dSPBZ2wZt3E67D6KpDE3YaOMx_XY,24313
|
| 181 |
+
numpy/_core/tests/test_hashtable.py,sha256=Ws1EeQWCf7vz8G_VsFTIZUVI-hgKXUEAbtQpvoBjBHo,1147
|
| 182 |
+
numpy/_core/tests/test_indexerrors.py,sha256=wvatr7JlqAAYv-hHAAT-9DwUCnRcKiJ9qLcl6aKe9RU,4734
|
| 183 |
+
numpy/_core/tests/test_indexing.py,sha256=xjJGHu7eZT_KX_LAL-8UBTFTxqFwZoJUZetQVrbjJ7g,55297
|
| 184 |
+
numpy/_core/tests/test_item_selection.py,sha256=kI30kiX8mIrZYPn0jw3lGGw1ruZF4PpE9zw-aai9EPA,6458
|
| 185 |
+
numpy/_core/tests/test_limited_api.py,sha256=ndfWEX3X4s6EqWSTDJzdOe0DDQGH7SqnTnYjce0cYh4,3304
|
| 186 |
+
numpy/_core/tests/test_longdouble.py,sha256=H7VeOyaLfSMHClUDSKloOuHiDbZxeoypJnc5AtsM4xw,13890
|
| 187 |
+
numpy/_core/tests/test_machar.py,sha256=eDTrzJgwfaus0Ts86-HR9YkAPOwOSOPImPTHugn1EOc,1069
|
| 188 |
+
numpy/_core/tests/test_mem_overlap.py,sha256=jM7NXE3N_bOjgP9vMqyzzcIXJwbIREXiRK41iciggAA,29138
|
| 189 |
+
numpy/_core/tests/test_mem_policy.py,sha256=JFou_8xT0-cwccZEQfaingaktY-RH3hrUJZa2_b7t2o,16660
|
| 190 |
+
numpy/_core/tests/test_memmap.py,sha256=LQ4NBQe8s_5DMN5yCeY9dpqTeDBOge6TKN6xxMwCbRI,8142
|
| 191 |
+
numpy/_core/tests/test_multiarray.py,sha256=YsNiZInPpHR1o6-sv7pq9sg4GW5J_v9KCnu1TNuDMIo,392270
|
| 192 |
+
numpy/_core/tests/test_multithreading.py,sha256=DnSUipGmHE3YMI9Dgxfplo1HWyf1sjQgCcHIy41dTL4,8606
|
| 193 |
+
numpy/_core/tests/test_nditer.py,sha256=o-YxH56efHb_yN5-kbJ3mDVpp4Vasa_DPE5lhEzcAc0,131186
|
| 194 |
+
numpy/_core/tests/test_nep50_promotions.py,sha256=96WpsYYNdlaszFOCLmxHCg3iOHna4VPPxHZjdRp1lVU,10064
|
| 195 |
+
numpy/_core/tests/test_numeric.py,sha256=_f1nQWujm2PQZF4Y9Gjxt4W7R0MbVNGJh9OEdjkKFCE,158490
|
| 196 |
+
numpy/_core/tests/test_numerictypes.py,sha256=aADiXLPAkgAFF80_tRczhuH6lVyMLcA3k_AbGcDemp4,23292
|
| 197 |
+
numpy/_core/tests/test_overrides.py,sha256=evrJX5mAWquq0lD6qM2Hn4_1_mkSk8cpNzUj6_QcZFE,27936
|
| 198 |
+
numpy/_core/tests/test_print.py,sha256=mzUSbQ2kSa1aDl7NRUexj5UG4IM4zaZ-5EIoEoXhA_Q,6836
|
| 199 |
+
numpy/_core/tests/test_protocols.py,sha256=6pxSZKmde5KHoN3iEMKReAFHrMldAm3ZZQwVh_kQ9Uw,1189
|
| 200 |
+
numpy/_core/tests/test_records.py,sha256=eyDJb-oglohhgW4b4sZwe-_1PABhkM9_7a9qU3n7oAU,20534
|
| 201 |
+
numpy/_core/tests/test_regression.py,sha256=o4FwvndFMYHPqYQgKuEjgIpoizZ3vvQ-3HIuHqiRD6g,95395
|
| 202 |
+
numpy/_core/tests/test_scalar_ctors.py,sha256=3mhZlumKJs5WazhPgATWf5Y4E4POQy-bcUBSEt5pasc,6719
|
| 203 |
+
numpy/_core/tests/test_scalar_methods.py,sha256=u0Bn-6-mSpOc_mP0C7BHpg3RbGWnsb_zZR1Ooubno2Y,9142
|
| 204 |
+
numpy/_core/tests/test_scalarbuffer.py,sha256=EdiF5tVrZXDchoK0P5sbQgluyyYQCIrLCaxvafaCKNk,5582
|
| 205 |
+
numpy/_core/tests/test_scalarinherit.py,sha256=XbCvtSSEU_c3cHi9Nxg7nt7itZdnREEh0sdqDUU4-ek,2588
|
| 206 |
+
numpy/_core/tests/test_scalarmath.py,sha256=AKHil07nk1xDgcEUUvA3wRDR-xZjWwE2k1zvv6knOYI,46631
|
| 207 |
+
numpy/_core/tests/test_scalarprint.py,sha256=UGxofUYFo3tqu-2fgaNgmS8K-uwhwv7X3tu7Pu7yeQQ,20635
|
| 208 |
+
numpy/_core/tests/test_shape_base.py,sha256=u9ozYhzM-V0GINYi04jYeNsjiD7XtssrD29zhFVaOA0,30982
|
| 209 |
+
numpy/_core/tests/test_simd.py,sha256=DJ-N-Q7E29VBY4VYmQWTR4XzRcxQKptCke5CwxCl_aw,48650
|
| 210 |
+
numpy/_core/tests/test_simd_module.py,sha256=g0XWjB1TE4E0y4McOjkZKhR7OB-K01eqy4pJcGfU2zg,3903
|
| 211 |
+
numpy/_core/tests/test_stringdtype.py,sha256=wgIoYRYlP-2Q2Z7PKBOo76fGbzKewxwN98IECfmBHiM,57658
|
| 212 |
+
numpy/_core/tests/test_strings.py,sha256=UCq7ActPLrMNRG7BDHfrOH52MOZ3uy3Tp35T3-hQV00,51787
|
| 213 |
+
numpy/_core/tests/test_ufunc.py,sha256=qiV2wkNG0-Z2_u_aveRLKI9qEOqaLxyWvch6Btz-Urc,132405
|
| 214 |
+
numpy/_core/tests/test_umath.py,sha256=qeEIqnjBl7_mHhBZh6-S_7oBz94nabMyS-xqdQOXl9o,193188
|
| 215 |
+
numpy/_core/tests/test_umath_accuracy.py,sha256=TRSzuQJ2kN2D3BUQ3IX1WhhT6ttIKvnnaMaaqU-A7ug,5472
|
| 216 |
+
numpy/_core/tests/test_umath_complex.py,sha256=pWRHpzBodvDGoKG1gkRAKJ1uPxQ_fV_VqIm77SD0BlA,23290
|
| 217 |
+
numpy/_core/tests/test_unicode.py,sha256=LotRRPbJke99uyy3uY3rAteaJMMiYpSzcOmargPNKIc,12854
|
| 218 |
+
numpy/_core/umath.py,sha256=OsbavmLRxKNNbV8SnPEc3mVNk9EIVjMhZeRs9nCUsTU,2093
|
| 219 |
+
numpy/_core/umath.pyi,sha256=FIqmlQwQIueIrs-_QehV3guNEnJE2LxVs3NPCj38Vdo,2643
|
| 220 |
+
numpy/_distributor_init.py,sha256=IKy2THwmu5UgBjtVbwbD9H-Ap8uaUJoPJ2btQ4Jatdo,407
|
| 221 |
+
numpy/_distributor_init.pyi,sha256=6IvMzAmr0-Z6oqTkZcgXgrkJrQXVMjBih2AZvLdDgOE,27
|
| 222 |
+
numpy/_expired_attrs_2_0.py,sha256=ZTV3IpeE4UcJSn2RTZLxKAixEl557MkKK4R7xubw1Rw,3903
|
| 223 |
+
numpy/_expired_attrs_2_0.pyi,sha256=dDjT_qRjSq9m3_DcfOJlRaTzFtHacBVRdkYgA0Weeho,1269
|
| 224 |
+
numpy/_globals.py,sha256=XVuUPpFLueqKUTNwqiOjWWahnM-vGxGy4tYA3ph-EAE,3090
|
| 225 |
+
numpy/_globals.pyi,sha256=IrHHIXmibXzgK0VUlECQLw4IEkveXSHo_ZWnTkfnLe4,280
|
| 226 |
+
numpy/_pyinstaller/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 227 |
+
numpy/_pyinstaller/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 228 |
+
numpy/_pyinstaller/hook-numpy.py,sha256=Ood-XcWlQQkk90SY0yDg7RKsUFVGwas9TqI-Gbc58_s,1393
|
| 229 |
+
numpy/_pyinstaller/hook-numpy.pyi,sha256=tAvtMPovoi-sur0D1NAo3_evSmYKLTh0bgRSC7QrCIk,349
|
| 230 |
+
numpy/_pyinstaller/tests/__init__.py,sha256=IJtzzjPSw419P-c2T4OT48p-Zu4JohoF9svWqhDshgk,329
|
| 231 |
+
numpy/_pyinstaller/tests/pyinstaller-smoke.py,sha256=6iL-eHMQaG3rxnS5EgcvrCqElm9aKL07Cjr1FZJSXls,1143
|
| 232 |
+
numpy/_pyinstaller/tests/test_pyinstaller.py,sha256=8K-7QxmfoXCG0NwR0bhIgCNrDjGlrTzWnrR1sR8btgU,1135
|
| 233 |
+
numpy/_pytesttester.py,sha256=itUxMEXdYQT_mCYqde-7CqjxOA59wiLFyJeIyoVtGgI,6325
|
| 234 |
+
numpy/_pytesttester.pyi,sha256=fRkDNxl5obspW99ujQV3NDXrROXxDiLVFyj8Aew_zyk,497
|
| 235 |
+
numpy/_typing/__init__.py,sha256=0y70ouUj2_lKGcA6vGbm_NWVR48xKoyu_c7rom_AEp4,5047
|
| 236 |
+
numpy/_typing/_add_docstring.py,sha256=GHU_gjWt_A6x7RIcztvfayVCs78Kgi8IeNKJZyfWkWg,3995
|
| 237 |
+
numpy/_typing/_array_like.py,sha256=QD4uxTyvuMERM5AhE6PxzdL5yHUMb2UOi7HdQFFNXoI,5565
|
| 238 |
+
numpy/_typing/_callable.pyi,sha256=bogxuArAdYY-IGWzw0-ayhdb5-P8YhHXK-J0TX_j38g,11811
|
| 239 |
+
numpy/_typing/_char_codes.py,sha256=RJSvAIAy8TAEQbFfoDNouUdLcYngmBmV4X7At62SUbU,8786
|
| 240 |
+
numpy/_typing/_dtype_like.py,sha256=3q7Me_RXr75ba4p1vPy-nw5NRLWsnCnHsfzVGnZMNig,5964
|
| 241 |
+
numpy/_typing/_extended_precision.py,sha256=dGios-1k-QBGew7YFzONZTzVWxz-aYAaqlccl2_h5Bo,777
|
| 242 |
+
numpy/_typing/_nbit.py,sha256=LiAPuMPddJ9CjSStw8zvXQ1m_FbNIzl_iMygO851M0g,632
|
| 243 |
+
numpy/_typing/_nbit_base.py,sha256=HHn2zYWN-3wLsyigd97cs9uyI3NvRYUcQ69OLOdC-ks,2880
|
| 244 |
+
numpy/_typing/_nested_sequence.py,sha256=7idN0EyEI6Nt0VH9xnWVj4syqeu_LK8IESZwczVcK1g,2608
|
| 245 |
+
numpy/_typing/_scalars.py,sha256=9v-1xahC9TZg28FTfBG15vWCcnDB1bfWz7ejT0eDrVw,1031
|
| 246 |
+
numpy/_typing/_shape.py,sha256=fY1qi6UDFjPW1b4GaxhcJ9tRAQu6SXLZINd_Vy60XSY,231
|
| 247 |
+
numpy/_typing/_ufunc.py,sha256=U6OCdDLHzXSt1fbSldHFP0viWHh4u3Y1CDBvzBUY8-M,153
|
| 248 |
+
numpy/_typing/_ufunc.pyi,sha256=h4Gs_FASSm7e_lrJWmsJazZOvZMr_N0XSzrVXeA8jAo,26709
|
| 249 |
+
numpy/_utils/__init__.py,sha256=fDuc2LsC4olo0utoWjAs3LXux-gPYHFKhThlEIi4eOQ,3291
|
| 250 |
+
numpy/_utils/__init__.pyi,sha256=E4kbvhiLuJeW77FvO87VVMcYEazVQy7eTle-7HUU1jc,738
|
| 251 |
+
numpy/_utils/_convertions.py,sha256=0xMxdeLOziDmHsRM_8luEh4S-kQdMoMg6GxNDDas69k,329
|
| 252 |
+
numpy/_utils/_convertions.pyi,sha256=4l-0UmPCyVA70UJ8WAd2A45HrKFSzgC0sFDBSnKcYiQ,118
|
| 253 |
+
numpy/_utils/_inspect.py,sha256=LcbHUJ2KPDpPeNixyIeKOUWvORaLG5J-H0uI3iHIsOA,7435
|
| 254 |
+
numpy/_utils/_inspect.pyi,sha256=hqpbcKWZzVkTaMf6loQup3ZMXifIit-A0vSIhD92D88,2255
|
| 255 |
+
numpy/_utils/_pep440.py,sha256=Vr7B3QsijR5p6h8YAz2LjNGUyzHUJ5gZ4v26NpZAKDc,14069
|
| 256 |
+
numpy/_utils/_pep440.pyi,sha256=xzYJoZ6DnjvgaKr8OsBwim77fAJ0xeQJI9XAt75gvfI,3870
|
| 257 |
+
numpy/char/__init__.py,sha256=WGpEng-lsHKxUlmuANY8hKCl3ZC622HYSAFnpf7sgUE,93
|
| 258 |
+
numpy/char/__init__.pyi,sha256=s5kfrSM9fwhtbUmzC-KlCoA4AyKpR0GzeS45ZoyQkbA,1539
|
| 259 |
+
numpy/compat/__init__.py,sha256=b3rw1J_V3MwU-LZf8uISRKvfXzFaBjFHACbgyLo785Y,727
|
| 260 |
+
numpy/compat/py3k.py,sha256=2jk3PPVI2LB1v4mndi0Ydb-ymcgXzJ5G2hIdvoWavAI,3803
|
| 261 |
+
numpy/compat/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 262 |
+
numpy/conftest.py,sha256=G-BY__VpzWy3NY7KjDvHW01CyGkWx-znx2WlhiUShy8,8717
|
| 263 |
+
numpy/core/__init__.py,sha256=FWRkekGqZ1NF4YYNfm46mOAO9u3v4ZYts_lc8ygQfqY,1275
|
| 264 |
+
numpy/core/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 265 |
+
numpy/core/_dtype.py,sha256=3SnNsjxlKobD8Dn8B9egjIQuQLdbWz9OtVAZ4_wlDw8,322
|
| 266 |
+
numpy/core/_dtype.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 267 |
+
numpy/core/_dtype_ctypes.py,sha256=lLzxauA8PVnopTuGh9USt1nVw2qCI8Z7bL66er3JoHU,350
|
| 268 |
+
numpy/core/_dtype_ctypes.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 269 |
+
numpy/core/_internal.py,sha256=f3eVtRx2tKrJxxavZNe_f1Ln-_1shhSlfeRZEDTlxhU,947
|
| 270 |
+
numpy/core/_multiarray_umath.py,sha256=Yb0HORec_wcEV3RNNU4RZnlATYTUQtjAHMYmL4pvNLs,2096
|
| 271 |
+
numpy/core/_utils.py,sha256=5fk18JN43Rg6YHvan6QjdrOeOuLtRlLVmP6MadBEJVA,923
|
| 272 |
+
numpy/core/arrayprint.py,sha256=a1DkStlBSsVViSJw523Mm-lboVaAtCloBNCrigyOpbI,338
|
| 273 |
+
numpy/core/defchararray.py,sha256=G9S6jkdXegRkXl58hSpPnmndjdym4801Yzq2lzzmApM,346
|
| 274 |
+
numpy/core/einsumfunc.py,sha256=px-rSPkwAMbRNmp5uILgVC2QSr73InKFfvW7LSfNGGw,338
|
| 275 |
+
numpy/core/fromnumeric.py,sha256=aNquLnfZX1XZRAz5MJza5ZT7IlgJo0TMHlR62YT2biM,342
|
| 276 |
+
numpy/core/function_base.py,sha256=Sa9Ec2Y21kPmjn4Xsh7Y1V1c7bUdxYjzixIwHZJ4sCo,350
|
| 277 |
+
numpy/core/getlimits.py,sha256=aYJVaVqiSGKuPfSIa7r0MMZMQkJP2NRNJ7Zd2dszygU,334
|
| 278 |
+
numpy/core/multiarray.py,sha256=SwVF8KNm29qyaq7vx8rrljNNxfn0e6G5y1H830n1Rac,792
|
| 279 |
+
numpy/core/numeric.py,sha256=LSuzJ9OsQ0IEpW2rKlAwuvNypZeDZ0AJDoJOt93XB-k,359
|
| 280 |
+
numpy/core/numerictypes.py,sha256=RvhfWFh9KR0SPDNcrAYnW-PO9TKAND75ONXhL5Djs8Q,346
|
| 281 |
+
numpy/core/overrides.py,sha256=sWaAgbH_piO0mWDeVqqoqkFqqpPHM87FqOZFJ3AO8lU,334
|
| 282 |
+
numpy/core/overrides.pyi,sha256=-3xfjHfa4UaCuhTVwwRN4EOM5uz9vZR0gMeTVvEdbYI,525
|
| 283 |
+
numpy/core/records.py,sha256=j9BftQLLljVdcENT41eGflG7DA7miXQ7q3Yf53-zYcY,326
|
| 284 |
+
numpy/core/shape_base.py,sha256=MhuxPRwwg5hIdHcJ-LABdQ0oYEYGVxeD-aomaFs9-f4,338
|
| 285 |
+
numpy/core/umath.py,sha256=f6KbsWYh5oTj3_FWHip_dr51BdczTAtMqgpn9_eHcz4,318
|
| 286 |
+
numpy/ctypeslib.py,sha256=AhgVVThYHjfMEccnSDfH2B3puHU6ZjPwxPcIuFSnzRA,18836
|
| 287 |
+
numpy/ctypeslib.pyi,sha256=I21gEirYRu9BQTndIJ_hwOfHbKxs13GL6A6ndpvWT8Y,8088
|
| 288 |
+
numpy/distutils/__init__.py,sha256=BU1C21439HRo7yH1SsN9me6WCDPpOwRQ37ZpNwDMqCw,2074
|
| 289 |
+
numpy/distutils/__init__.pyi,sha256=D8LRE6BNOmuBGO-oakJGnjT9UJTk9zSR5rxMfZzlX64,119
|
| 290 |
+
numpy/distutils/__pycache__/conv_template.cpython-310.pyc,sha256=9ZK6NilvcPaYUrtWb9FBsZ41FO8o-6f_mnBAaIwco6s,8292
|
| 291 |
+
numpy/distutils/_shell_utils.py,sha256=3G7QGZXCxJQ6-2l1BTu3G_dRrWe6nT4QLlGYeh5oNZk,2538
|
| 292 |
+
numpy/distutils/armccompiler.py,sha256=8qUaYh8QHOJlz7MNvkuJNyYdCOCivuW0pbmf_2OPZu0,962
|
| 293 |
+
numpy/distutils/ccompiler.py,sha256=VV55UeGMGahNVPIIJO6YlgXmL6MqUrDOPR7Bk6HDseQ,28690
|
| 294 |
+
numpy/distutils/ccompiler_opt.py,sha256=-q1HcO9nN3-m3mdYeSyU1QEv2HgD-YDpFZLEBWzOHTA,100396
|
| 295 |
+
numpy/distutils/checks/cpu_asimd.c,sha256=nXUsTLrSlhRL-UzDM8zMqn1uqJnR7TRlJi3Ixqw539w,818
|
| 296 |
+
numpy/distutils/checks/cpu_asimddp.c,sha256=E4b9zT1IdSfGR2ACZJiQoR-BqaeDtzFqRNW8lBOXAaY,432
|
| 297 |
+
numpy/distutils/checks/cpu_asimdfhm.c,sha256=6tXINVEpmA-lYRSbL6CrBu2ejNFmd9WONFGgg-JFXZE,529
|
| 298 |
+
numpy/distutils/checks/cpu_asimdhp.c,sha256=SfwrEEA_091tmyI4vN3BNLs7ypUnrF_VbTg6gPl-ocs,379
|
| 299 |
+
numpy/distutils/checks/cpu_avx.c,sha256=LuZW8o93VZZi7cYEP30dvKWTm7Mw1TLmCt5UaXDxCJg,779
|
| 300 |
+
numpy/distutils/checks/cpu_avx2.c,sha256=jlDlea393op0JOiMJgmmPyKmyAXztLcObPOp9F9FaS0,749
|
| 301 |
+
numpy/distutils/checks/cpu_avx512_clx.c,sha256=P-YHjj2XE4SithBkPwDgShOxGWnVSNUXg72h8O3kpbs,842
|
| 302 |
+
numpy/distutils/checks/cpu_avx512_cnl.c,sha256=f_c2Z0xwAKTJeK3RYMIp1dgXYV8QyeOxUgKkMht4qko,948
|
| 303 |
+
numpy/distutils/checks/cpu_avx512_icl.c,sha256=isI35-gm7Hqn2Qink5hP1XHWlh52a5vwKhEdW_CRviE,1004
|
| 304 |
+
numpy/distutils/checks/cpu_avx512_knl.c,sha256=PVTkczTpHlXbTc7IQKlCFU9Cq4VGG-_JhVnT0_n-t1A,959
|
| 305 |
+
numpy/distutils/checks/cpu_avx512_knm.c,sha256=eszPGr3XC9Js7mQUB0gFxlrNjQwfucQFz_UwFyNLjes,1132
|
| 306 |
+
numpy/distutils/checks/cpu_avx512_skx.c,sha256=59VD8ebEJJHLlbY-4dakZV34bmq_lr9mBKz8BAcsdYc,1010
|
| 307 |
+
numpy/distutils/checks/cpu_avx512_spr.c,sha256=i8DpADB8ZhIucKc8lt9JfYbQANRvR67u59oQf5winvg,904
|
| 308 |
+
numpy/distutils/checks/cpu_avx512cd.c,sha256=Qfh5FJUv9ZWd_P5zxkvYYIkvqsPptgaDuKkeX_F8vyA,759
|
| 309 |
+
numpy/distutils/checks/cpu_avx512f.c,sha256=d97NRcbJhqpvURnw7zyG0TOuEijKXvU0g4qOTWHbwxY,755
|
| 310 |
+
numpy/distutils/checks/cpu_f16c.c,sha256=nzZzpUc8AfTtw-INR3KOxcjx9pyzVUM8OhsrdH2dO_w,868
|
| 311 |
+
numpy/distutils/checks/cpu_fma3.c,sha256=YN6IDwuZALJHVVmpQ2tj-14HI_PcxH_giV8-XjzlmkU,817
|
| 312 |
+
numpy/distutils/checks/cpu_fma4.c,sha256=qKdgTNNFg-n8vSB1Txco60HBLCcOi1aH23gZOX7yKqs,301
|
| 313 |
+
numpy/distutils/checks/cpu_neon.c,sha256=Y0SjuVLzh3upcbY47igHjmKgjHbXxbvzncwB7acfjxw,600
|
| 314 |
+
numpy/distutils/checks/cpu_neon_fp16.c,sha256=E7YOGyYP41u1sqiCHpCGGqjmo7Cs6yUkmJ46K7LZloc,251
|
| 315 |
+
numpy/distutils/checks/cpu_neon_vfpv4.c,sha256=qFY1C_fQYz7M_a_8j0KTdn7vaE3NNVmWY2JGArDGM3w,609
|
| 316 |
+
numpy/distutils/checks/cpu_popcnt.c,sha256=vRcXHVw2j1F9I_07eIZ_xzDX3fd3mqgiQXL1w3pULJk,1049
|
| 317 |
+
numpy/distutils/checks/cpu_rvv.c,sha256=ADmogrRu7XOOsCfB6PMpF0ES4yv8tXsbYduvZjEMTPA,300
|
| 318 |
+
numpy/distutils/checks/cpu_sse.c,sha256=6MHITtC76UpSR9uh0SiURpnkpPkLzT5tbrcXT4xBFxo,686
|
| 319 |
+
numpy/distutils/checks/cpu_sse2.c,sha256=yUZzdjDtBS-vYlhfP-pEzj3m0UPmgZs-hA99TZAEACU,697
|
| 320 |
+
numpy/distutils/checks/cpu_sse3.c,sha256=j5XRHumUuccgN9XPZyjWUUqkq8Nu8XCSWmvUhmJTJ08,689
|
| 321 |
+
numpy/distutils/checks/cpu_sse41.c,sha256=y_k81P-1b-Hx8OeRVDE9V1O9JakS0zPvlFKJ3VbSmEw,675
|
| 322 |
+
numpy/distutils/checks/cpu_sse42.c,sha256=3PXucdI2mII-txO7zFN99TlVveT_QUAETTGvRk-_hYw,692
|
| 323 |
+
numpy/distutils/checks/cpu_ssse3.c,sha256=X6VWxIXMRpdSCBsHPXvot3yTZ4d5yK9Bi1ScQP3WC-Q,705
|
| 324 |
+
numpy/distutils/checks/cpu_sve.c,sha256=Ixj6TJHCdn7h_xE3MWviXrxlvo0OZkKDTT6sFIwNZPY,287
|
| 325 |
+
numpy/distutils/checks/cpu_vsx.c,sha256=FVmR4iliKjcihzMCwloR1F2JYwSZK9P4f_hvIRLHSDQ,478
|
| 326 |
+
numpy/distutils/checks/cpu_vsx2.c,sha256=yESs25Rt5ztb5-stuYbu3TbiyJKmllMpMLu01GOAHqE,263
|
| 327 |
+
numpy/distutils/checks/cpu_vsx3.c,sha256=omC50tbEZNigsKMFPtE3zGRlIS2VuDTm3vZ9TBZWo4U,250
|
| 328 |
+
numpy/distutils/checks/cpu_vsx4.c,sha256=ngezA1KuINqJkLAcMrZJR7bM0IeA25U6I-a5aISGXJo,305
|
| 329 |
+
numpy/distutils/checks/cpu_vx.c,sha256=OpLU6jIfwvGJR4JPVVZLlUfvo7oAZ0YvsjafM2qtPlk,461
|
| 330 |
+
numpy/distutils/checks/cpu_vxe.c,sha256=rYW_nKwXnlB0b8xCrJEr4TmvrEvS-NToxwyqqOHV8Bk,788
|
| 331 |
+
numpy/distutils/checks/cpu_vxe2.c,sha256=Hv4wO23kwC2G6lqqercq4NE4K0nrvBxR7RIzr5HTXCc,624
|
| 332 |
+
numpy/distutils/checks/cpu_xop.c,sha256=7uabsGeqvmVJQvuSEjs8-Sm8kpmvl6uZ9YHMF5h2opQ,234
|
| 333 |
+
numpy/distutils/checks/extra_avx512bw_mask.c,sha256=pVPOhcu80yJVnIhOcHHXOlZ2proJ1MUf0XgccqhPoNk,636
|
| 334 |
+
numpy/distutils/checks/extra_avx512dq_mask.c,sha256=nMfIvepISGFDexPrMYl5LWtdmt6Uy9TKPzF4BVayw2I,504
|
| 335 |
+
numpy/distutils/checks/extra_avx512f_reduce.c,sha256=_NfbtfSAkm_A67umjR1oEb9yRnBL5EnTA76fvQIuNVk,1595
|
| 336 |
+
numpy/distutils/checks/extra_vsx3_half_double.c,sha256=shHvIQZfR0o-sNefOt49BOh4WCmA0BpJvj4b7F9UdvQ,354
|
| 337 |
+
numpy/distutils/checks/extra_vsx4_mma.c,sha256=GiQGZ9-6wYTgH42bJgSlXhWcTIrkjh5xv4uymj6rglk,499
|
| 338 |
+
numpy/distutils/checks/extra_vsx_asm.c,sha256=BngiMVS9nyr22z6zMrOrHLeCloe_5luXhf5T5mYucgI,945
|
| 339 |
+
numpy/distutils/checks/test_flags.c,sha256=uAIbhfAhyGe4nTdK_mZmoCefj9P0TGHNF9AUv_Cdx5A,16
|
| 340 |
+
numpy/distutils/command/__init__.py,sha256=fW49zUB3syMFsKpf1oRBO0h8tmnTwRP3zUPrsB0R22M,1032
|
| 341 |
+
numpy/distutils/command/autodist.py,sha256=8KWwr5mnjX20UpY4ITRDx-PreApyh9M7B92IwsEtTsQ,3718
|
| 342 |
+
numpy/distutils/command/bdist_rpm.py,sha256=-tkZupIJr_jLqeX7xbRhE8-COXHRI0GoRpAKchVte54,709
|
| 343 |
+
numpy/distutils/command/build.py,sha256=aj1SUGsDUTxs4Tch2ALLcPnuAVhaPjEPIZIobzMajm0,2613
|
| 344 |
+
numpy/distutils/command/build_clib.py,sha256=TCuZDpRd8ZPZH6SRwIZcWZC3aoGc18Rll6FYcawS6qY,19317
|
| 345 |
+
numpy/distutils/command/build_ext.py,sha256=UcyG8KKyrd5v1s6qDdKEkzwLwmoMlfHA893Lj-OOgl0,32983
|
| 346 |
+
numpy/distutils/command/build_py.py,sha256=XiLZ2d_tmCE8uG5VAU5OK2zlzQayBfeY4l8FFEltbig,1144
|
| 347 |
+
numpy/distutils/command/build_scripts.py,sha256=P2ytmZb3UpwfmbMXkFB2iMQk15tNUCynzMATllmp-Gs,1665
|
| 348 |
+
numpy/distutils/command/build_src.py,sha256=sxsnfc8KBsnsSvI-8sKIKNo2KA2uvrrvW0WYZCqyjyk,31178
|
| 349 |
+
numpy/distutils/command/config.py,sha256=etJCBJusXp-yzPodZnCBW0NJgxPNhv-FRTon6uV761E,20670
|
| 350 |
+
numpy/distutils/command/config_compiler.py,sha256=N6JHVRAwgzkEsHqK8tqziLPlwbfWvdHaEdPv_sklkHc,4371
|
| 351 |
+
numpy/distutils/command/develop.py,sha256=9SbbnFnVbSJVZxTFoV9pwlOcM1D30GnOWm2QonQDvHI,575
|
| 352 |
+
numpy/distutils/command/egg_info.py,sha256=i-Zk4sftK5cMQVQ2jqSxTMpVI-gYyXN16-p5TvmjURc,921
|
| 353 |
+
numpy/distutils/command/install.py,sha256=nkW2fl7OABcE3sUcoNM7iONkF64CBESdVlRjTLg3hVA,3073
|
| 354 |
+
numpy/distutils/command/install_clib.py,sha256=1xv0_lPVu3g16GgICjjlh7T8zQ6PSlevCuq8Bocx5YM,1399
|
| 355 |
+
numpy/distutils/command/install_data.py,sha256=Y59EBG61MWP_5C8XJvSCVfzYpMNVNVcH_Z6c0qgr9KA,848
|
| 356 |
+
numpy/distutils/command/install_headers.py,sha256=LD_b1bRoprrOOErq2V8DvY8ydFa6KALyi5_fnWymCxc,920
|
| 357 |
+
numpy/distutils/command/sdist.py,sha256=8Tsju1RwXNbPyQcjv8GRMFveFQqYlbNdSZh2X1OV-VU,733
|
| 358 |
+
numpy/distutils/conv_template.py,sha256=F-4vkkfAjCb-fN79WYrXX3BMHMoiQO-W2u09q12OPuI,9536
|
| 359 |
+
numpy/distutils/core.py,sha256=QBJNJdIE0a9Rr4lo-3QnmEaWyVV068l6HbVPdJ75iZg,8173
|
| 360 |
+
numpy/distutils/cpuinfo.py,sha256=XuNhsx_-tyrui_AOgn10yfZ9p4YBM68vW2_bGmKj07I,22639
|
| 361 |
+
numpy/distutils/exec_command.py,sha256=pNi8PhDX_BLc6CspovWMkhbeAQ1vQDlsGZNH8uNKptM,10282
|
| 362 |
+
numpy/distutils/extension.py,sha256=g2Dei8GIkhrKpWttKkgQoVD6707pcx93MhhFt85Z89k,3460
|
| 363 |
+
numpy/distutils/fcompiler/__init__.py,sha256=DqfaiKGVagOFuL0v3VZxZZkRnWWvly0_lYHuLjaZTBo,40625
|
| 364 |
+
numpy/distutils/fcompiler/absoft.py,sha256=yPUHBNZHOr_gxnte16I_X85o1iL9FI4RLHjG9JOuyYU,5516
|
| 365 |
+
numpy/distutils/fcompiler/arm.py,sha256=MCri346qo1bYwjlm32xHRyRl-bAINTlfVIubN6HDz68,2090
|
| 366 |
+
numpy/distutils/fcompiler/compaq.py,sha256=sjU2GKHJGuChtRb_MhnouMqvkIOQflmowFE6ErCWZhE,3903
|
| 367 |
+
numpy/distutils/fcompiler/environment.py,sha256=DOD2FtKDk6O9k6U0h9UKWQ-65wU8z1tSPn3gUlRwCso,3080
|
| 368 |
+
numpy/distutils/fcompiler/fujitsu.py,sha256=yK3wdHoF5qq25UcnIM6FzTXsJGJxdfKa_f__t04Ne7M,1333
|
| 369 |
+
numpy/distutils/fcompiler/g95.py,sha256=FH4uww6re50OUT_BfdoWSLCDUqk8LvmQ2_j5RhF5nLQ,1330
|
| 370 |
+
numpy/distutils/fcompiler/gnu.py,sha256=ag8v_pp-fYpDPKJsVmNaFwN621b1MFQAxew0T1KdE_Y,20502
|
| 371 |
+
numpy/distutils/fcompiler/hpux.py,sha256=gloUjWGo7MgJmukorDq7ZxDnnUKXx-C6AQfryQshVM4,1353
|
| 372 |
+
numpy/distutils/fcompiler/ibm.py,sha256=Ts2PXg2ocrXtX9eguvcHeQ4JB2ktpd5isXtRTpU9F5Y,3534
|
| 373 |
+
numpy/distutils/fcompiler/intel.py,sha256=XYF0GLVhJWjS8noEx4TJ704Eqt-JGBolRZEOkwgNItE,6570
|
| 374 |
+
numpy/distutils/fcompiler/lahey.py,sha256=U63KMfN8zDAd_jnvMkS2N-dvP4UiSRB9Ces290qLNXw,1327
|
| 375 |
+
numpy/distutils/fcompiler/mips.py,sha256=LAwT0DY5yqlYh20hNMYR1-OKu8A9GNw-TbUfI8pvglM,1714
|
| 376 |
+
numpy/distutils/fcompiler/nag.py,sha256=9pQCMUlwjRVHGKwZxvwd4bW5p-9v7VXcflELEImHg1g,2777
|
| 377 |
+
numpy/distutils/fcompiler/none.py,sha256=6RX2X-mV1HuhJZnVfQmDmLVhIUWseIT4P5wf3rdLq9Y,758
|
| 378 |
+
numpy/distutils/fcompiler/nv.py,sha256=NfU4vbXVBiV5FUG69NQciO61T-dFPB6N0Zd0zD8d4eY,1541
|
| 379 |
+
numpy/distutils/fcompiler/pathf95.py,sha256=MiHVar6-beUEYVEpqXORIX4f8G29I47D36kreltdfoQ,1061
|
| 380 |
+
numpy/distutils/fcompiler/pg.py,sha256=NOB1stzrjvQMZS7bIPTgWTcAFe3cjNveA5-SztUZqD0,3568
|
| 381 |
+
numpy/distutils/fcompiler/sun.py,sha256=mfS3RTj9uYT6K9Ikp8RjmsEPIWAtUTzMhX9sGjEyF6I,1577
|
| 382 |
+
numpy/distutils/fcompiler/vast.py,sha256=Xuxa4sNraUPcQmt45SogAfN0kDHFb6C73uNZNmX3RBE,1667
|
| 383 |
+
numpy/distutils/from_template.py,sha256=hpoFQortsLZdMSr_fJILzXzrIwFlZoFjsDSo6jNtvWs,7913
|
| 384 |
+
numpy/distutils/fujitsuccompiler.py,sha256=JDuUUE-GyPahkNnDZLWNHyAmJ2lJPCnLuIUFfHkjMzA,834
|
| 385 |
+
numpy/distutils/intelccompiler.py,sha256=oBZ6MKmPP-RS-UrDvsxy7PAYgxE3pRykcZfrCpoDoas,4022
|
| 386 |
+
numpy/distutils/lib2def.py,sha256=-3rDf9FXsDik3-Qpp-A6N_cYZKTlmVjVi4Jzyo-pSlY,3630
|
| 387 |
+
numpy/distutils/line_endings.py,sha256=a8ZZECrPRffsbs0UygeR47_fOUlZppnx-QPssrIXtB0,2032
|
| 388 |
+
numpy/distutils/log.py,sha256=m8caNBwPhIG7YTnD9iq9jjc6_yJOeU9FHuau2CSulds,2879
|
| 389 |
+
numpy/distutils/mingw/gfortran_vs2003_hack.c,sha256=cbsN3Lk9Hkwzr9c-yOP2xEBg1_ml1X7nwAMDWxGjzc8,77
|
| 390 |
+
numpy/distutils/mingw32ccompiler.py,sha256=RZR2jEjsrVq3iLVKSkQnWIdIA4cokiUUwl0JO2TdPYk,22151
|
| 391 |
+
numpy/distutils/misc_util.py,sha256=pu-AikNhpbmHmGvq5uhcHAdRegvc0jrY5O8JI1M_xj8,89239
|
| 392 |
+
numpy/distutils/msvc9compiler.py,sha256=FCtP7g34AVuMIaqQlH8AV1ZBdIUXbk5G7eBeeTSr1zE,2192
|
| 393 |
+
numpy/distutils/msvccompiler.py,sha256=ILookUifVJF9tAtPJoVCqZ673m5od6MVKuAHuA3Rcfk,2647
|
| 394 |
+
numpy/distutils/npy_pkg_config.py,sha256=LWpcvPQ4ZuGmKO0lrqQHZHAhBe87gTT1Rf6vX0NtZQM,13018
|
| 395 |
+
numpy/distutils/numpy_distribution.py,sha256=10Urolg1aDAG0EHYfcvObzOgqRV0ARh2GhDklEg4vS0,634
|
| 396 |
+
numpy/distutils/pathccompiler.py,sha256=KnJEA5H4cXg7SLrMjwWtidD24VSvOdu72d17votiY9E,713
|
| 397 |
+
numpy/distutils/system_info.py,sha256=kWwNarHCP-D5Qi2q_8WiUSs_ILOo270FpFWOn_JjCtw,113904
|
| 398 |
+
numpy/distutils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 399 |
+
numpy/distutils/tests/test_build_ext.py,sha256=kaKh51tQSetUr4ozxICwUUjOasSXHrg1MCzJAVDNbWY,2779
|
| 400 |
+
numpy/distutils/tests/test_ccompiler_opt.py,sha256=N3pN-9gxPY1KvvMEjoXr7kLxTGN8aQOr8qo5gmlrm90,28778
|
| 401 |
+
numpy/distutils/tests/test_ccompiler_opt_conf.py,sha256=maXytv39amuojbQIieIGIXMV4Cv-s0fsPMZeFEh9XyY,6347
|
| 402 |
+
numpy/distutils/tests/test_exec_command.py,sha256=BK-hHfIIrkCep-jNmS5_Cwq5oESvsvX3V_0XDAkT1Ok,7395
|
| 403 |
+
numpy/distutils/tests/test_fcompiler.py,sha256=mJXezTXDUbduhCwVGAfABHpEARWhnj8hLW9EOU3rn84,1277
|
| 404 |
+
numpy/distutils/tests/test_fcompiler_gnu.py,sha256=nmfaFCVzbViIOQ2-MjgXt-bN8Uj674hCgiwr5Iol-_U,2136
|
| 405 |
+
numpy/distutils/tests/test_fcompiler_intel.py,sha256=mxkfFD2rNfg8nn1pp_413S0uCdYXydPWBcz9ilgGkA0,1058
|
| 406 |
+
numpy/distutils/tests/test_fcompiler_nagfor.py,sha256=CKEjik7YVfSJGL4abuctkmlkIUhAhv-x2aUcXiTR9b0,1102
|
| 407 |
+
numpy/distutils/tests/test_from_template.py,sha256=SDYoe0XUpAayyEQDq7ZhrvEEz7U9upJDLYzhcdoVifc,1103
|
| 408 |
+
numpy/distutils/tests/test_log.py,sha256=0tSM4q-00CjbMIRb9QOJzI4A7GHUiRGOG1SOOLz8dnM,868
|
| 409 |
+
numpy/distutils/tests/test_mingw32ccompiler.py,sha256=rMC8-IyBOiuZVfAoklV_KnD9qVeB_hFVvb5dStxfk08,1609
|
| 410 |
+
numpy/distutils/tests/test_misc_util.py,sha256=xjNaYJ4Ev5YjokxM8J_T2z2oGTzUSs-wCh9ZqO9RNmg,3364
|
| 411 |
+
numpy/distutils/tests/test_npy_pkg_config.py,sha256=apGrmViPcXoPCEOgDthJgL13C9N0qQMs392QjZDxJd4,2557
|
| 412 |
+
numpy/distutils/tests/test_shell_utils.py,sha256=UKU_t5oIa_kVMv89Ys9KN6Z_Fy5beqPDUsDAWPmcoR8,2114
|
| 413 |
+
numpy/distutils/tests/test_system_info.py,sha256=wMV7bH5oB0luLDR2tunHrLaUxsD_-sIhLnNpj1blQPs,11405
|
| 414 |
+
numpy/distutils/tests/utilities.py,sha256=pyfnVJJ7ZprjC2EETB6iFHYMkQeKsZbq1jVQR3cIrws,2287
|
| 415 |
+
numpy/distutils/unixccompiler.py,sha256=fN4-LH6JJp44SLE7JkdG2kKQlK4LC8zuUpVC-RtmJ-U,5426
|
| 416 |
+
numpy/doc/ufuncs.py,sha256=9xt8H34GhrXrFq9cWFUGvJFePa9YuH9Tq1DzAnm2E2E,5414
|
| 417 |
+
numpy/dtypes.py,sha256=zuPwgC0ijF2oDRAOJ6I9JKhaJuhXFAygByLQaoVtT54,1312
|
| 418 |
+
numpy/dtypes.pyi,sha256=BYyUPY0MKF7EzspiOss_FaxqEEzmd0dEpsvGySRfSek,15180
|
| 419 |
+
numpy/exceptions.py,sha256=2EH3OwDVoJtAsRODuGlnLWA1hrjDniolCVkR87-eHIo,7838
|
| 420 |
+
numpy/exceptions.pyi,sha256=rVue0Qxt3GG40b5xKlj0r_JFjbX6s-bPP7YlqdQlvv0,751
|
| 421 |
+
numpy/f2py/__init__.py,sha256=hz6c1M2csKnlKPWbKIDcpSo0cbT5V0UPhQYkELi8zEw,2503
|
| 422 |
+
numpy/f2py/__init__.pyi,sha256=uxcZnHA75gxBi50Z3OTWYSYZaeIuWFQv2Dl0F8_WX-g,1061
|
| 423 |
+
numpy/f2py/__main__.py,sha256=6i2jVH2fPriV1aocTY_dUFvWK18qa-zjpnISA-OpF3w,130
|
| 424 |
+
numpy/f2py/__version__.py,sha256=7HHdjR82FCBmftwMRyrlhcEj-8mGQb6oCH-wlUPH4Nw,34
|
| 425 |
+
numpy/f2py/_backends/__init__.py,sha256=7_bA7c_xDpLc4_8vPfH32-Lxn9fcUTgjQ25srdvwvAM,299
|
| 426 |
+
numpy/f2py/_backends/_backend.py,sha256=GKb9-UaFszT045vUgVukPs1n97iyyjqahrWKxLOKNYo,1187
|
| 427 |
+
numpy/f2py/_backends/_distutils.py,sha256=whJ4xqPet1PffVOcR6W_2NF8yR4LLDh3pZLrKkl0Rh4,2384
|
| 428 |
+
numpy/f2py/_backends/_meson.py,sha256=xRGHWhdQJIs1-c3fHeeGHL50XyjU6NjX4-Wp3gjldMY,8089
|
| 429 |
+
numpy/f2py/_backends/meson.build.template,sha256=hQeTapAY0xtni5Li-QaEtWx9DH9WDKah2lcEuSZfLLo,1599
|
| 430 |
+
numpy/f2py/_isocbind.py,sha256=zaBgpfPNRmxVG3doUIlbZIiyB990MsXiwDabrSj9HnQ,2360
|
| 431 |
+
numpy/f2py/_src_pyf.py,sha256=4Qx_-SQSsDh-ggNw3dmHTLASgu1dUY670_Z06WY8clM,7664
|
| 432 |
+
numpy/f2py/auxfuncs.py,sha256=PSpBh067SNG1XUJNHqCLpxiorTieeuVTj5h8tOTfXeE,27020
|
| 433 |
+
numpy/f2py/capi_maps.py,sha256=MTHjWUSTBngVZtyULdBe1QxAGq9IrxNV8OthujKKr0w,30607
|
| 434 |
+
numpy/f2py/cb_rules.py,sha256=fSxXAxjNaPXt54E957v1-Q3oCM06vbST5gFu1D98ic4,25004
|
| 435 |
+
numpy/f2py/cfuncs.py,sha256=Jz-em0GDHjexh8FiVEYccAMV4xB5Bp9kQVUMM1uBNcY,52484
|
| 436 |
+
numpy/f2py/common_rules.py,sha256=gHB76WypbkVmhaD_RWhy8Od4zDTgj8cbDOdUdIp6PIQ,5131
|
| 437 |
+
numpy/f2py/crackfortran.py,sha256=KfTsGcO947ziTwz9UTmrfyXLbqXGIngrMRkso2C0v5E,148095
|
| 438 |
+
numpy/f2py/diagnose.py,sha256=7-Turk573zFa1PIZiFPbC4Pukm1X0nF8PyGxnlc08Fc,5197
|
| 439 |
+
numpy/f2py/f2py2e.py,sha256=inb09kMkkYig8a6Rizj6xvHuWXfrqZzXh1oZgz0dZvM,28838
|
| 440 |
+
numpy/f2py/f90mod_rules.py,sha256=XGtag5pv2Np-hdtjwmSxofKbLO2U_N49sEK_X4Lp3SA,9874
|
| 441 |
+
numpy/f2py/func2subr.py,sha256=6d2R5awuHRT4xzgfUfwS7JHTqhhAieSXcENlssD_2c4,10298
|
| 442 |
+
numpy/f2py/rules.py,sha256=EhOTqFY3M0UX5dQGlthzkFC0b-R5nCVh4ST4tp0smFY,62938
|
| 443 |
+
numpy/f2py/setup.cfg,sha256=Fpn4sjqTl5OT5sp8haqKIRnUcTPZNM6MIvUJBU7BIhg,48
|
| 444 |
+
numpy/f2py/src/fortranobject.c,sha256=CYrF44_CoUbZy3QHhe5sAPVtqsaCT4x9oCtUeD7IVyc,46049
|
| 445 |
+
numpy/f2py/src/fortranobject.h,sha256=7cfRN_tToAQ1Na13VQ2Kzb2ujMHUAgGsbScnfLVOHqs,5823
|
| 446 |
+
numpy/f2py/symbolic.py,sha256=PvP0bK0FLEDQj14u340HJu7ghzS_2WlxhGQpJ0zbMQE,53254
|
| 447 |
+
numpy/f2py/tests/__init__.py,sha256=46XgeBE0seimp3wD4Ox0KutYeLwdsdRSiGECcG1iYu8,328
|
| 448 |
+
numpy/f2py/tests/src/abstract_interface/foo.f90,sha256=JFU2w98cB_XNwfrqNtI0yDTmpEdxYO_UEl2pgI_rnt8,658
|
| 449 |
+
numpy/f2py/tests/src/abstract_interface/gh18403_mod.f90,sha256=gvQJIzNtvacWE0dhysxn30-iUeI65Hpq7DiE9oRauz8,105
|
| 450 |
+
numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c,sha256=s6XLwujiCr6Xi8yBkvLPBXRmo2WsGVohU7K9ALnKUng,7478
|
| 451 |
+
numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap,sha256=But9r9m4iL7EGq_haMW8IiQ4VivH0TgUozxX4pPvdpE,29
|
| 452 |
+
numpy/f2py/tests/src/assumed_shape/foo_free.f90,sha256=oBwbGSlbr9MkFyhVO2aldjc01dr9GHrMrSiRQek8U64,460
|
| 453 |
+
numpy/f2py/tests/src/assumed_shape/foo_mod.f90,sha256=rfzw3QdI-eaDSl-hslCgGpd5tHftJOVhXvb21Y9Gf6M,499
|
| 454 |
+
numpy/f2py/tests/src/assumed_shape/foo_use.f90,sha256=rmT9k4jP9Ru1PLcGqepw9Jc6P9XNXM0axY7o4hi9lUw,269
|
| 455 |
+
numpy/f2py/tests/src/assumed_shape/precision.f90,sha256=r08JeTVmTTExA-hYZ6HzaxVwBn1GMbPAuuwBhBDtJUk,130
|
| 456 |
+
numpy/f2py/tests/src/block_docstring/foo.f,sha256=y7lPCPu7_Fhs_Tf2hfdpDQo1bhtvNSKRaZAOpM_l3dg,97
|
| 457 |
+
numpy/f2py/tests/src/callback/foo.f,sha256=C1hjfpRCQWiOVVzIHqnsYcnLrqQcixrnHCn8hd9GhVk,1254
|
| 458 |
+
numpy/f2py/tests/src/callback/gh17797.f90,sha256=_Nrl0a2HgUbtymGU0twaJ--7rMa1Uco2A3swbWvHoMo,148
|
| 459 |
+
numpy/f2py/tests/src/callback/gh18335.f90,sha256=NraOyKIXyvv_Y-3xGnmTjtNjW2Znsnlk8AViI8zfovc,506
|
| 460 |
+
numpy/f2py/tests/src/callback/gh25211.f,sha256=a2sxlQhtDVbYn8KOKHUYqwc-aCFt7sDPSnJsXFG35uI,179
|
| 461 |
+
numpy/f2py/tests/src/callback/gh25211.pyf,sha256=FWxo0JWQlw519BpZV8PoYeI_FZ_K6C-3Wk6gLrfBPlw,447
|
| 462 |
+
numpy/f2py/tests/src/callback/gh26681.f90,sha256=-cD69x7omk5wvVsfMHlXiZ-pTcaxs2Bl5G9GHA4UJ2M,566
|
| 463 |
+
numpy/f2py/tests/src/cli/gh_22819.pyf,sha256=5rvOfCv-wSosB354LC9pExJmMoSHnbGZGl_rtA2fogA,142
|
| 464 |
+
numpy/f2py/tests/src/cli/hi77.f,sha256=ttyI6vAP3qLnDqy82V04XmoqrXNM6uhMvvLri2p0dq0,71
|
| 465 |
+
numpy/f2py/tests/src/cli/hiworld.f90,sha256=QWOLPrTxYQu1yrEtyQMbM0fE9M2RmXe7c185KnD5x3o,51
|
| 466 |
+
numpy/f2py/tests/src/common/block.f,sha256=GQ0Pd-VMX3H3a-__f2SuosSdwNXHpBqoGnQDjf8aG9g,224
|
| 467 |
+
numpy/f2py/tests/src/common/gh19161.f90,sha256=BUejyhqpNVfHZHQ-QC7o7ZSo7lQ6YHyX08lSmQqs6YM,193
|
| 468 |
+
numpy/f2py/tests/src/crackfortran/accesstype.f90,sha256=-5Din7YlY1TU7tUHD2p-_DSTxGBpDsWYNeT9WOwGhno,208
|
| 469 |
+
numpy/f2py/tests/src/crackfortran/common_with_division.f,sha256=2LfRa26JEB07_ti-WDmIveq991PxRlL_K6ss28rZDkk,494
|
| 470 |
+
numpy/f2py/tests/src/crackfortran/data_common.f,sha256=ZSUAh3uhn9CCF-cYqK5TNmosBGPfsuHBIEfudgysun4,193
|
| 471 |
+
numpy/f2py/tests/src/crackfortran/data_multiplier.f,sha256=jYrJKZWF_59JF9EMOSALUjn0UupWvp1teuGpcL5s1Sc,197
|
| 472 |
+
numpy/f2py/tests/src/crackfortran/data_stmts.f90,sha256=19YO7OGj0IksyBlmMLZGRBQLjoE3erfkR4tFvhznvvE,693
|
| 473 |
+
numpy/f2py/tests/src/crackfortran/data_with_comments.f,sha256=hoyXw330VHh8duMVmAQZjr1lgLVF4zFCIuEaUIrupv0,175
|
| 474 |
+
numpy/f2py/tests/src/crackfortran/foo_deps.f90,sha256=CaH7mnWTG7FcnJe2vXN_0zDbMadw6NCqK-JJ2HmDjK8,128
|
| 475 |
+
numpy/f2py/tests/src/crackfortran/gh15035.f,sha256=jJly1AzF5L9VxbVQ0vr-sf4LaUo4eQzJguhuemFxnvg,375
|
| 476 |
+
numpy/f2py/tests/src/crackfortran/gh17859.f,sha256=7K5dtOXGuBDAENPNCt-tAGJqTfNKz5OsqVSk16_e7Es,340
|
| 477 |
+
numpy/f2py/tests/src/crackfortran/gh22648.pyf,sha256=qZHPRNQljIeYNwbqPLxREnOrSdVV14f3fnaHqB1M7c0,241
|
| 478 |
+
numpy/f2py/tests/src/crackfortran/gh23533.f,sha256=w3tr_KcY3s7oSWGDmjfMHv5h0RYVGUpyXquNdNFOJQg,126
|
| 479 |
+
numpy/f2py/tests/src/crackfortran/gh23598.f90,sha256=41W6Ire-5wjJTTg6oAo7O1WZfd1Ug9vvNtNgHS5MhEU,101
|
| 480 |
+
numpy/f2py/tests/src/crackfortran/gh23598Warn.f90,sha256=1v-hMCT_K7prhhamoM20nMU9zILam84Hr-imck_dYYk,205
|
| 481 |
+
numpy/f2py/tests/src/crackfortran/gh23879.f90,sha256=LWDJTYR3t9h1IsrKC8dVXZlBfWX7clLeU006X6Ow8oI,332
|
| 482 |
+
numpy/f2py/tests/src/crackfortran/gh27697.f90,sha256=bbnKpDsOuCWluoNodxzCspUQnu169zKTsn4fLTkhwpM,364
|
| 483 |
+
numpy/f2py/tests/src/crackfortran/gh2848.f90,sha256=gPNasx98SIf7Z9ibk_DHiGKCvl7ERtsfoGXiFDT7FbM,282
|
| 484 |
+
numpy/f2py/tests/src/crackfortran/operators.f90,sha256=-Fc-qjW1wBr3Dkvdd5dMTrt0hnjnV-1AYo-NFWcwFSo,1184
|
| 485 |
+
numpy/f2py/tests/src/crackfortran/privatemod.f90,sha256=7bubZGMIn7iD31wDkjF1TlXCUM7naCIK69M9d0e3y-U,174
|
| 486 |
+
numpy/f2py/tests/src/crackfortran/publicmod.f90,sha256=Pnwyf56Qd6W3FUH-ZMgnXEYkb7gn18ptNTdwmGan0Jo,167
|
| 487 |
+
numpy/f2py/tests/src/crackfortran/pubprivmod.f90,sha256=eYpJwBYLKGOxVbKgEqfny1znib-b7uYhxcRXIf7uwXg,165
|
| 488 |
+
numpy/f2py/tests/src/crackfortran/unicode_comment.f90,sha256=aINLh6GlfTwFewxvDoqnMqwuCNb4XAqi5Nj5vXguXYs,98
|
| 489 |
+
numpy/f2py/tests/src/f2cmap/.f2py_f2cmap,sha256=iUOtfHd3OuT1Rz2-yiSgt4uPKGvCt5AzQ1iygJt_yjg,82
|
| 490 |
+
numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90,sha256=iJCD8a8MUTmuPuedbcmxW54Nr4alYuLhksBe1sHS4K0,298
|
| 491 |
+
numpy/f2py/tests/src/isocintrin/isoCtests.f90,sha256=jcw-fzrFh0w5U66uJYfeUW4gv94L5MnWQ_NpsV9y0oI,998
|
| 492 |
+
numpy/f2py/tests/src/kind/foo.f90,sha256=zIHpw1KdkWbTzbXb73hPbCg4N2Htj3XL8DIwM7seXpo,347
|
| 493 |
+
numpy/f2py/tests/src/mixed/foo.f,sha256=90zmbSHloY1XQYcPb8B5d9bv9mCZx8Z8AMTtgDwJDz8,85
|
| 494 |
+
numpy/f2py/tests/src/mixed/foo_fixed.f90,sha256=pxKuPzxF3Kn5khyFq9ayCsQiolxB3SaNtcWaK5j6Rv4,179
|
| 495 |
+
numpy/f2py/tests/src/mixed/foo_free.f90,sha256=fIQ71wrBc00JUAVUj_r3QF9SdeNniBiMw6Ly7CGgPWU,139
|
| 496 |
+
numpy/f2py/tests/src/modules/gh25337/data.f90,sha256=9Uz8CHB9i3_mjC3cTOmkTgPAF5tWSwYacG3MUrU-SY0,180
|
| 497 |
+
numpy/f2py/tests/src/modules/gh25337/use_data.f90,sha256=WATiDGAoCKnGgMzm_iMgmfVU0UKOQlk5Fm0iXCmPAkE,179
|
| 498 |
+
numpy/f2py/tests/src/modules/gh26920/two_mods_with_no_public_entities.f90,sha256=c7VU4SbK3yWn-6wksP3tDx_Hxh5u_g8UnlDpjU_-tBg,402
|
| 499 |
+
numpy/f2py/tests/src/modules/gh26920/two_mods_with_one_public_routine.f90,sha256=eEU7RgFPh-TnNXEuJFdtJmTF-wPnpbHLQhG4fEeJnag,403
|
| 500 |
+
numpy/f2py/tests/src/modules/module_data_docstring.f90,sha256=tDZ3fUlazLL8ThJm3VwNGJ75QIlLcW70NnMFv-JA4W0,224
|
| 501 |
+
numpy/f2py/tests/src/modules/use_modules.f90,sha256=UsFfx0B2gu_tS-H-BpLWed_yoMDl1kbydMIOz8fvXWA,398
|
| 502 |
+
numpy/f2py/tests/src/negative_bounds/issue_20853.f90,sha256=fdOPhRi7ipygwYCXcda7p_dlrws5Hd2GlpF9EZ-qnck,157
|
| 503 |
+
numpy/f2py/tests/src/parameter/constant_array.f90,sha256=KRg7Gmq_r3B7t3IEgRkP1FT8ve8AuUFWT0WcTlXoN5U,1468
|
| 504 |
+
numpy/f2py/tests/src/parameter/constant_both.f90,sha256=-bBf2eqHb-uFxgo6Q7iAtVUUQzrGFqzhHDNaxwSICfQ,1939
|
| 505 |
+
numpy/f2py/tests/src/parameter/constant_compound.f90,sha256=re7pfzcuaquiOia53UT7qNNrTYu2euGKOF4IhoLmT6g,469
|
| 506 |
+
numpy/f2py/tests/src/parameter/constant_integer.f90,sha256=nEmMLitKoSAG7gBBEQLWumogN-KS3DBZOAZJWcSDnFw,612
|
| 507 |
+
numpy/f2py/tests/src/parameter/constant_non_compound.f90,sha256=IcxESVLKJUZ1k9uYKoSb8Hfm9-O_4rVnlkiUU2diy8Q,609
|
| 508 |
+
numpy/f2py/tests/src/parameter/constant_real.f90,sha256=quNbDsM1Ts2rN4WtPO67S9Xi_8l2cXabWRO00CPQSSQ,610
|
| 509 |
+
numpy/f2py/tests/src/quoted_character/foo.f,sha256=WjC9D9171fe2f7rkUAZUvik9bkIf9adByfRGzh6V0cM,482
|
| 510 |
+
numpy/f2py/tests/src/regression/AB.inc,sha256=cSNxitwrjTKMiJzhY2AI5FaXJ5y9zDgA27x79jyoI6s,16
|
| 511 |
+
numpy/f2py/tests/src/regression/assignOnlyModule.f90,sha256=c9RvUP1pQ201O_zOXgV0xp_aJF_8llxuA8Uot9z5tr0,608
|
| 512 |
+
numpy/f2py/tests/src/regression/datonly.f90,sha256=9cVvl8zlAuGiqbSHMFzFn6aNWXj2v7sHJdd9A1Oc0qg,392
|
| 513 |
+
numpy/f2py/tests/src/regression/f77comments.f,sha256=bqTsmO8WuSLVFsViIV7Nj7wQbJoZ7IAA3d2tpRDKsnA,626
|
| 514 |
+
numpy/f2py/tests/src/regression/f77fixedform.f95,sha256=hcLZbdozMJ3V9pByVRp3RoeUvZgLMRLFctpZvxK2hTI,139
|
| 515 |
+
numpy/f2py/tests/src/regression/f90continuation.f90,sha256=_W1fj0wXLqT91Q14qpBnM3F7rJKaiSR8upe0mR6_OIE,276
|
| 516 |
+
numpy/f2py/tests/src/regression/incfile.f90,sha256=i7Y1zgMXR9bSxnjeYWSDGeCfsS5jiyn7BLb-wbwjz2U,92
|
| 517 |
+
numpy/f2py/tests/src/regression/inout.f90,sha256=CpHpgMrf0bqA1W3Ozo3vInDz0RP904S7LkpdAH6ODck,277
|
| 518 |
+
numpy/f2py/tests/src/regression/lower_f2py_fortran.f90,sha256=CMQL5RWf9LKnnUDiS-IYa9xc9DGanCYraNq0vGmunOE,100
|
| 519 |
+
numpy/f2py/tests/src/return_character/foo77.f,sha256=WzDNF3d_hUDSSZjtxd3DtE-bSx1ilOMEviGyYHbcFgM,980
|
| 520 |
+
numpy/f2py/tests/src/return_character/foo90.f90,sha256=ULcETDEt7gXHRzmsMhPsGG4o3lGrcx-FEFaJsPGFKyA,1248
|
| 521 |
+
numpy/f2py/tests/src/return_complex/foo77.f,sha256=8ECRJkfX82oFvGWKbIrCvKjf5QQQClx4sSEvsbkB6A8,973
|
| 522 |
+
numpy/f2py/tests/src/return_complex/foo90.f90,sha256=c1BnrtWwL2dkrTr7wvlEqNDg59SeNMo3gyJuGdRwcDw,1238
|
| 523 |
+
numpy/f2py/tests/src/return_integer/foo77.f,sha256=_8k1evlzBwvgZ047ofpdcbwKdF8Bm3eQ7VYl2Y8b5kA,1178
|
| 524 |
+
numpy/f2py/tests/src/return_integer/foo90.f90,sha256=bzxbYtofivGRYH35Ang9ScnbNsVERN8-6ub5-eI-LGQ,1531
|
| 525 |
+
numpy/f2py/tests/src/return_logical/foo77.f,sha256=FxiF_X0HkyXHzJM2rLyTubZJu4JB-ObLnVqfZwAQFl8,1188
|
| 526 |
+
numpy/f2py/tests/src/return_logical/foo90.f90,sha256=9KmCe7yJYpi4ftkKOM3BCDnPOdBPTbUNrKxY3p37O14,1531
|
| 527 |
+
numpy/f2py/tests/src/return_real/foo77.f,sha256=ZTrzb6oDrIDPlrVWP3Bmtkbz3ffHaaSQoXkfTGtCuFE,933
|
| 528 |
+
numpy/f2py/tests/src/return_real/foo90.f90,sha256=gZuH5lj2lG6gqHlH766KQ3J4-Ero-G4WpOOo2MG3ohU,1194
|
| 529 |
+
numpy/f2py/tests/src/routines/funcfortranname.f,sha256=oGPnHo0zL7kjFnuHw41mWUSXauoeRVPXnYXBb2qljio,123
|
| 530 |
+
numpy/f2py/tests/src/routines/funcfortranname.pyf,sha256=coD8AdLyPK4_cGvQJgE2WJW_jH8EAulZCsMeb-Q1gOk,440
|
| 531 |
+
numpy/f2py/tests/src/routines/subrout.f,sha256=RTexoH7RApv_mhu-RcVwyNiU-DXMTUP8LJAMSn2wQjk,90
|
| 532 |
+
numpy/f2py/tests/src/routines/subrout.pyf,sha256=c9qv4XtIh4wA9avdkDJuXNwojK-VBPldrNhxlh446Ic,322
|
| 533 |
+
numpy/f2py/tests/src/size/foo.f90,sha256=IlFAQazwBRr3zyT7v36-tV0-fXtB1d7WFp6S1JVMstg,815
|
| 534 |
+
numpy/f2py/tests/src/string/char.f90,sha256=ihr_BH9lY7eXcQpHHDQhFoKcbu7VMOX5QP2Tlr7xlaM,618
|
| 535 |
+
numpy/f2py/tests/src/string/fixed_string.f90,sha256=5n6IkuASFKgYICXY9foCVoqndfAY0AQZFEK8L8ARBGM,695
|
| 536 |
+
numpy/f2py/tests/src/string/gh24008.f,sha256=UA8Pr-_yplfOFmc6m4v9ryFQ8W9OulaglulefkFWD68,217
|
| 537 |
+
numpy/f2py/tests/src/string/gh24662.f90,sha256=-Tp9Kd1avvM7AIr8ZukFA9RVr-wusziAnE8AvG9QQI4,197
|
| 538 |
+
numpy/f2py/tests/src/string/gh25286.f90,sha256=2EpxvC-0_dA58MBfGQcLyHzpZgKcMf_W9c73C_Mqnok,304
|
| 539 |
+
numpy/f2py/tests/src/string/gh25286.pyf,sha256=GjgWKh1fHNdPGRiX5ek60i1XSeZsfFalydWqjISPVV8,381
|
| 540 |
+
numpy/f2py/tests/src/string/gh25286_bc.pyf,sha256=6Y9zU66NfcGhTXlFOdFjCSMSwKXpq5ZfAe3FwpkAsm4,384
|
| 541 |
+
numpy/f2py/tests/src/string/scalar_string.f90,sha256=ACxV2i6iPDk-a6L_Bs4jryVKYJMEGUTitEIYTjbJes4,176
|
| 542 |
+
numpy/f2py/tests/src/string/string.f,sha256=shr3fLVZaa6SyUJFYIF1OZuhff8v5lCwsVNBU2B-3pk,248
|
| 543 |
+
numpy/f2py/tests/src/value_attrspec/gh21665.f90,sha256=JC0FfVXsnB2lZHb-nGbySnxv_9VHAyD0mKaLDowczFU,190
|
| 544 |
+
numpy/f2py/tests/test_abstract_interface.py,sha256=nGyPJgB0-d9Ttk3XsYb-N9HxfZxTVUz0gkl66u3JNaU,809
|
| 545 |
+
numpy/f2py/tests/test_array_from_pyobj.py,sha256=nXkuHwa0gvVOsyuKI2m1UfVu8HyKiFqBvIK23_zOdxw,23702
|
| 546 |
+
numpy/f2py/tests/test_assumed_shape.py,sha256=FeaqtrWyBf5uyArcmI0D2e_f763aSMpgU3QmdDXe-tA,1466
|
| 547 |
+
numpy/f2py/tests/test_block_docstring.py,sha256=2WGCsNBxtH57BjAYyPAzUZgiBRYWAQpC9zODP02OZec,582
|
| 548 |
+
numpy/f2py/tests/test_callback.py,sha256=8I31S55C4p3WXUFUY78fo8as-VpS6h7kNAPeUZrr7w0,7114
|
| 549 |
+
numpy/f2py/tests/test_character.py,sha256=zUsyZCO1FrhVxF-S_fuET_xjbWoJc3SrFCNY_buT7WU,21905
|
| 550 |
+
numpy/f2py/tests/test_common.py,sha256=VPsy0SLqbKaUGgDqesYXmjYuLpnPK-XyzseqmV5QnhM,641
|
| 551 |
+
numpy/f2py/tests/test_crackfortran.py,sha256=6Y_u1FJYpVkwE9615Bx24eMh67rtJEm1bIEegnpxvCg,16383
|
| 552 |
+
numpy/f2py/tests/test_data.py,sha256=SFYgovu5LBtIbS-zvbqkm9zoahHJx35LDOJoEqYP_kU,2888
|
| 553 |
+
numpy/f2py/tests/test_docs.py,sha256=GiQUqifxttwJRgkmLEoq5wIFjTlYLEAQ1n5Kw4Emsiw,1850
|
| 554 |
+
numpy/f2py/tests/test_f2cmap.py,sha256=-WnN0HlqiG9RPgc1P_KSLZvqgQ4wGYDf0lFcyfWOLfs,385
|
| 555 |
+
numpy/f2py/tests/test_f2py2e.py,sha256=K_883X2rw88Fn5a7bZPI03NFA3YD95NYopX0OHxcZAM,27868
|
| 556 |
+
numpy/f2py/tests/test_isoc.py,sha256=kY7yg7Jtyn_RBlozwe6UpQvtwPbPcpTC0B27s2GRo7s,1428
|
| 557 |
+
numpy/f2py/tests/test_kind.py,sha256=myLQNDPZDdVq7PNjXWUgkY3M-JdzP5MJNZ1PE_ChNEI,1783
|
| 558 |
+
numpy/f2py/tests/test_mixed.py,sha256=iMMRt1q7woHuKSfqiw4LsaU9wIRq2FnvT0lv74fR7V0,860
|
| 559 |
+
numpy/f2py/tests/test_modules.py,sha256=wli_Cq9FroWg9nnOZplGAd9L5OX49h_Z-e8PyVVnk0w,2299
|
| 560 |
+
numpy/f2py/tests/test_parameter.py,sha256=j4sNNiHkj-jbl3FC4v_tnksgpydbHqNvNI2tzlVFGYE,4623
|
| 561 |
+
numpy/f2py/tests/test_pyf_src.py,sha256=eD0bZu_GWfoCq--wWqEKRf-F2h5AwoTyO6GMA9wJPr4,1135
|
| 562 |
+
numpy/f2py/tests/test_quoted_character.py,sha256=T6I2EyopdItKamcokG0ylvhT7krZYhBU6hF3UFIBr2g,476
|
| 563 |
+
numpy/f2py/tests/test_regression.py,sha256=L95aSnN9lOVRkmGPVRaVF4w6hJ3iHgQ8BPM34Uef35I,5849
|
| 564 |
+
numpy/f2py/tests/test_return_character.py,sha256=DP63vrF6bIV-QRBsJ1ZpPsKz-u906Ph8M6_biPEzBJs,1511
|
| 565 |
+
numpy/f2py/tests/test_return_complex.py,sha256=4vtpIYqAZZrbKYi3fnP7l_Zn42YnBbPwl8-eNfZOHHo,2415
|
| 566 |
+
numpy/f2py/tests/test_return_integer.py,sha256=qR8Ismf40Ml2impqjGzjL2i-CRyGTxXVEvzQQMkJfJo,1776
|
| 567 |
+
numpy/f2py/tests/test_return_logical.py,sha256=XCmp8E8I6BOeNYF59HjSFAdv1hM9WaDvl8UDS10_05o,2017
|
| 568 |
+
numpy/f2py/tests/test_return_real.py,sha256=KMIRQP9xjz09-wFX-jeMbkNQPXegnfd-Qhc4W4qKHeA,3247
|
| 569 |
+
numpy/f2py/tests/test_routines.py,sha256=TflyDvptl5dREgZFv6hlauRvsK_FFUo7ZTVsiIYPcio,794
|
| 570 |
+
numpy/f2py/tests/test_semicolon_split.py,sha256=6aGgOdtGpJSgPZlzpow-tcHXSPqrJeKagWnFilheWeM,1626
|
| 571 |
+
numpy/f2py/tests/test_size.py,sha256=CsElZF4N5Tf7fr27TJudu3JD_JKb63SubUXPYjl5Llg,1154
|
| 572 |
+
numpy/f2py/tests/test_string.py,sha256=wfV6jxkOnoJWOM7i5Ee7gc2nXK_Gyb3FqNI4wLfVQhk,2936
|
| 573 |
+
numpy/f2py/tests/test_symbolic.py,sha256=28quk2kTKfWhKe56n4vINJ8G9weKBfc7HysMlE9J3_g,18341
|
| 574 |
+
numpy/f2py/tests/test_value_attrspec.py,sha256=jYtbvVyg8uOZsdcCeLhaXIdR7MOfMh1j04aXbJNbfK8,329
|
| 575 |
+
numpy/f2py/tests/util.py,sha256=WKEixdQq0xJV3Hg60a-6xc1T5GhKDngfPEw-WNfoqjg,12174
|
| 576 |
+
numpy/f2py/use_rules.py,sha256=oMjkw5fP55MhGAqdDcO_dknbQBE9qLljU7y6-HDoerY,3515
|
| 577 |
+
numpy/fft/__init__.py,sha256=cW8oJRorHlG10mhnhAB1OOkg4HpG2NGYHDgonFNI04s,8326
|
| 578 |
+
numpy/fft/__init__.pyi,sha256=KvQQpPxk9LKgqMIB3AGJCsQDu3ownGKjjT7McQKNpXY,514
|
| 579 |
+
numpy/fft/_helper.py,sha256=Yvph-5gksd0HebLSXq4UKfVYOwSiqNIa4THpv0aA2HE,6775
|
| 580 |
+
numpy/fft/_helper.pyi,sha256=dek8ibnRL8Y2erBdDt7ydWyAVXLb46SPTctLy_TEKoE,1341
|
| 581 |
+
numpy/fft/_pocketfft.py,sha256=Q6J5inX10oPBtX-lblPlYExuzycovGr-LFMT7QYe9pc,62692
|
| 582 |
+
numpy/fft/_pocketfft.pyi,sha256=Dvhdy8Y2R1HmTu-99z4Pgd4WCnC6eg3OVzUY4yOQpTo,3155
|
| 583 |
+
numpy/fft/_pocketfft_umath.cpython-310-darwin.so,sha256=IeGd7Vk6ad5CokC65k0QU4UANJ6gc5ACvPucaxeltYM,329816
|
| 584 |
+
numpy/fft/helper.py,sha256=str0NJ1vpLNlC_3vMfulTu9D9_cThxKG2zkaGuZ5NTY,610
|
| 585 |
+
numpy/fft/helper.pyi,sha256=KsF45bVyZ4_eJbBFpkER9L8MCWmg7dJuhLqY_7uFNZs,891
|
| 586 |
+
numpy/fft/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 587 |
+
numpy/fft/tests/test_helper.py,sha256=pVYVLUwNEcE9M8eyHaRi7JOgc6k5p_JVzJ0AKnelgvI,6149
|
| 588 |
+
numpy/fft/tests/test_pocketfft.py,sha256=euC7OA8_h_EQ0aO_UqBNPARx3xb2LgJS-rsWe3XiE-U,24410
|
| 589 |
+
numpy/lib/__init__.py,sha256=IvUoSO27nHWmaTCs4fqJLDIWIcaj-uRIbR9YfkyptAo,3226
|
| 590 |
+
numpy/lib/__init__.pyi,sha256=nevfu40fu_qSozt-vdcUGh_zQijGGWxfdns2x9_LsWI,518
|
| 591 |
+
numpy/lib/_array_utils_impl.py,sha256=eMGdZi7auu6201h4v4eQZ2miF8KmdMGDApbBFgRE-6Q,1689
|
| 592 |
+
numpy/lib/_array_utils_impl.pyi,sha256=2OjfMvbUUlTrJHvGHIcnlrHxPWl7LcpFo3gmuVz6nWg,793
|
| 593 |
+
numpy/lib/_arraypad_impl.py,sha256=xm8Pkunt7DAKAWvnySEsoWbjMvcmZL-OC7qe-LQaruQ,32326
|
| 594 |
+
numpy/lib/_arraypad_impl.pyi,sha256=G9GSX6q0glWgoPN5FGzO-Ql1UdkKadoyfVy1B0HH9iM,1792
|
| 595 |
+
numpy/lib/_arraysetops_impl.py,sha256=CBDoG2fWzx0OITbZEKlFD5WUo9HQRqmsweoMOtHKQjs,39309
|
| 596 |
+
numpy/lib/_arraysetops_impl.pyi,sha256=4BeISAFRLNdag94QdBWWJTOWr2RPaWcNkkiCBuIdejU,9569
|
| 597 |
+
numpy/lib/_arrayterator_impl.py,sha256=qx6gqxLTNY4Lea6Lh6J-Cud4RyLIqnELhi-kMwK8vKU,7186
|
| 598 |
+
numpy/lib/_arrayterator_impl.pyi,sha256=8ozo2UTKx-9fIDXhVMYDyhlfuMa-uPlWCp25TRk61kE,1827
|
| 599 |
+
numpy/lib/_datasource.py,sha256=FJ7k1HghREU7udh8ZuO5ZZF3nHJfOkj7iWijhoVFqIQ,22729
|
| 600 |
+
numpy/lib/_datasource.pyi,sha256=135RvD3p-3mHdNp_sZV4aN9brwEFvEM49VE1eHlFEfs,996
|
| 601 |
+
numpy/lib/_function_base_impl.py,sha256=eeZaizFpsCLeisLcxrQ-eK4R-8enw6YKPV1jeDPwCzU,196038
|
| 602 |
+
numpy/lib/_function_base_impl.pyi,sha256=Ce0vkW7qM9i4G2Br-X8A6V9XwPZ5cKiIB030zlSUFvQ,22228
|
| 603 |
+
numpy/lib/_histograms_impl.py,sha256=Lw_9LfM_Z7qBef3boamH5LtL7qiT10gpIyWy9Uj6lTo,38762
|
| 604 |
+
numpy/lib/_histograms_impl.pyi,sha256=7B4b29m97PW5GDSgOKi_3Ul-XyWbo6NjMW264FFxjSI,1070
|
| 605 |
+
numpy/lib/_index_tricks_impl.py,sha256=12iGjjak3hiMfwnh5zR2JqA78-or-u9P1gTGCcjJD0E,32179
|
| 606 |
+
numpy/lib/_index_tricks_impl.pyi,sha256=WOKkVvojes2D2Uc8itHkjv6fZF1VqwocnqVu05aiCIs,6325
|
| 607 |
+
numpy/lib/_iotools.py,sha256=mMhxeGBt-T8prjWpNhn_xvZCj6u6OWWmmsvKP6vbM5w,30941
|
| 608 |
+
numpy/lib/_iotools.pyi,sha256=4AQxPlLCoIruq04RAa-xtC8swL1ChuLT9SqhQAfeflQ,3387
|
| 609 |
+
numpy/lib/_nanfunctions_impl.py,sha256=gX6NUKgCQKvuFTSAObhqfrqQIXIsxnKIQOc-heOn7rs,72150
|
| 610 |
+
numpy/lib/_nanfunctions_impl.pyi,sha256=o0ILqctzjyHwNJ3zs4bdd8qJ9qVtyGfL6FChCf4IPGg,833
|
| 611 |
+
numpy/lib/_npyio_impl.py,sha256=UA84bpOF9xfELBsagASjHf1E5GgLWvs_Y_Gmtplkovw,99377
|
| 612 |
+
numpy/lib/_npyio_impl.pyi,sha256=byvWXIh9qHzEQGvHKkclD9_oBGn8y6JkU5aUhSjhZyo,9270
|
| 613 |
+
numpy/lib/_polynomial_impl.py,sha256=6rD5Cy4mSDk2CsuAdJOq2he-PSa-ZiqsdgyyQAF5qx0,44294
|
| 614 |
+
numpy/lib/_polynomial_impl.pyi,sha256=NoMMI6aJmcnLKQyaM3B2hSJTFJtx7mAqEHPsCC_rM7s,7117
|
| 615 |
+
numpy/lib/_scimath_impl.py,sha256=dUxb9XD-AJPboK_LO3LA0KgykFSUEOG5BVGrhwm2Qqo,15691
|
| 616 |
+
numpy/lib/_scimath_impl.pyi,sha256=Xdyj3nbEBEE5p6K_ZIjilsAgvaxoGK8TEoV2vdzpLIE,2955
|
| 617 |
+
numpy/lib/_shape_base_impl.py,sha256=AHbXPp4sH0gEJgSyM0A9zgmM9Mwm6jR_p5pWtUXeqV8,39353
|
| 618 |
+
numpy/lib/_shape_base_impl.pyi,sha256=RysQQNQ6fbI_IyavO9AXPMynIGD7vf6I0_dc5_4wUpI,5288
|
| 619 |
+
numpy/lib/_stride_tricks_impl.py,sha256=y3Uxp3jFzDwmIQ137N2zap7-vW_jONUQmXnbfqrs60A,18025
|
| 620 |
+
numpy/lib/_stride_tricks_impl.pyi,sha256=ZX9Dp4oLmi-FSwY8o4FSisswTgfE5xwlTCjk2QkbIG8,1801
|
| 621 |
+
numpy/lib/_twodim_base_impl.py,sha256=r31aBnzCSBpq_em4HyLiSMeTiRzlHAn7Bd4yXYqyEFY,33864
|
| 622 |
+
numpy/lib/_twodim_base_impl.pyi,sha256=30vYsjEVCOaJ8NDgk4KKpvkW-C4_hV-NbJAd3VswVXI,11269
|
| 623 |
+
numpy/lib/_type_check_impl.py,sha256=Dv9a7QCR1bqBHoXgCjmPrGEewG1v2BBtE_8VfcF4ySU,19220
|
| 624 |
+
numpy/lib/_type_check_impl.pyi,sha256=XuaIBCJI1z50pcH6ScB3oMAyBjAxX_LY4KU0gUZaTAM,5165
|
| 625 |
+
numpy/lib/_ufunclike_impl.py,sha256=0eemf_EYlLmSa4inNr3iuJ1eoTMqLyIR0n6dQymga3Y,6309
|
| 626 |
+
numpy/lib/_ufunclike_impl.pyi,sha256=Tle2e2qLfaYNlECFw6AVgazMnAHYCE9WO96ddZiM1dw,1322
|
| 627 |
+
numpy/lib/_user_array_impl.py,sha256=pqmz3qNx620zngeIFmSg8IiXNdTMVBAglt81hEJNh5Y,7971
|
| 628 |
+
numpy/lib/_user_array_impl.pyi,sha256=Zfknkdua_dgoO9U7rDXHYzuachGOVFeLu1X0760dvR8,9301
|
| 629 |
+
numpy/lib/_utils_impl.py,sha256=4xYQczoX7i_wHjugnl0ba1VExSbV48ndVow08S8G0WQ,23388
|
| 630 |
+
numpy/lib/_utils_impl.pyi,sha256=3UJqa7IVH6QVJbQfKAqblyHxjPfaCAR28KmDxXeIpU0,277
|
| 631 |
+
numpy/lib/_version.py,sha256=nyRagTCuE69-0P9JTIcKK7jbzRGbsgnqVtFIrNzTFsM,4854
|
| 632 |
+
numpy/lib/_version.pyi,sha256=vysY5Vl_nh4si6GkMXEoB6pUDl-jJ5g0LpSDa40F124,641
|
| 633 |
+
numpy/lib/array_utils.py,sha256=zoaLw9TvrAFRkh9n8uMyr8kvug3IvVlUT7LcJzB3Tk0,130
|
| 634 |
+
numpy/lib/array_utils.pyi,sha256=kEO5wShp8zEbNTPu-Kw-EHuZQvq1rXHzgjK797xCV0Q,191
|
| 635 |
+
numpy/lib/format.py,sha256=XMMQzYOvc8LgeNpxX7Qpfurli2bG5o9jAaeY55tP85A,36200
|
| 636 |
+
numpy/lib/format.pyi,sha256=cVuydIbVhG_tM7TrxEVBiERRPLOxKS8hLCTOT7ovtzc,748
|
| 637 |
+
numpy/lib/introspect.py,sha256=SiQ5OwgvE-1RoQOv2r__WObS5QEUBohanyCd7Xe80UU,2715
|
| 638 |
+
numpy/lib/introspect.pyi,sha256=AWVX6b9mzdwsxizOY0LydWKBEpGatHaeeXGc2txYJEM,152
|
| 639 |
+
numpy/lib/mixins.py,sha256=_yb3iwwzUfSbN7HpJSp3FhFkgV3WViTHS5SAHkK8Lmc,7337
|
| 640 |
+
numpy/lib/mixins.pyi,sha256=q_lxMe-PpNlvpEJ--nLkyi0qVD0QuNHriF3XHfxyJok,3131
|
| 641 |
+
numpy/lib/npyio.py,sha256=NCxqWedJbSM5M-wr69TED8x7KXcyBJ0x5u49vj4sPkI,62
|
| 642 |
+
numpy/lib/npyio.pyi,sha256=MTP8KyQ2GTU8BTkpaMHnwDQO9ABrHRiCCEO5BfQGgLo,116
|
| 643 |
+
numpy/lib/recfunctions.py,sha256=5fbg0aMuDbgOpfYmDTByhlNKZWgNkCVDdA8BQ4zZXzA,59654
|
| 644 |
+
numpy/lib/recfunctions.pyi,sha256=Ri9FikspmLm_67f86udizNNMZzaOXz1nulRNcxfYDWc,13283
|
| 645 |
+
numpy/lib/scimath.py,sha256=iO0IiDgpHk1EurdUvJIE2KqDzVOfvSsU3MFIlJskIOE,118
|
| 646 |
+
numpy/lib/scimath.pyi,sha256=UND4g92K5-6_I0YWqu7qbDTHU_sePpa0I58MTMH0yhA,233
|
| 647 |
+
numpy/lib/stride_tricks.py,sha256=VGR5M8Jyw8IC4S6XEB9NN_GULTJJQj_1QrItIi_BJiM,82
|
| 648 |
+
numpy/lib/stride_tricks.pyi,sha256=Fqn9EZXdjIgUTce6UMD7rBBb8289QTMzohhjHwYP3TU,124
|
| 649 |
+
numpy/lib/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 650 |
+
numpy/lib/tests/data/py2-np0-objarr.npy,sha256=ZLoI7K3iQpXDkuoDF1Ymyc6Jbw4JngbQKC9grauVRsk,258
|
| 651 |
+
numpy/lib/tests/data/py2-objarr.npy,sha256=F4cyUC-_TB9QSFLAo2c7c44rC6NUYIgrfGx9PqWPSKk,258
|
| 652 |
+
numpy/lib/tests/data/py2-objarr.npz,sha256=xo13HBT0FbFZ2qvZz0LWGDb3SuQASSaXh7rKfVcJjx4,366
|
| 653 |
+
numpy/lib/tests/data/py3-objarr.npy,sha256=7mtikKlHXp4unZhM8eBot8Cknlx1BofJdd73Np2PW8o,325
|
| 654 |
+
numpy/lib/tests/data/py3-objarr.npz,sha256=vVRl9_NZ7_q-hjduUr8YWnzRy8ESNlmvMPlaSSC69fk,453
|
| 655 |
+
numpy/lib/tests/data/python3.npy,sha256=X0ad3hAaLGXig9LtSHAo-BgOvLlFfPYMnZuVIxRmj-0,96
|
| 656 |
+
numpy/lib/tests/data/win64python2.npy,sha256=agOcgHVYFJrV-nrRJDbGnUnF4ZTPYXuSeF-Mtg7GMpc,96
|
| 657 |
+
numpy/lib/tests/test__datasource.py,sha256=65KXfUUvp8wXSqgQisuYlkhg-qHjBV5FXYetL8Ba-rc,10571
|
| 658 |
+
numpy/lib/tests/test__iotools.py,sha256=W2gLNsi2S8-4qixUs6EKkTYnOOp55qLLuM3zpBzZoR4,13744
|
| 659 |
+
numpy/lib/tests/test__version.py,sha256=aO3YgkAohLsLzCNQ7vjIwdpFUMz0cPLbcuuxIkjuN74,1999
|
| 660 |
+
numpy/lib/tests/test_array_utils.py,sha256=vOC6AmlPIQbVxQf2DiRL02May5IK5BK2GUFK0nP83FM,1119
|
| 661 |
+
numpy/lib/tests/test_arraypad.py,sha256=PuDd3s7w_r54B2ILXKQheFMUxklylHPN-vHVq_mGjk8,56064
|
| 662 |
+
numpy/lib/tests/test_arraysetops.py,sha256=Y5sS11K5r4KGcPaZHxOaoBUJDZAjcfdF7qSvxpVydqo,38023
|
| 663 |
+
numpy/lib/tests/test_arrayterator.py,sha256=AYs2SwV5ankgwnvKI9RSO1jZck118nu3SyZ4ngzZNso,1291
|
| 664 |
+
numpy/lib/tests/test_format.py,sha256=pbIhtX3E07MU9GN30frL--KKMW3iYm1eFaTiwPq39MU,40911
|
| 665 |
+
numpy/lib/tests/test_function_base.py,sha256=YgxaRTjpKNzw92xkMxdxY2JwHQoBOryb-06gaRiTn1c,168840
|
| 666 |
+
numpy/lib/tests/test_histograms.py,sha256=pSUHeO9nY5Gf5VXyCCZ9qoRjrXT1Y4c0xRcz5FeAPCY,33694
|
| 667 |
+
numpy/lib/tests/test_index_tricks.py,sha256=ZpKsvd3P3p2hwfj6sHlL_lysJp1IevAoM6AdpeTAx8M,20368
|
| 668 |
+
numpy/lib/tests/test_io.py,sha256=1brG0DanJdQhK680J-zR4YlBc-oDfv_QUYkIOb8oPzQ,110047
|
| 669 |
+
numpy/lib/tests/test_loadtxt.py,sha256=uP0SIRUpBGS4rZR7iXtwDsf1vpCZk_1f29NvYcci738,40522
|
| 670 |
+
numpy/lib/tests/test_mixins.py,sha256=Wivwz3XBWsEozGzrzsyyvL3qAuE14t1BHk2LPm9Z9Zc,7030
|
| 671 |
+
numpy/lib/tests/test_nanfunctions.py,sha256=iN7Lyl0FlDjlE23duS6YS_iEoWRSPP8tydQLdmSMWsI,53344
|
| 672 |
+
numpy/lib/tests/test_packbits.py,sha256=2QaNYKH29cVD-S4YYBIQBd1xQ9bc2OqHdZT6yS7Txjk,17544
|
| 673 |
+
numpy/lib/tests/test_polynomial.py,sha256=1gJhzbXglqeGMjo8OnpP4EASiCVvkYPiNOHKirAlNfg,11428
|
| 674 |
+
numpy/lib/tests/test_recfunctions.py,sha256=KHHrlYhCrVVZh4N4e8UMac8oK4aX438Na1AchTdJsxU,43987
|
| 675 |
+
numpy/lib/tests/test_regression.py,sha256=YdZ_xYXzFh3WFyAKF5lN7oFl5HMm5r38C1Lij3J8NuQ,7694
|
| 676 |
+
numpy/lib/tests/test_shape_base.py,sha256=W1q-tgBENS19wpOKSzEi63OSjatE4qC1viQG22qoacE,27488
|
| 677 |
+
numpy/lib/tests/test_stride_tricks.py,sha256=9g25TXSGLsvfeIrlkQ8l1fx_pZ48b4dxCzXXUbsKC5g,22997
|
| 678 |
+
numpy/lib/tests/test_twodim_base.py,sha256=ll-72RhqCItIPB97nOWhH7H292h4nVIX_w1toKTPMUg,18841
|
| 679 |
+
numpy/lib/tests/test_type_check.py,sha256=9ycqRSw0TzrJfu4gknQYblRPEsWlMI9TWPP_jyI8w-c,14680
|
| 680 |
+
numpy/lib/tests/test_ufunclike.py,sha256=5AFySuvUfggh0tpBuQHJ7iZRrP0r_yZZv5xHxOuCZ1s,3023
|
| 681 |
+
numpy/lib/tests/test_utils.py,sha256=zzgwQGId2P8RUgimSsm7uMCYb61xPenrP_N0kcZU8x4,2374
|
| 682 |
+
numpy/lib/user_array.py,sha256=Ev3yeNNLZVNWk9xZuiCIbODYKwQ6XfYGpI5WAoYvtok,49
|
| 683 |
+
numpy/lib/user_array.pyi,sha256=8C-aTekEYA0bVU7F3turaw1w0j8FfFvDp9xKa9Pfe94,53
|
| 684 |
+
numpy/linalg/__init__.py,sha256=XNtdLo33SVTjQbXeimLFa5ZudzpEEwnfJBNorVbxuyc,2106
|
| 685 |
+
numpy/linalg/__init__.pyi,sha256=o8K7PS_GETdEtnE7uXgJV7wnR8B0hH79AKpsmBHbJhA,1006
|
| 686 |
+
numpy/linalg/_linalg.py,sha256=QNeVUH1DXQe7X5Ygp-LV9W1tN7sbwbhMXIQbRNPYJX0,114680
|
| 687 |
+
numpy/linalg/_linalg.pyi,sha256=sCY_eH3ygLI05xCQ278LcS5XofiOPB-G_-cYY1Q2FTA,11385
|
| 688 |
+
numpy/linalg/_umath_linalg.cpython-310-darwin.so,sha256=PKr2JRO4-yIo_NDv6hPLM3oEUB-xflCSO3iqkW6dGu4,154752
|
| 689 |
+
numpy/linalg/_umath_linalg.pyi,sha256=awvRP1FGuomyfeaR0wzHvrXURAI8tUF3u2RRZ24hkXw,1409
|
| 690 |
+
numpy/linalg/lapack_lite.cpython-310-darwin.so,sha256=WV0DIAsFZifeZTODluqB_YrPuXM3pEXxzCUUVqLghtc,52928
|
| 691 |
+
numpy/linalg/lapack_lite.pyi,sha256=9HbrKm6Xc3jdXwjNcIm26mvm7M_sT8aug5p-e6lyw2c,2677
|
| 692 |
+
numpy/linalg/linalg.py,sha256=JQWcEvjY_bjhaMHXY5vDk69OIoMzX5Rvbn1eGW2FCvE,584
|
| 693 |
+
numpy/linalg/linalg.pyi,sha256=8E5sbKeM5Ors7r143mM7A4ui8kFZM0SF7NfUGW1eN-4,932
|
| 694 |
+
numpy/linalg/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 695 |
+
numpy/linalg/tests/test_deprecations.py,sha256=9p_SRmtxj2zc1doY9Ie3dyy5JzWy-tCQWFoajcAJUmM,640
|
| 696 |
+
numpy/linalg/tests/test_linalg.py,sha256=DhZiFKqO7SVhtNwRqe5jbhcACbqttIiJfruY5rbLj-Q,83315
|
| 697 |
+
numpy/linalg/tests/test_regression.py,sha256=RMl5Jq-fLVDUSMnEmpP2-gigM5dzUfzURywa1tMK8CA,6689
|
| 698 |
+
numpy/ma/API_CHANGES.txt,sha256=F_4jW8X5cYBbzpcwteymkonTmvzgKKY2kGrHF1AtnrI,3405
|
| 699 |
+
numpy/ma/LICENSE,sha256=BfO4g1GYjs-tEKvpLAxQ5YdcZFLVAJoAhMwpFVH_zKY,1593
|
| 700 |
+
numpy/ma/README.rst,sha256=krf2cvVK_zNQf1d3yVYwg0uDHzTiR4vHbr91zwaAyoI,9874
|
| 701 |
+
numpy/ma/__init__.py,sha256=iv-YxXUZe4z7W53QZWY0ndicV43AGsIygArsoN3tQb8,1419
|
| 702 |
+
numpy/ma/__init__.pyi,sha256=H7zEUcvlhWQkYpoOQ9UyrLOuz23vnd_GYO_JiztGG04,6946
|
| 703 |
+
numpy/ma/core.py,sha256=jN3Z0xIb8a3lBAOAcUhGn8YlK-Ko5qm-1XadzBqAp1k,290518
|
| 704 |
+
numpy/ma/core.pyi,sha256=QGAzV8TDIhaffgX-OPFUhnWYCwzwmZs9OOYyGPLhR9U,18179
|
| 705 |
+
numpy/ma/extras.py,sha256=ZbseZmOKCD1f5w8NZP864TtkOWTw5c5KzzPNqmZFeR4,70630
|
| 706 |
+
numpy/ma/extras.pyi,sha256=J8HZzQWyNC1Uf-PV7QzfaQuJ9vyO_A2RwIfro0S9T7s,3804
|
| 707 |
+
numpy/ma/mrecords.py,sha256=7xEqcIH6iY8AT0ApnCCfrJvr17boJrgl9loqgbRuhso,27114
|
| 708 |
+
numpy/ma/mrecords.pyi,sha256=xHMSbdNKOeXtZP73NUA7aVmGs9F7sTiqAcYJ1o7QNMA,1983
|
| 709 |
+
numpy/ma/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 710 |
+
numpy/ma/tests/test_arrayobject.py,sha256=MSvEcxlsVt4YZ7mVXU8q_hkwM0I7xsxWejEqnUQx6hE,1099
|
| 711 |
+
numpy/ma/tests/test_core.py,sha256=KufMvdrDZ8FIgTQW6UWl4M1WzDY32y1rYHwyJbvn13g,219264
|
| 712 |
+
numpy/ma/tests/test_deprecations.py,sha256=nq_wFVt2EBHcT3AHxattfKXx2JDf1K5D-QBzUU0_15A,2566
|
| 713 |
+
numpy/ma/tests/test_extras.py,sha256=h0Zc0u4dXlQ3E0qADNYlH7iF4XX3K2A6HiY5hseRwSs,78314
|
| 714 |
+
numpy/ma/tests/test_mrecords.py,sha256=-nFjKUNYG_-gJ6RpZbWnx_TJlmkRAagA7AnVaf9YJfI,19855
|
| 715 |
+
numpy/ma/tests/test_old_ma.py,sha256=BW01_4m8wZcHvAkZ8FIjDmFfusnjgFmGVbRyqbWD000,32753
|
| 716 |
+
numpy/ma/tests/test_regression.py,sha256=foMpI0luAvwkkRpAfPDV_810h1URISXDZhmaNhxb50k,3287
|
| 717 |
+
numpy/ma/tests/test_subclassing.py,sha256=p5N5b5LY1J0pwDCbju0Qt28wZ1Dd2OfZ1dR4tphiFFY,17009
|
| 718 |
+
numpy/ma/testutils.py,sha256=sbiHivmwPQX3fPAPUe9OMktEqrwg1rcr8xgKfMM1Ex0,10272
|
| 719 |
+
numpy/ma/timer_comparison.py,sha256=FC9KhuSVUdyDP-YQUDQXKhUmrTzC8zsOIBrarMISrc4,15711
|
| 720 |
+
numpy/matlib.py,sha256=_SLwSvwuHVy4nzc2lFd49OqK1m6aWPX1YyKgzyW3A-E,10657
|
| 721 |
+
numpy/matlib.pyi,sha256=jochXdHIBmB5qMHiMVarjfdFUyu7AcRucxVrf2UoGpA,9628
|
| 722 |
+
numpy/matrixlib/__init__.py,sha256=BHBpQKoQv4EjT0UpWBA-Ck4L5OsMqTI2IuY24p-ucXk,242
|
| 723 |
+
numpy/matrixlib/__init__.pyi,sha256=hoxSBzgGaB2axvVIKt8wMefSseGWKDjFg3nAx-ZjNoU,105
|
| 724 |
+
numpy/matrixlib/defmatrix.py,sha256=BGV3oVcQ98-gzqMs3WNC0-x76fmfaGS_2bDnLBHPh90,30800
|
| 725 |
+
numpy/matrixlib/defmatrix.pyi,sha256=ijXIceS3SMbjt_fEn8qCUX_KllbJqDWIo4x6aDKLoqg,478
|
| 726 |
+
numpy/matrixlib/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 727 |
+
numpy/matrixlib/tests/test_defmatrix.py,sha256=tLHvsnn2xIKLLZULYqhQ1IJOtSdS52BfOOhU8-7jjvA,15035
|
| 728 |
+
numpy/matrixlib/tests/test_interaction.py,sha256=jiLmXS0JtwEx0smkb5hUnY5Slp9I8FwGlYGHKE3iG1w,11895
|
| 729 |
+
numpy/matrixlib/tests/test_masked_matrix.py,sha256=1x3mzFol1GYvVxKXcmRYLi-On3cmK7gEjSVEyvbkh-w,8914
|
| 730 |
+
numpy/matrixlib/tests/test_matrix_linalg.py,sha256=ObbSUXU4R2pWajH__xAdizADrU2kBKDDCxkDV-oVBXc,2059
|
| 731 |
+
numpy/matrixlib/tests/test_multiarray.py,sha256=jB3XCBmAtcqf-Wb9PwBW6uIykPpMPthuXLJ0giTKzZE,554
|
| 732 |
+
numpy/matrixlib/tests/test_numeric.py,sha256=MP70qUwgshTtThKZaZDp7_6U-Z66NIV1geVhasGXejQ,441
|
| 733 |
+
numpy/matrixlib/tests/test_regression.py,sha256=LBkm6_moDjuU9RY4FszgaknOj3IyCp3t-Ej3HJfqpdk,932
|
| 734 |
+
numpy/polynomial/__init__.py,sha256=XNK7ZWsBECCoHnJZ0NqKiF1ErZqvdxszE1NJ6Hc2Vz0,6760
|
| 735 |
+
numpy/polynomial/__init__.pyi,sha256=6NI7z3v8xTwVp3MBMxi_9W0-IZplayxzdx8BWaqymuI,687
|
| 736 |
+
numpy/polynomial/_polybase.py,sha256=Nhq-h1fKS_ARFPd6BRqya1gROmqA0KX1_eGON5AyYsw,39451
|
| 737 |
+
numpy/polynomial/_polybase.pyi,sha256=fZLj1aw9-tRf0yQSAXHjETPGgrAeqW9v36nlhDNDeyc,8534
|
| 738 |
+
numpy/polynomial/_polytypes.pyi,sha256=zqNdSGV9EIKoVcZSugAb3sDgFXj99m70Yngkt3jVPW8,22567
|
| 739 |
+
numpy/polynomial/chebyshev.py,sha256=U8Pl0r9l3AV96xISmaDjb-bvbCVT61rm7zWiT5L8_wg,62165
|
| 740 |
+
numpy/polynomial/chebyshev.pyi,sha256=9cJoCeRvzHuunQoCEy2pGOUdCp0KU65q7Tb8pTqLvGU,4725
|
| 741 |
+
numpy/polynomial/hermite.py,sha256=p1bX18L-fUwWFtmu0J4FnahBB9cWLCsUWLkXItQ7zB0,54466
|
| 742 |
+
numpy/polynomial/hermite.pyi,sha256=dm1gYq04GxQu5T4N5LqTYbZblLoXDqZDs6CtmycCU3w,2445
|
| 743 |
+
numpy/polynomial/hermite_e.py,sha256=ce0POlSbqQTqvkcXLIn7v7GqtmEaxc3J1xmaaD8VEfw,52208
|
| 744 |
+
numpy/polynomial/hermite_e.pyi,sha256=klpXixSq5MRTlh6AlN1jRXPDXcnRdgUZPTxQjZpFKhM,2537
|
| 745 |
+
numpy/polynomial/laguerre.py,sha256=dzeRDPs1lvJyVz6XeLu_ynPDF4SEFGjpIhLdmIMkf94,52379
|
| 746 |
+
numpy/polynomial/laguerre.pyi,sha256=QiCFjYZRAuYaty8LelfOvomgal1xFU9-4oKL68l1jyc,2174
|
| 747 |
+
numpy/polynomial/legendre.py,sha256=xoXBoVGToSllDsWHU3nBQJSBQLhJZBhMpA_bemYXDHQ,50994
|
| 748 |
+
numpy/polynomial/legendre.pyi,sha256=SaQ9PZG50KF4g0iQd6B-xYOBz1vTDGtI4wChAINlFZY,2173
|
| 749 |
+
numpy/polynomial/polynomial.py,sha256=lto2jYRcSVM3_PuKm3rbbYkHp4eMbOVX3VSO6rHmBrc,52202
|
| 750 |
+
numpy/polynomial/polynomial.pyi,sha256=Y4yeYfi879s5_Xm3SqdRmhQhbgJJBRRbajhCj1irTSw,2002
|
| 751 |
+
numpy/polynomial/polyutils.py,sha256=gF4_BiLkY8ySFlzawPVxr2Zcnoos3SMRn2dpsB0yP4c,22530
|
| 752 |
+
numpy/polynomial/polyutils.pyi,sha256=XYAYqUmjZVS_49uDszZE3SNI_lxJgx1SkjqqBVDrz44,10426
|
| 753 |
+
numpy/polynomial/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 754 |
+
numpy/polynomial/tests/test_chebyshev.py,sha256=6tMsFP1h7K8Zf72mNOta6Tv52_fVTlXknseuffj080c,20522
|
| 755 |
+
numpy/polynomial/tests/test_classes.py,sha256=Tf6p3qCINxOfh7hsOdVp81-CJPkqNg1HnH2smcWbRBw,18450
|
| 756 |
+
numpy/polynomial/tests/test_hermite.py,sha256=0iUoYpgXiLrqm_dWD45Cs1PFJ8fHADFtlBN4TkLNNQw,18576
|
| 757 |
+
numpy/polynomial/tests/test_hermite_e.py,sha256=_A3ohAWS4HXrQG06S8L47dImdZGTwYosCXnoyw7L45o,18911
|
| 758 |
+
numpy/polynomial/tests/test_laguerre.py,sha256=5ku3xe4Gv5-eAGhyqwKj460mqoHvM5r_qsGu6P8J0es,17510
|
| 759 |
+
numpy/polynomial/tests/test_legendre.py,sha256=4AXrwrxCQoQ5cIMlYJpHJnAiaikLfvlL-T5TY7z9mzo,18672
|
| 760 |
+
numpy/polynomial/tests/test_polynomial.py,sha256=bkIpTFGh3ypMAZCulWYw6ZPFpqrlbbSAoivrIwBQAtw,22013
|
| 761 |
+
numpy/polynomial/tests/test_polyutils.py,sha256=ULZMU2soHOZ4uO0eJoRjxNkT3yGURuX35MXx1Bg5Wyk,3772
|
| 762 |
+
numpy/polynomial/tests/test_printing.py,sha256=99Qi6N880A3iyRZG5_AsZkDAKkFCUKgOZCp9ZhNMrOQ,21302
|
| 763 |
+
numpy/polynomial/tests/test_symbol.py,sha256=Hg-V7jR7qz5FKg_DrlkaiFcCI1UujYFUJfpf2TuoJZM,5372
|
| 764 |
+
numpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 765 |
+
numpy/random/LICENSE.md,sha256=EDFmtiuARDr7nrNIjgUuoGvgz_VmuQjxmeVh_eSa8Z8,3511
|
| 766 |
+
numpy/random/__init__.pxd,sha256=9JbnX540aJNSothGs-7e23ozhilG6U8tINOUEp08M_k,431
|
| 767 |
+
numpy/random/__init__.py,sha256=81Thnexg5umN5WZwD5TRyzNc2Yp-d14B6UC7NBgVKh8,7506
|
| 768 |
+
numpy/random/__init__.pyi,sha256=ETVwiw_jFxeouKFkzq0ociR0bJgLz3L3OBixxBv9Jho,2158
|
| 769 |
+
numpy/random/_bounded_integers.cpython-310-darwin.so,sha256=FYSTu38Y9tONeyCn_9Awv6EHv5qK1XQRVwsVY2PimFE,298904
|
| 770 |
+
numpy/random/_bounded_integers.pxd,sha256=SH_FwJDigFEInhdliSaNH2H2ZIZoX02xYhNQA81g2-g,1678
|
| 771 |
+
numpy/random/_common.cpython-310-darwin.so,sha256=B7_zpmI-va1miZWYYcgAmb0nm6Z3mc0ToPouu05_oXs,218864
|
| 772 |
+
numpy/random/_common.pxd,sha256=7kGArYkBcemrxJcSttwvtDGbimLszdQnZdNvPMgN5xQ,4982
|
| 773 |
+
numpy/random/_examples/cffi/extending.py,sha256=xSla3zWqxi6Hj48EvnYfD3WHfE189VvC4XsKu4_T_Iw,880
|
| 774 |
+
numpy/random/_examples/cffi/parse.py,sha256=Z69FYSY6QQnZAJdIVlE-I2JAkEutRbdvZDXlm633Ynk,1751
|
| 775 |
+
numpy/random/_examples/cython/extending.pyx,sha256=ePnHDNfMQcTUzAqgFiEqrTFr9BoDmbqgjxzrDLvV8fE,2267
|
| 776 |
+
numpy/random/_examples/cython/extending_distributions.pyx,sha256=YCgFXHb7esnir-QmoAlde4y91FYuRMT94UNg9yb-Y4A,3847
|
| 777 |
+
numpy/random/_examples/cython/meson.build,sha256=GxZZT_Lu3nZsgcqo_7sTR_IdMJaHA1fxyjwrQTcodPs,1694
|
| 778 |
+
numpy/random/_examples/numba/extending.py,sha256=Ipyzel_h5iU_DMJ_vnXUgQC38uMDMn7adUpWSeEQLFE,1957
|
| 779 |
+
numpy/random/_examples/numba/extending_distributions.py,sha256=M3Rt9RKupwEq71JjxpQFbUO7WKSOuLfR1skRM2a-hbI,2036
|
| 780 |
+
numpy/random/_generator.cpython-310-darwin.so,sha256=TxrbLna8jCg0DT7z5mQ3hZrq1MFWA3yoTQ68gfw0xv0,788576
|
| 781 |
+
numpy/random/_generator.pyi,sha256=YrqaEq8SfCo-C2EvuMDL9Kg3n1YZPSzF_1EshkuB3Ec,24009
|
| 782 |
+
numpy/random/_mt19937.cpython-310-darwin.so,sha256=D5WiMBgA5XtqDTk3VrWkQ7eIhhTke6Bc8YwG5dhKz4U,133328
|
| 783 |
+
numpy/random/_mt19937.pyi,sha256=nX9OPiLcGFXn5cIE9k1TpvmVB0UBi9rlTsvGW5GP-Z0,775
|
| 784 |
+
numpy/random/_pcg64.cpython-310-darwin.so,sha256=AzZXJwjbhJiiKgHFukXvAcgnKCtYB_sMSdrS_mybCZM,133600
|
| 785 |
+
numpy/random/_pcg64.pyi,sha256=gljmVLjVlgAMWGzQa6pzlzNW5H8kBvgDseQfIQcjy3k,1142
|
| 786 |
+
numpy/random/_philox.cpython-310-darwin.so,sha256=i0Und361Tfku8d0Um9mHLPLcXb_9TPvp7ovWdTfQYcY,116080
|
| 787 |
+
numpy/random/_philox.pyi,sha256=xf8EUX7Wa7-tYSU0LntUxMDVrNVcmjgACbubrb0O5sI,1005
|
| 788 |
+
numpy/random/_pickle.py,sha256=4iS9ofvvuD0KKMtRpZEdBslH79blhK8wtjqxeWN_gcE,2743
|
| 789 |
+
numpy/random/_pickle.pyi,sha256=Qdd9MkruVUeduANTkweO8dLNbeYegtOLVgnF6j0lRQE,1608
|
| 790 |
+
numpy/random/_sfc64.cpython-310-darwin.so,sha256=ELf_VlBr6BtjpzGitkQMOYAmMYgEa-21kWyFN9SDq_E,97472
|
| 791 |
+
numpy/random/_sfc64.pyi,sha256=gdDHDFsH-o-OB6zKJJqj8vNYvRm0GMXHApikapFvv50,682
|
| 792 |
+
numpy/random/bit_generator.cpython-310-darwin.so,sha256=Ykyn74ND2XnQrIKa25BF8Nus-R6xWthSQQK11eYetSU,210896
|
| 793 |
+
numpy/random/bit_generator.pxd,sha256=lArpIXSgTwVnJMYc4XX0NGxegXq3h_QsUDK6qeZKbNc,1007
|
| 794 |
+
numpy/random/bit_generator.pyi,sha256=sXPTnGMgICncbhgGBPZvwTv2mcS4ENKB4G4PIhCqTaQ,3534
|
| 795 |
+
numpy/random/c_distributions.pxd,sha256=UCtqx0Nf-vHuJVaqPlLFURWnaI1vH-vJRE01BZDTL9o,6335
|
| 796 |
+
numpy/random/lib/libnpyrandom.a,sha256=BCgvPNtW5JBW7Y2quxG7IL5_YNVkYzdnviAxAOHlePo,55288
|
| 797 |
+
numpy/random/mtrand.cpython-310-darwin.so,sha256=tc0gpyYv8NLnKGZKxLQSKf6D00ruoh5hyVKQYoe9t68,660256
|
| 798 |
+
numpy/random/mtrand.pyi,sha256=NUzAPLtDaft-xJlKUx4u1e3QwnofZbWgt2KEV8_GiAY,22018
|
| 799 |
+
numpy/random/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 800 |
+
numpy/random/tests/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 801 |
+
numpy/random/tests/data/generator_pcg64_np121.pkl.gz,sha256=EfQ-X70KkHgBAFX2pIPcCUl4MNP1ZNROaXOU75vdiqM,203
|
| 802 |
+
numpy/random/tests/data/generator_pcg64_np126.pkl.gz,sha256=fN8deNVxX-HELA1eIZ32kdtYvc4hwKya6wv00GJeH0Y,208
|
| 803 |
+
numpy/random/tests/data/mt19937-testset-1.csv,sha256=Xkef402AVB-eZgYQkVtoxERHkxffCA9Jyt_oMbtJGwY,15844
|
| 804 |
+
numpy/random/tests/data/mt19937-testset-2.csv,sha256=nsBEQNnff-aFjHYK4thjvUK4xSXDSfv5aTbcE59pOkE,15825
|
| 805 |
+
numpy/random/tests/data/pcg64-testset-1.csv,sha256=xB00DpknGUTTCxDr9L6aNo9Hs-sfzEMbUSS4t11TTfE,23839
|
| 806 |
+
numpy/random/tests/data/pcg64-testset-2.csv,sha256=NTdzTKvG2U7_WyU_IoQUtMzU3kEvDH39CgnR6VzhTkw,23845
|
| 807 |
+
numpy/random/tests/data/pcg64dxsm-testset-1.csv,sha256=vNSUT-gXS_oEw_awR3O30ziVO4seNPUv1UIZ01SfVnI,23833
|
| 808 |
+
numpy/random/tests/data/pcg64dxsm-testset-2.csv,sha256=uylS8PU2AIKZ185OC04RBr_OePweGRtvn-dE4YN0yYA,23839
|
| 809 |
+
numpy/random/tests/data/philox-testset-1.csv,sha256=SedRaIy5zFadmk71nKrGxCFZ6BwKz8g1A9-OZp3IkkY,23852
|
| 810 |
+
numpy/random/tests/data/philox-testset-2.csv,sha256=dWECt-sbfvaSiK8-Ygp5AqyjoN5i26VEOrXqg01rk3g,23838
|
| 811 |
+
numpy/random/tests/data/sfc64-testset-1.csv,sha256=iHs6iX6KR8bxGwKk-3tedAdMPz6ZW8slDSUECkAqC8Q,23840
|
| 812 |
+
numpy/random/tests/data/sfc64-testset-2.csv,sha256=FIDIDFCaPZfWUSxsJMAe58hPNmMrU27kCd9FhCEYt_k,23833
|
| 813 |
+
numpy/random/tests/data/sfc64_np126.pkl.gz,sha256=MVa1ylFy7DUPgUBK-oIeKSdVl4UYEiN3AZ7G3sdzzaw,290
|
| 814 |
+
numpy/random/tests/test_direct.py,sha256=Ce2wQHcNV33qnkeHbORji-SW55RnHQ2vUdGXK1YVJBk,19956
|
| 815 |
+
numpy/random/tests/test_extending.py,sha256=po8h6ASy9-C0LHPKKpjYyAokOSj_xKh9FeQAavb4GBA,4435
|
| 816 |
+
numpy/random/tests/test_generator_mt19937.py,sha256=Z7D8PciFoaYF_XCtINHzfjovWZHqgWmVOJ2UjvNkWlM,117288
|
| 817 |
+
numpy/random/tests/test_generator_mt19937_regressions.py,sha256=r2wzyXTRfyVk__f2PO9yKPRdwx5ez671OQyAglMfPpc,8094
|
| 818 |
+
numpy/random/tests/test_random.py,sha256=i44DXCHEBtKtOzwSBfADh_kBSjMPgaCJYHdFfs6sfCQ,70150
|
| 819 |
+
numpy/random/tests/test_randomstate.py,sha256=Cp-op2kfopZ8wq-SBQ12Mh5RQ0p8mcBQHYSh0h-DegU,85275
|
| 820 |
+
numpy/random/tests/test_randomstate_regression.py,sha256=xS_HOwtijRdgq-gZn0IDUcm0NxdjjJXYv6ex8WN7FPU,7999
|
| 821 |
+
numpy/random/tests/test_regression.py,sha256=RbAzZYLfyzUKmup5uJR19sK2N17L_d1rLRy-CWjtIaQ,5462
|
| 822 |
+
numpy/random/tests/test_seed_sequence.py,sha256=GNRJ4jyzrtfolOND3gUWamnbvK6-b_p1bBK_RIG0sfU,3311
|
| 823 |
+
numpy/random/tests/test_smoke.py,sha256=CsXvEgv1T3wvCAH6qYu8RCWoQOaI4_gm7aWNhAS4QRg,28174
|
| 824 |
+
numpy/rec/__init__.py,sha256=w2G_npkmqm5vrWgds8V6Gusehmi1bRbiqCxsl9yOjow,83
|
| 825 |
+
numpy/rec/__init__.pyi,sha256=NWclXeZGtb9EvxymXj71lqOCKxcZPZawS-JJkc54_zQ,346
|
| 826 |
+
numpy/strings/__init__.py,sha256=-hT1HYpbswLkRWswieJQwAYn72IAwuaSCA5S1sdSPMk,83
|
| 827 |
+
numpy/strings/__init__.pyi,sha256=lDQvuJEXEx7Iw-8E-srZS6RkJzN19GQ_POsbyhFWMec,1295
|
| 828 |
+
numpy/testing/__init__.py,sha256=InpVKoDAzMKO_l_HNcatziW_u1k9_JZze__t2nybrL0,595
|
| 829 |
+
numpy/testing/__init__.pyi,sha256=1jr2Gj9BmCdtK4bqNGkwUAuqwC4n2JPOy6lqczK7xpA,2045
|
| 830 |
+
numpy/testing/_private/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 831 |
+
numpy/testing/_private/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 832 |
+
numpy/testing/_private/extbuild.py,sha256=fy4Dl-CqMtqBu6MShJNIe9DAuYH8kN_XZlUdOVcb1hQ,8106
|
| 833 |
+
numpy/testing/_private/extbuild.pyi,sha256=aNH6UnAhh4Zny81W45GrAcScB12b6_84y8M0Vdtpm2I,626
|
| 834 |
+
numpy/testing/_private/utils.py,sha256=UrWpMfsgQD54K46uj00dAVx1Pbl8JFCr0_yb7m1uZkQ,95700
|
| 835 |
+
numpy/testing/_private/utils.pyi,sha256=y4UuOhHLN9aThPfajrNL9Q86zqYmk03uB0Wv3MlOamo,12967
|
| 836 |
+
numpy/testing/overrides.py,sha256=IiVwsm3cDwnJdrk0FUFh7JLJYEnR_AfYWQRqWIeOFNQ,2133
|
| 837 |
+
numpy/testing/overrides.pyi,sha256=IQvQLxD-dHcbTQOZEO5bnCtCp8Uv3vj51dl0dZ0htjg,397
|
| 838 |
+
numpy/testing/print_coercion_tables.py,sha256=v9RlpFnOlaw34QGWnDIovDGhG1clwGhha0UnCqni0RE,6223
|
| 839 |
+
numpy/testing/print_coercion_tables.pyi,sha256=02D1q0WeMJ8B6txT_dy2Kn7IWse2RLRJQV0M6ifLD_w,821
|
| 840 |
+
numpy/testing/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 841 |
+
numpy/testing/tests/test_utils.py,sha256=eMHfDFj21KcKuv8-aWhwdm3rHhIirtUkZJss-Qffggw,70456
|
| 842 |
+
numpy/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 843 |
+
numpy/tests/test__all__.py,sha256=L3mCnYPTpzAgNfedVuq9g7xPWbc0c1Pot94k9jZ9NpI,221
|
| 844 |
+
numpy/tests/test_configtool.py,sha256=lhtwsoUPSOSdgnSdxvrvS4roiid86eWzSrGjdrKkH7g,1555
|
| 845 |
+
numpy/tests/test_ctypeslib.py,sha256=c0x56qlAMnxTCO9MiuV05LCoqju8cidHj1URV5gOwQE,12351
|
| 846 |
+
numpy/tests/test_lazyloading.py,sha256=R3Idpr9XIZ8C83sy8NvWSsh9knKxi42TAON13HpGRq0,1159
|
| 847 |
+
numpy/tests/test_matlib.py,sha256=gwhIXrJJo9DiecaGLCHLJBjhx2nVGl6yHq80AOUQSRM,1852
|
| 848 |
+
numpy/tests/test_numpy_config.py,sha256=x0OH4_gNx-13qw1_GYihFel1S4bWEzbrR_VT-H9x4tQ,1233
|
| 849 |
+
numpy/tests/test_numpy_version.py,sha256=2d0EtPJZYP3XRE6C6rfJW6QsPlFoDxqgO1yPxObaiE0,1754
|
| 850 |
+
numpy/tests/test_public_api.py,sha256=mG_c04GeGEue8ppN5G8djdNyVFe4vKUiBLoiO4h-dhU,27664
|
| 851 |
+
numpy/tests/test_reloading.py,sha256=sGu5XM-_VCNphyJcY5VCoQCmy5MgtL6_hDnsqf2j_ro,2367
|
| 852 |
+
numpy/tests/test_scripts.py,sha256=jluCLfG94VM1cuX-5RcLFBli_yaJZpIvmVuMxRKRJrc,1645
|
| 853 |
+
numpy/tests/test_warnings.py,sha256=HOqWSVu80PY-zacrgMfzPF0XPqEC24BNSw6Lmvw32Vg,2346
|
| 854 |
+
numpy/typing/__init__.py,sha256=ph9_WtDCJ7tKrbbRcz5OZEbXwxRXZfzSd2K1mLab910,5267
|
| 855 |
+
numpy/typing/mypy_plugin.py,sha256=eghgizS6dx7VuQiNbQg_cCfzNBb7Kyt3AomPNB8uml0,6470
|
| 856 |
+
numpy/typing/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 857 |
+
numpy/typing/tests/data/fail/arithmetic.pyi,sha256=OMnzSP_4S06yDMzOWeMS36r8Ew5EYzc0cFcr5JURf7c,3963
|
| 858 |
+
numpy/typing/tests/data/fail/array_constructors.pyi,sha256=SjiwoGrefYsuScJcBQZlwzfvENADeRMxHYCDCo685Vc,1129
|
| 859 |
+
numpy/typing/tests/data/fail/array_like.pyi,sha256=V9lNwYrNOvOyHf5xtCZerofTXdubpvl1pzZMsEWD2U0,526
|
| 860 |
+
numpy/typing/tests/data/fail/array_pad.pyi,sha256=57oK0Yp53rtKjjIrRFYLcxa-IfIGhtI-bEem7ggJKwI,132
|
| 861 |
+
numpy/typing/tests/data/fail/arrayprint.pyi,sha256=NZlON-sYl2s6-iUFKZZpXF4WnGVHQbTn8yIsQm0Alg4,586
|
| 862 |
+
numpy/typing/tests/data/fail/arrayterator.pyi,sha256=Qb7oMI1GdDQO_jcoJEAsMkXLjzOdcb3sx-b5mW73cAE,470
|
| 863 |
+
numpy/typing/tests/data/fail/bitwise_ops.pyi,sha256=gJ-ZL-e-yMbHMRKUv8r2KqJ08Mkgpg74nUe6lgi2RDU,583
|
| 864 |
+
numpy/typing/tests/data/fail/char.pyi,sha256=Zi3dygeaxHT8-5aFNCAreGU-T89zLg5pcE6c9NBCs6c,2712
|
| 865 |
+
numpy/typing/tests/data/fail/chararray.pyi,sha256=wdBMnihqJoeEMdSKz5Ur60qCDCVmiuHdTl4WmriTanc,2307
|
| 866 |
+
numpy/typing/tests/data/fail/comparisons.pyi,sha256=YrcL2POtM1g8GEWW4AJMl9vAkV-lG_6kEb7FzueeiLU,822
|
| 867 |
+
numpy/typing/tests/data/fail/constants.pyi,sha256=IzmswvmTKbAOkCjgyxu1jChlikIwqeAETHGVH2TtY0k,85
|
| 868 |
+
numpy/typing/tests/data/fail/datasource.pyi,sha256=gACpSdzMDej9WZbNvDQlkWX9DvHD7DjucesbH0EWEaM,405
|
| 869 |
+
numpy/typing/tests/data/fail/dtype.pyi,sha256=OAGABqdXNB8gClJFEGMckoycuZcIasMaAlS2RkiKROI,334
|
| 870 |
+
numpy/typing/tests/data/fail/einsumfunc.pyi,sha256=32Bsrr3ueX2CMaiBZN1xLGGsbjqKZWF2WopvNWRqCT4,487
|
| 871 |
+
numpy/typing/tests/data/fail/flatiter.pyi,sha256=JcggwDkKcMWDBz0Ky8-dkJzjwnKxQ-kyea5br5DDqq0,866
|
| 872 |
+
numpy/typing/tests/data/fail/fromnumeric.pyi,sha256=NuOpn-kPy4g80PlAVVQZfhXwP6wITijvyTs0_uuzAyw,5703
|
| 873 |
+
numpy/typing/tests/data/fail/histograms.pyi,sha256=yAPVt0rYTwtxnigoGT-u7hhKCE9iYxsXc24x2HGBrmA,367
|
| 874 |
+
numpy/typing/tests/data/fail/index_tricks.pyi,sha256=moINir9iQoi6Q1ZuVg5BuSB9hSBtbg_uzv-Qm_lLYZk,509
|
| 875 |
+
numpy/typing/tests/data/fail/lib_function_base.pyi,sha256=0FBv6CYJMDrL0U9cGsiO5a0boUrBCSB4eFHHLVjBzEo,2689
|
| 876 |
+
numpy/typing/tests/data/fail/lib_polynomial.pyi,sha256=Ur7Y4iZX6WmoH5SDm0ePi8C8LPsuPs2Yr7g7P5O613g,899
|
| 877 |
+
numpy/typing/tests/data/fail/lib_utils.pyi,sha256=6oI_kPhJqL0P0q-rsC3WtGso3V-hF7ntbNUmbhUPfXE,96
|
| 878 |
+
numpy/typing/tests/data/fail/lib_version.pyi,sha256=7-ZJDZwDcB-wzpMN8TeYtZAgaqc7xnQ8Dnx2ISiX2Ts,158
|
| 879 |
+
numpy/typing/tests/data/fail/linalg.pyi,sha256=yDd05aK1dI37RPt3pD2eJYo4dZFaT2yB1PEu3K0y9Tg,1322
|
| 880 |
+
numpy/typing/tests/data/fail/memmap.pyi,sha256=HSTCQYNuW1Y6X1Woj361pN4rusSPs4oDCXywqk20yUo,159
|
| 881 |
+
numpy/typing/tests/data/fail/modules.pyi,sha256=K73WuMJxw7zo3oALIcTuNfU4sPlKeGzEUxPlL1f97cM,621
|
| 882 |
+
numpy/typing/tests/data/fail/multiarray.pyi,sha256=1_9X7BW6hukiappz0kn3WCWN6OWXtT6OQqmJmJpdkfQ,1643
|
| 883 |
+
numpy/typing/tests/data/fail/ndarray.pyi,sha256=cgoWlpQqBQ5pkfiYsoz2f6o-DASrVRCraKBCgXLJQSk,404
|
| 884 |
+
numpy/typing/tests/data/fail/ndarray_misc.pyi,sha256=H2bpfqfd04Syto7SLWJOq-gWmCCzRWJpLIiQVPI0qE0,1000
|
| 885 |
+
numpy/typing/tests/data/fail/nditer.pyi,sha256=w7emjnOxnf3NcvLktNLlke6Cuivn2gU3sVmGCfbG6rw,325
|
| 886 |
+
numpy/typing/tests/data/fail/nested_sequence.pyi,sha256=em4GZwLDFE0QSxxg081wVwhh-Dmtkn8f7wThI0DiXVs,427
|
| 887 |
+
numpy/typing/tests/data/fail/npyio.pyi,sha256=Jsl8KB55PwQ2Xz9jXtL3j-G1RIQLCcEuLJmO_o3hZBI,628
|
| 888 |
+
numpy/typing/tests/data/fail/numerictypes.pyi,sha256=jl_pxMAq_VmkaK13-sfhUOUYGAQ4OV2pQ1d7wG-DNZg,120
|
| 889 |
+
numpy/typing/tests/data/fail/random.pyi,sha256=0sFOsJeHwYc1cUNF-MByWONEF_MP8CQWTjdyGFvgl90,2821
|
| 890 |
+
numpy/typing/tests/data/fail/rec.pyi,sha256=Ws3TyesnoQjt7Q0wwtpShRDJmZCs2jjP17buFMomVGA,704
|
| 891 |
+
numpy/typing/tests/data/fail/scalars.pyi,sha256=P_l-XImP_R7YQirkuv5aRmYaLgExJs8Djl0_mDbdKsk,2862
|
| 892 |
+
numpy/typing/tests/data/fail/shape.pyi,sha256=pSxiQ6Stq60xGFKOGZUsisxIO0y4inJ8UpKeio89K04,137
|
| 893 |
+
numpy/typing/tests/data/fail/shape_base.pyi,sha256=Y_f4buHtX2Q2ZA4kaDTyR8LErlPXTzCB_-jBoScGh_Q,152
|
| 894 |
+
numpy/typing/tests/data/fail/stride_tricks.pyi,sha256=IjA0Xrnx0lG3m07d1Hjbhtyo1Te5cXgjgr5fLUo4LYQ,315
|
| 895 |
+
numpy/typing/tests/data/fail/strings.pyi,sha256=AiH368QQsUT6JVWgePOei4TRpKGGT-3z2NvswSoRT_U,2370
|
| 896 |
+
numpy/typing/tests/data/fail/testing.pyi,sha256=xEUrFKLL8_gt3RV7d6NbF9a6zu2uaKcWBIN_pqGS_Ds,1343
|
| 897 |
+
numpy/typing/tests/data/fail/twodim_base.pyi,sha256=eRFtqBbwkVI6G6MZMVpep1UKnFMDYzhrN82fO3ilnH0,898
|
| 898 |
+
numpy/typing/tests/data/fail/type_check.pyi,sha256=CIyI0j0Buxv0QgCvNG2urjaKpoIZ-ZNawC2m6NzGlbo,379
|
| 899 |
+
numpy/typing/tests/data/fail/ufunc_config.pyi,sha256=0t_yJ4eVOhneDSfa3EsoTh6RreyMtkHVOi9oQ35_EW0,734
|
| 900 |
+
numpy/typing/tests/data/fail/ufunclike.pyi,sha256=JsJ3M8QZv9-6GKwRnojJGIfeIkdtJFe-3ix5reLXx-M,627
|
| 901 |
+
numpy/typing/tests/data/fail/ufuncs.pyi,sha256=8N8m_GbRAH0bWjDEzYnH4MREX86iBD46Ug9mm-vc1co,476
|
| 902 |
+
numpy/typing/tests/data/fail/warnings_and_errors.pyi,sha256=KXExnFGz9O7Veut_U7YEIpi6x-BdfeaGtpqWf1Yd274,185
|
| 903 |
+
numpy/typing/tests/data/misc/extended_precision.pyi,sha256=bS8bBeCFqjgtOiy-8_y39wfa7rwhdjLz2Vmo-RXAYD4,884
|
| 904 |
+
numpy/typing/tests/data/mypy.ini,sha256=6yPaDeYIVWc-WNRdSjAYOGlSVCWkmcge2Te8JAmhjpI,285
|
| 905 |
+
numpy/typing/tests/data/pass/arithmetic.py,sha256=e71PA71VJitjkF8wrmui2F2zoTt0iOCW2tfbCpNDYlQ,7447
|
| 906 |
+
numpy/typing/tests/data/pass/array_constructors.py,sha256=rfJ8SRB4raElxRjsHBCsZIkZAfqZMie0VE8sSKMgkHg,2447
|
| 907 |
+
numpy/typing/tests/data/pass/array_like.py,sha256=ddPI6pA27qnp1INWs4Yi3wCqoVypSRMxstO771WQS5c,1056
|
| 908 |
+
numpy/typing/tests/data/pass/arrayprint.py,sha256=y_KkuLz1uM7pv53qfq7GQOuud4LoXE3apK1wtARdVyM,766
|
| 909 |
+
numpy/typing/tests/data/pass/arrayterator.py,sha256=FqcpKdUQBQ0FazHFxr9MsLEZG-jnJVGKWZX2owRr4DQ,393
|
| 910 |
+
numpy/typing/tests/data/pass/bitwise_ops.py,sha256=FmEs_sKaU9ox-5f0NU3_TRIv0XxLQVEZ8rou9VNehb4,964
|
| 911 |
+
numpy/typing/tests/data/pass/comparisons.py,sha256=5aGrNl3D7Yd1m9WVkHrjJtqi7SricTxrEMtmIV9x0aE,3298
|
| 912 |
+
numpy/typing/tests/data/pass/dtype.py,sha256=YDuYAb0oKoJc9eOnKJuoPfLbIKOgEdE04_CYxRS4U5I,1070
|
| 913 |
+
numpy/typing/tests/data/pass/einsumfunc.py,sha256=eXj5L5MWPtQHgrHPsJ36qqrmBHqct9UoujjJCvHnF1k,1370
|
| 914 |
+
numpy/typing/tests/data/pass/flatiter.py,sha256=0BnbuLMBC7MQlprNZ0QhNSscfYwPhEhXOhWoyiRACWU,174
|
| 915 |
+
numpy/typing/tests/data/pass/fromnumeric.py,sha256=d_hVLyrVDFPVx33aqLIyAGYYQ8XAJFIzrAsE8QCoof4,3991
|
| 916 |
+
numpy/typing/tests/data/pass/index_tricks.py,sha256=dmonWJMUKsXg23zD_mibEEtd4b5ys-sEfT9Fnnq08x8,1402
|
| 917 |
+
numpy/typing/tests/data/pass/lib_user_array.py,sha256=Za_n84msWtV8dqQZhMhvh7lzu5WZvO8ixTPkEqO2Hms,590
|
| 918 |
+
numpy/typing/tests/data/pass/lib_utils.py,sha256=bj1sEA4gsmezqbYdqKnVtKzY_fb64w7PEoZwNvaaUdA,317
|
| 919 |
+
numpy/typing/tests/data/pass/lib_version.py,sha256=HnuGOx7tQA_bcxFIJ3dRoMAR0fockxg4lGqQ4g7LGIw,299
|
| 920 |
+
numpy/typing/tests/data/pass/literal.py,sha256=WKT1I15Iw37bqkgBlY1h1_Kb_gs1Qme8Wy3wTr0op90,1504
|
| 921 |
+
numpy/typing/tests/data/pass/ma.py,sha256=slJZQFGPI4I13qc-CRfreEGhIUk4TdFk-Pv75yWanNM,171
|
| 922 |
+
numpy/typing/tests/data/pass/mod.py,sha256=owFL1fys3LPTWpAlsjS-IzW4sSu98ncp2BnsIetLSrA,1576
|
| 923 |
+
numpy/typing/tests/data/pass/modules.py,sha256=g9PhyLO6rflYHZtmryx1VWTubphN4TAPUSfoiYriTqE,625
|
| 924 |
+
numpy/typing/tests/data/pass/multiarray.py,sha256=MxHax6l94yqlTVZleAqG77ILEbW6wU5osPcHzxJ85ns,1331
|
| 925 |
+
numpy/typing/tests/data/pass/ndarray_conversion.py,sha256=d7cFNUrofdLXh9T_9RG3Esz1XOihWWQNlz5Lb0yt6dM,1525
|
| 926 |
+
numpy/typing/tests/data/pass/ndarray_misc.py,sha256=om45RP2VtXvEhbprrJzh09S6OGQvlqrLi2B9JFTOKxc,3466
|
| 927 |
+
numpy/typing/tests/data/pass/ndarray_shape_manipulation.py,sha256=37eYwMNqMLwanIW9-63hrokacnSz2K_qtPUlkdpsTjo,640
|
| 928 |
+
numpy/typing/tests/data/pass/nditer.py,sha256=nYO45Lw3ZNbQq75Vht86zzLZ4cWzP3ml0rxDPlYt8_8,63
|
| 929 |
+
numpy/typing/tests/data/pass/numeric.py,sha256=wbmYMkK1LM34jjFek8VFJYyade_L6u7XqjpdqGyoRwU,1625
|
| 930 |
+
numpy/typing/tests/data/pass/numerictypes.py,sha256=6x6eN9-5NsSQUSc6rf3fYieS2poYEY0t_ujbwgF9S5Q,331
|
| 931 |
+
numpy/typing/tests/data/pass/random.py,sha256=UJF6epKYGfGq9QlrR9YuA7EK_mI8AQ2osdA4Uhsh1ms,61824
|
| 932 |
+
numpy/typing/tests/data/pass/recfunctions.py,sha256=_rcCY44c3LnxMFjoLcnOlVc9yXKbRUIY2nIkNoar9h4,5037
|
| 933 |
+
numpy/typing/tests/data/pass/scalars.py,sha256=OAfNg3VYmO-iSxQCSmY_OUyUjCwcRIKwiT-OR52FFP4,3725
|
| 934 |
+
numpy/typing/tests/data/pass/shape.py,sha256=0nyLAArcbN6JQQDqBhLkJ_nYj5z0zpQnaZLWIMPO8PQ,449
|
| 935 |
+
numpy/typing/tests/data/pass/simple.py,sha256=lPj620zkTA8Sg893eu2mGuj-Xq2BGZ_1dcmfsVDkz8g,2751
|
| 936 |
+
numpy/typing/tests/data/pass/simple_py3.py,sha256=HuLrc5aphThQkLjU2_19KgGFaXwKOfSzXe0p2xMm8ZI,96
|
| 937 |
+
numpy/typing/tests/data/pass/ufunc_config.py,sha256=uzXOhCl9N4LPV9hV2Iqg_skgkKMbBPBF0GXPU9EMeuE,1205
|
| 938 |
+
numpy/typing/tests/data/pass/ufunclike.py,sha256=U4Aay11VALvm22bWEX0eDWuN5qxJlg_hH5IpOL62M3I,1125
|
| 939 |
+
numpy/typing/tests/data/pass/ufuncs.py,sha256=1Rem_geEm4qyD3XaRA1NAPKwr3YjRq68zbIlC_Xhi9M,422
|
| 940 |
+
numpy/typing/tests/data/pass/warnings_and_errors.py,sha256=ETLZkDTGpZspvwjVYAZlnA1gH4PJ4bSY5PkWyxTjusU,161
|
| 941 |
+
numpy/typing/tests/data/reveal/arithmetic.pyi,sha256=pI3XrneSswKnOSa0a-9hsr7v9e4jDWO7v-gMQ81KLs4,25295
|
| 942 |
+
numpy/typing/tests/data/reveal/array_api_info.pyi,sha256=1LZSBV-FCdju6HBjBCJOLdcuMVuEdSN8-fkx-rldUZg,3047
|
| 943 |
+
numpy/typing/tests/data/reveal/array_constructors.pyi,sha256=RcwCSgtaDh4hjU7dcqoLb1tzxDp6vaifGosO3niJ33c,12573
|
| 944 |
+
numpy/typing/tests/data/reveal/arraypad.pyi,sha256=m8yoSEuxGmbHDnTIXBN-ZHAI6rMEtre65Yk3Uopdogg,688
|
| 945 |
+
numpy/typing/tests/data/reveal/arrayprint.pyi,sha256=8I-_vItFAU5e4B6Ty9wsa_Y1Nzw3lh_EvmSokbClUW8,817
|
| 946 |
+
numpy/typing/tests/data/reveal/arraysetops.pyi,sha256=SlBlsdITj2PeaR_by03nysRHYPh3G9gkvvcj5cKgFWA,4424
|
| 947 |
+
numpy/typing/tests/data/reveal/arrayterator.pyi,sha256=LKnpHT_L3_qzzeAORwVlWCLtJoo_42GXN2ZHyuWx9T0,1069
|
| 948 |
+
numpy/typing/tests/data/reveal/bitwise_ops.pyi,sha256=sEVMpf-QBsTDAEaiM9obInASKTDRQLVk2Ej8DWN5nLY,5049
|
| 949 |
+
numpy/typing/tests/data/reveal/char.pyi,sha256=wzkpRgHWgv4wQ1_KMnjakWN3B_p283kHn8TmP5nYJTY,10846
|
| 950 |
+
numpy/typing/tests/data/reveal/chararray.pyi,sha256=mbUYgjsaPHUcsQsCXkUo8Fi3H6gB84hQEo4DaM0US_o,6651
|
| 951 |
+
numpy/typing/tests/data/reveal/comparisons.pyi,sha256=iZeK0iGQIiYt1IULgT7S1tR_feHyGkaY8wUaO9KOK3o,7225
|
| 952 |
+
numpy/typing/tests/data/reveal/constants.pyi,sha256=rXWIPvzafsXTbyTNOYfbUlK_j5xiz3XFNIGIrl7aKQI,362
|
| 953 |
+
numpy/typing/tests/data/reveal/ctypeslib.pyi,sha256=DIPa9-dZLtghcevcABNQ3hpWiiPqdbpA2TT7SmrWyJE,4737
|
| 954 |
+
numpy/typing/tests/data/reveal/datasource.pyi,sha256=ROEU-LBTqzDCV_afVI-cb4qdn0UFWvSj9pjHsArBQyE,613
|
| 955 |
+
numpy/typing/tests/data/reveal/dtype.pyi,sha256=YclNqAAyjzNK6YCMvuHJWmVDVu_Kr30l2vPqz4GSrm8,5213
|
| 956 |
+
numpy/typing/tests/data/reveal/einsumfunc.pyi,sha256=BZZQikSpk-ePbbWkW2b1VO1_BXFlaqQt2d0BYKE7WTQ,1956
|
| 957 |
+
numpy/typing/tests/data/reveal/emath.pyi,sha256=CHRd-4151gruyI2sao65epcdtaLdnGzmHfF3MJFIeNc,2335
|
| 958 |
+
numpy/typing/tests/data/reveal/fft.pyi,sha256=lcl6ZRCWilYyynSB12HyTmGa0ZEKDIhKqMRrgOLisiM,1661
|
| 959 |
+
numpy/typing/tests/data/reveal/flatiter.pyi,sha256=M4dnFct3SheA2EkpIrR3ECxP5pAjjnC5C5Aelkb6DAk,1377
|
| 960 |
+
numpy/typing/tests/data/reveal/fromnumeric.pyi,sha256=44SIUac6GFQH-quhitXIU2AaFvFfEPubswM-yvIAw_c,14917
|
| 961 |
+
numpy/typing/tests/data/reveal/getlimits.pyi,sha256=FP6d4LrkydJ7KRJ2tIfBvjKW0FyAio6XxIhKca8EJvs,1582
|
| 962 |
+
numpy/typing/tests/data/reveal/histograms.pyi,sha256=ttfsdZBRqQzIfujkhNHExs20tH8qtCwJv5Yc4EAUwlk,1287
|
| 963 |
+
numpy/typing/tests/data/reveal/index_tricks.pyi,sha256=jdU0xs46CnK8haxTqZ-Z-aONablqKeJrN5cQGxCw7bg,3271
|
| 964 |
+
numpy/typing/tests/data/reveal/lib_function_base.pyi,sha256=EkWPmm41sgaDg7On5EkEKvTXsy74juuuxV36VdrCwtE,9877
|
| 965 |
+
numpy/typing/tests/data/reveal/lib_polynomial.pyi,sha256=Z2mFp-281D_zd5YbtgiliDTKk6akckOiLkOXbLnwPO4,5895
|
| 966 |
+
numpy/typing/tests/data/reveal/lib_utils.pyi,sha256=ysQO1QVJvj9Z5iTLW1z7xMJmNch2qwTGbHL77aVOHKw,448
|
| 967 |
+
numpy/typing/tests/data/reveal/lib_version.pyi,sha256=9KSTL1-sf93KZmAFyc_xXTIufDMapHAfXHtXVR8gO-4,583
|
| 968 |
+
numpy/typing/tests/data/reveal/linalg.pyi,sha256=DvWeTqPSyO_OlSxnkZbJkkEV7igdd-iMvMju2Zd2z2w,6236
|
| 969 |
+
numpy/typing/tests/data/reveal/matrix.pyi,sha256=C1-xZV_MN3wSeRxiPOg3r2_kmOhYrMXCmJC_U4dVcDc,3048
|
| 970 |
+
numpy/typing/tests/data/reveal/memmap.pyi,sha256=UdYaTVuRbMceCVMozcMTzdZ5qRrplzvovHChCvW55jg,754
|
| 971 |
+
numpy/typing/tests/data/reveal/mod.pyi,sha256=vroL10xpg449us1stjWkWFLBF6kPt9vQbsR1IF17-Z4,7611
|
| 972 |
+
numpy/typing/tests/data/reveal/modules.pyi,sha256=zOe7G_ofnwwwPQMdkKjI3mwt-xIy1kN-DjvWLQvm0r8,1870
|
| 973 |
+
numpy/typing/tests/data/reveal/multiarray.pyi,sha256=ZYxzWuPoPn88crNn92hINm07OFBRiSv2A2l26yi0w2I,7865
|
| 974 |
+
numpy/typing/tests/data/reveal/nbit_base_example.pyi,sha256=x6QK76bchnI-u4D6b0AFxcLp2Kvzv-BJCwUwe3NY9N4,587
|
| 975 |
+
numpy/typing/tests/data/reveal/ndarray_assignability.pyi,sha256=vEDA7m6QDxM_sAR2PyY19IUCmspR3Te-bdD50M-RhJM,2698
|
| 976 |
+
numpy/typing/tests/data/reveal/ndarray_conversion.pyi,sha256=N635zekh5wJfvTIFFI5tNc4NQVkyLLna1Wy4auihJMM,3377
|
| 977 |
+
numpy/typing/tests/data/reveal/ndarray_misc.pyi,sha256=kmW4gdoV3TvOiO3jWKqoBnuiWp1tBunnsvs3Aggvf-4,7903
|
| 978 |
+
numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi,sha256=9mPnQJofJ8vh9WQwWqNFxgQ6_f9Mv9rEU3iDXWnfbbQ,1405
|
| 979 |
+
numpy/typing/tests/data/reveal/nditer.pyi,sha256=c9DdxgUOnm886w3f3L2trxHMyOF5s-w8_2DZHRdbhwM,1933
|
| 980 |
+
numpy/typing/tests/data/reveal/nested_sequence.pyi,sha256=-o-5gOFUflvmU_pJRIfuKVP0xi4oxTAUYRPeHRtHiLk,646
|
| 981 |
+
numpy/typing/tests/data/reveal/npyio.pyi,sha256=vrJNIovhI6cCpV0XrdISixluzR83i3z0PKr5jk6PuNo,3523
|
| 982 |
+
numpy/typing/tests/data/reveal/numeric.pyi,sha256=9wq71fIj5gT5xMditz8zM79adfF1bvyfJJCy7DfKok0,6081
|
| 983 |
+
numpy/typing/tests/data/reveal/numerictypes.pyi,sha256=nIJSi3T3S5v9sOyvh0IgllEHjGLE-a1W0sMowo11-_A,1361
|
| 984 |
+
numpy/typing/tests/data/reveal/polynomial_polybase.pyi,sha256=EwzpzZnJnqxbe7W6MR0xJC-kzTRR428pXJDE6MgoNd4,7999
|
| 985 |
+
numpy/typing/tests/data/reveal/polynomial_polyutils.pyi,sha256=T1c-C1-b0k0j61OnlrhTkWUN6Pftdaccw8bwGX7dDN0,10764
|
| 986 |
+
numpy/typing/tests/data/reveal/polynomial_series.pyi,sha256=2h3B9w8TPr7Gypr0-s6ITeOZ3iQ4VDgpaKi5T440U_I,7128
|
| 987 |
+
numpy/typing/tests/data/reveal/random.pyi,sha256=TlY_xhK3U--2Q1KiEkErDOvIxAHaqafHnTKMA_rv6U0,104329
|
| 988 |
+
numpy/typing/tests/data/reveal/rec.pyi,sha256=ZvdqHUobAT4UeiogaAm_nVg27YSJRwUQwMtqJOJawT4,3776
|
| 989 |
+
numpy/typing/tests/data/reveal/scalars.pyi,sha256=e7J0o8MAE_Henqh6Zcwv24NgCKgOlvOQ95MUdptmDzA,6449
|
| 990 |
+
numpy/typing/tests/data/reveal/shape.pyi,sha256=r0y0iSyVabz6hnIRQFdomLV6yvPqiXrGm0pVtTmm1Eg,292
|
| 991 |
+
numpy/typing/tests/data/reveal/shape_base.pyi,sha256=W1wxdfVHMxzuX-c0BcR3UJkDiE2re6ODypZjSX1nNnY,2046
|
| 992 |
+
numpy/typing/tests/data/reveal/stride_tricks.pyi,sha256=J3Kagblme0GxDnJFW_v1M1Ak28Bdep-8P0LA3tl3KuA,1345
|
| 993 |
+
numpy/typing/tests/data/reveal/strings.pyi,sha256=hZepuR_eOIKB2Ja6sw7VQ1LpIDE0cu9Z38YmlVTG-8Q,9415
|
| 994 |
+
numpy/typing/tests/data/reveal/testing.pyi,sha256=-XIbu-GFxdz3AuiEa8Xwlq9n02eRbyJWacIgFwEtEYk,8483
|
| 995 |
+
numpy/typing/tests/data/reveal/twodim_base.pyi,sha256=x5EgqxESpsFtvBsuTY1EmoyHBCr9aTCeg133oBUQuv0,4299
|
| 996 |
+
numpy/typing/tests/data/reveal/type_check.pyi,sha256=H4d9guDEa4Hn_hty1Wy_R7q9UpACIzB2_pgoaHO4kZw,2711
|
| 997 |
+
numpy/typing/tests/data/reveal/ufunc_config.pyi,sha256=tXala6x3dbwUI1S1yYPMo47oXti_1aX84ZHlrbI5WcI,1191
|
| 998 |
+
numpy/typing/tests/data/reveal/ufunclike.pyi,sha256=F223MWONHITGeiJcpik_eLp8s56U2EsfLy73W-luTzM,1233
|
| 999 |
+
numpy/typing/tests/data/reveal/ufuncs.pyi,sha256=Gf3782hgHd0-tW1bVhzJhJBSk9GvL-lki8vDpjblMFk,4819
|
| 1000 |
+
numpy/typing/tests/data/reveal/warnings_and_errors.pyi,sha256=quHpFR_zwWzV7WGpYDMzf7RkHbomqRYrc93JUB09tkg,460
|
| 1001 |
+
numpy/typing/tests/test_isfile.py,sha256=77lnjlxFqhrIRfGpSrqmvIVwpo9VoOPGiS7rRQSdKT0,865
|
| 1002 |
+
numpy/typing/tests/test_runtime.py,sha256=2qu8JEliITnZCBJ_QJpohacj_OQ08o73ixS2w2ooNXI,3275
|
| 1003 |
+
numpy/typing/tests/test_typing.py,sha256=wfRq_DQZg99tsuEQElXDtfbSmEOjkzEVizQB0cVp8-I,8308
|
| 1004 |
+
numpy/version.py,sha256=p_z6CLw9cwp3p9MewCe_U6lpWBLDU6Um3Qd9wUUbfXo,293
|
| 1005 |
+
numpy/version.pyi,sha256=tgN523dUbCHUTYs0QYz0HKchUfFwI9HKgoJY20rkewM,388
|
.venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/REQUESTED
ADDED
|
File without changes
|
.venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/WHEEL
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Wheel-Version: 1.0
|
| 2 |
+
Generator: meson
|
| 3 |
+
Root-Is-Purelib: false
|
| 4 |
+
Tag: cp310-cp310-macosx_14_0_arm64
|
.venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/entry_points.txt
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[array_api]
|
| 2 |
+
numpy = numpy
|
| 3 |
+
|
| 4 |
+
[pyinstaller40]
|
| 5 |
+
hook-dirs = numpy:_pyinstaller_hooks_dir
|
| 6 |
+
|
| 7 |
+
[console_scripts]
|
| 8 |
+
f2py = numpy.f2py.f2py2e:main
|
| 9 |
+
numpy-config = numpy._configtool:main
|
| 10 |
+
|
.venv/lib/python3.10/site-packages/numpy/__config__.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file is generated by numpy's build process
|
| 2 |
+
# It contains system_info results at the time of building this package.
|
| 3 |
+
from enum import Enum
|
| 4 |
+
from numpy._core._multiarray_umath import (
|
| 5 |
+
__cpu_features__,
|
| 6 |
+
__cpu_baseline__,
|
| 7 |
+
__cpu_dispatch__,
|
| 8 |
+
)
|
| 9 |
+
|
| 10 |
+
__all__ = ["show_config"]
|
| 11 |
+
_built_with_meson = True
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
class DisplayModes(Enum):
|
| 15 |
+
stdout = "stdout"
|
| 16 |
+
dicts = "dicts"
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
def _cleanup(d):
|
| 20 |
+
"""
|
| 21 |
+
Removes empty values in a `dict` recursively
|
| 22 |
+
This ensures we remove values that Meson could not provide to CONFIG
|
| 23 |
+
"""
|
| 24 |
+
if isinstance(d, dict):
|
| 25 |
+
return {k: _cleanup(v) for k, v in d.items() if v and _cleanup(v)}
|
| 26 |
+
else:
|
| 27 |
+
return d
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
CONFIG = _cleanup(
|
| 31 |
+
{
|
| 32 |
+
"Compilers": {
|
| 33 |
+
"c": {
|
| 34 |
+
"name": "clang",
|
| 35 |
+
"linker": r"ld64",
|
| 36 |
+
"version": "15.0.0",
|
| 37 |
+
"commands": r"cc",
|
| 38 |
+
"args": r"",
|
| 39 |
+
"linker args": r"",
|
| 40 |
+
},
|
| 41 |
+
"cython": {
|
| 42 |
+
"name": "cython",
|
| 43 |
+
"linker": r"cython",
|
| 44 |
+
"version": "3.1.0",
|
| 45 |
+
"commands": r"cython",
|
| 46 |
+
"args": r"",
|
| 47 |
+
"linker args": r"",
|
| 48 |
+
},
|
| 49 |
+
"c++": {
|
| 50 |
+
"name": "clang",
|
| 51 |
+
"linker": r"ld64",
|
| 52 |
+
"version": "15.0.0",
|
| 53 |
+
"commands": r"c++",
|
| 54 |
+
"args": r"",
|
| 55 |
+
"linker args": r"",
|
| 56 |
+
},
|
| 57 |
+
},
|
| 58 |
+
"Machine Information": {
|
| 59 |
+
"host": {
|
| 60 |
+
"cpu": "aarch64",
|
| 61 |
+
"family": "aarch64",
|
| 62 |
+
"endian": "little",
|
| 63 |
+
"system": "darwin",
|
| 64 |
+
},
|
| 65 |
+
"build": {
|
| 66 |
+
"cpu": "aarch64",
|
| 67 |
+
"family": "aarch64",
|
| 68 |
+
"endian": "little",
|
| 69 |
+
"system": "darwin",
|
| 70 |
+
},
|
| 71 |
+
"cross-compiled": bool("False".lower().replace("false", "")),
|
| 72 |
+
},
|
| 73 |
+
"Build Dependencies": {
|
| 74 |
+
"blas": {
|
| 75 |
+
"name": "accelerate",
|
| 76 |
+
"found": bool("True".lower().replace("false", "")),
|
| 77 |
+
"version": "unknown",
|
| 78 |
+
"detection method": "system",
|
| 79 |
+
"include directory": r"unknown",
|
| 80 |
+
"lib directory": r"unknown",
|
| 81 |
+
"openblas configuration": r"unknown",
|
| 82 |
+
"pc file directory": r"unknown",
|
| 83 |
+
},
|
| 84 |
+
"lapack": {
|
| 85 |
+
"name": "accelerate",
|
| 86 |
+
"found": bool("True".lower().replace("false", "")),
|
| 87 |
+
"version": "unknown",
|
| 88 |
+
"detection method": "system",
|
| 89 |
+
"include directory": r"unknown",
|
| 90 |
+
"lib directory": r"unknown",
|
| 91 |
+
"openblas configuration": r"unknown",
|
| 92 |
+
"pc file directory": r"unknown",
|
| 93 |
+
},
|
| 94 |
+
},
|
| 95 |
+
"Python Information": {
|
| 96 |
+
"path": r"/private/var/folders/w5/_8wgjw3j5cg6mgrth3s2kg9m0000gn/T/build-env-g9clshsu/bin/python",
|
| 97 |
+
"version": "3.10",
|
| 98 |
+
},
|
| 99 |
+
"SIMD Extensions": {
|
| 100 |
+
"baseline": __cpu_baseline__,
|
| 101 |
+
"found": [
|
| 102 |
+
feature for feature in __cpu_dispatch__ if __cpu_features__[feature]
|
| 103 |
+
],
|
| 104 |
+
"not found": [
|
| 105 |
+
feature for feature in __cpu_dispatch__ if not __cpu_features__[feature]
|
| 106 |
+
],
|
| 107 |
+
},
|
| 108 |
+
}
|
| 109 |
+
)
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
def _check_pyyaml():
|
| 113 |
+
import yaml
|
| 114 |
+
|
| 115 |
+
return yaml
|
| 116 |
+
|
| 117 |
+
|
| 118 |
+
def show(mode=DisplayModes.stdout.value):
|
| 119 |
+
"""
|
| 120 |
+
Show libraries and system information on which NumPy was built
|
| 121 |
+
and is being used
|
| 122 |
+
|
| 123 |
+
Parameters
|
| 124 |
+
----------
|
| 125 |
+
mode : {`'stdout'`, `'dicts'`}, optional.
|
| 126 |
+
Indicates how to display the config information.
|
| 127 |
+
`'stdout'` prints to console, `'dicts'` returns a dictionary
|
| 128 |
+
of the configuration.
|
| 129 |
+
|
| 130 |
+
Returns
|
| 131 |
+
-------
|
| 132 |
+
out : {`dict`, `None`}
|
| 133 |
+
If mode is `'dicts'`, a dict is returned, else None
|
| 134 |
+
|
| 135 |
+
See Also
|
| 136 |
+
--------
|
| 137 |
+
get_include : Returns the directory containing NumPy C
|
| 138 |
+
header files.
|
| 139 |
+
|
| 140 |
+
Notes
|
| 141 |
+
-----
|
| 142 |
+
1. The `'stdout'` mode will give more readable
|
| 143 |
+
output if ``pyyaml`` is installed
|
| 144 |
+
|
| 145 |
+
"""
|
| 146 |
+
if mode == DisplayModes.stdout.value:
|
| 147 |
+
try: # Non-standard library, check import
|
| 148 |
+
yaml = _check_pyyaml()
|
| 149 |
+
|
| 150 |
+
print(yaml.dump(CONFIG))
|
| 151 |
+
except ModuleNotFoundError:
|
| 152 |
+
import warnings
|
| 153 |
+
import json
|
| 154 |
+
|
| 155 |
+
warnings.warn("Install `pyyaml` for better output", stacklevel=1)
|
| 156 |
+
print(json.dumps(CONFIG, indent=2))
|
| 157 |
+
elif mode == DisplayModes.dicts.value:
|
| 158 |
+
return CONFIG
|
| 159 |
+
else:
|
| 160 |
+
raise AttributeError(
|
| 161 |
+
f"Invalid `mode`, use one of: {', '.join([e.value for e in DisplayModes])}"
|
| 162 |
+
)
|
| 163 |
+
|
| 164 |
+
|
| 165 |
+
def show_config(mode=DisplayModes.stdout.value):
|
| 166 |
+
return show(mode)
|
| 167 |
+
|
| 168 |
+
|
| 169 |
+
show_config.__doc__ = show.__doc__
|
| 170 |
+
show_config.__module__ = "numpy"
|
.venv/lib/python3.10/site-packages/numpy/__config__.pyi
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from enum import Enum
|
| 2 |
+
from types import ModuleType
|
| 3 |
+
from typing import Final, Literal as L, TypedDict, overload, type_check_only
|
| 4 |
+
from typing_extensions import NotRequired
|
| 5 |
+
|
| 6 |
+
_CompilerConfigDictValue = TypedDict(
|
| 7 |
+
"_CompilerConfigDictValue",
|
| 8 |
+
{
|
| 9 |
+
"name": str,
|
| 10 |
+
"linker": str,
|
| 11 |
+
"version": str,
|
| 12 |
+
"commands": str,
|
| 13 |
+
"args": str,
|
| 14 |
+
"linker args": str,
|
| 15 |
+
},
|
| 16 |
+
)
|
| 17 |
+
_CompilerConfigDict = TypedDict(
|
| 18 |
+
"_CompilerConfigDict",
|
| 19 |
+
{
|
| 20 |
+
"c": _CompilerConfigDictValue,
|
| 21 |
+
"cython": _CompilerConfigDictValue,
|
| 22 |
+
"c++": _CompilerConfigDictValue,
|
| 23 |
+
},
|
| 24 |
+
)
|
| 25 |
+
_MachineInformationDict = TypedDict(
|
| 26 |
+
"_MachineInformationDict",
|
| 27 |
+
{
|
| 28 |
+
"host":_MachineInformationDictValue,
|
| 29 |
+
"build": _MachineInformationDictValue,
|
| 30 |
+
"cross-compiled": NotRequired[L[True]],
|
| 31 |
+
},
|
| 32 |
+
)
|
| 33 |
+
|
| 34 |
+
@type_check_only
|
| 35 |
+
class _MachineInformationDictValue(TypedDict):
|
| 36 |
+
cpu: str
|
| 37 |
+
family: str
|
| 38 |
+
endian: L["little", "big"]
|
| 39 |
+
system: str
|
| 40 |
+
|
| 41 |
+
_BuildDependenciesDictValue = TypedDict(
|
| 42 |
+
"_BuildDependenciesDictValue",
|
| 43 |
+
{
|
| 44 |
+
"name": str,
|
| 45 |
+
"found": NotRequired[L[True]],
|
| 46 |
+
"version": str,
|
| 47 |
+
"include directory": str,
|
| 48 |
+
"lib directory": str,
|
| 49 |
+
"openblas configuration": str,
|
| 50 |
+
"pc file directory": str,
|
| 51 |
+
},
|
| 52 |
+
)
|
| 53 |
+
|
| 54 |
+
class _BuildDependenciesDict(TypedDict):
|
| 55 |
+
blas: _BuildDependenciesDictValue
|
| 56 |
+
lapack: _BuildDependenciesDictValue
|
| 57 |
+
|
| 58 |
+
class _PythonInformationDict(TypedDict):
|
| 59 |
+
path: str
|
| 60 |
+
version: str
|
| 61 |
+
|
| 62 |
+
_SIMDExtensionsDict = TypedDict(
|
| 63 |
+
"_SIMDExtensionsDict",
|
| 64 |
+
{
|
| 65 |
+
"baseline": list[str],
|
| 66 |
+
"found": list[str],
|
| 67 |
+
"not found": list[str],
|
| 68 |
+
},
|
| 69 |
+
)
|
| 70 |
+
|
| 71 |
+
_ConfigDict = TypedDict(
|
| 72 |
+
"_ConfigDict",
|
| 73 |
+
{
|
| 74 |
+
"Compilers": _CompilerConfigDict,
|
| 75 |
+
"Machine Information": _MachineInformationDict,
|
| 76 |
+
"Build Dependencies": _BuildDependenciesDict,
|
| 77 |
+
"Python Information": _PythonInformationDict,
|
| 78 |
+
"SIMD Extensions": _SIMDExtensionsDict,
|
| 79 |
+
},
|
| 80 |
+
)
|
| 81 |
+
|
| 82 |
+
###
|
| 83 |
+
|
| 84 |
+
__all__ = ["show_config"]
|
| 85 |
+
|
| 86 |
+
CONFIG: Final[_ConfigDict] = ...
|
| 87 |
+
|
| 88 |
+
class DisplayModes(Enum):
|
| 89 |
+
stdout = "stdout"
|
| 90 |
+
dicts = "dicts"
|
| 91 |
+
|
| 92 |
+
def _check_pyyaml() -> ModuleType: ...
|
| 93 |
+
|
| 94 |
+
@overload
|
| 95 |
+
def show(mode: L["stdout"] = "stdout") -> None: ...
|
| 96 |
+
@overload
|
| 97 |
+
def show(mode: L["dicts"]) -> _ConfigDict: ...
|
| 98 |
+
|
| 99 |
+
@overload
|
| 100 |
+
def show_config(mode: L["stdout"] = "stdout") -> None: ...
|
| 101 |
+
@overload
|
| 102 |
+
def show_config(mode: L["dicts"]) -> _ConfigDict: ...
|
.venv/lib/python3.10/site-packages/numpy/__init__.cython-30.pxd
ADDED
|
@@ -0,0 +1,1250 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# NumPy static imports for Cython >= 3.0
|
| 2 |
+
#
|
| 3 |
+
# If any of the PyArray_* functions are called, import_array must be
|
| 4 |
+
# called first. This is done automatically by Cython 3.0+ if a call
|
| 5 |
+
# is not detected inside of the module.
|
| 6 |
+
#
|
| 7 |
+
# Author: Dag Sverre Seljebotn
|
| 8 |
+
#
|
| 9 |
+
|
| 10 |
+
from cpython.ref cimport Py_INCREF
|
| 11 |
+
from cpython.object cimport PyObject, PyTypeObject, PyObject_TypeCheck
|
| 12 |
+
cimport libc.stdio as stdio
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
cdef extern from *:
|
| 16 |
+
# Leave a marker that the NumPy declarations came from NumPy itself and not from Cython.
|
| 17 |
+
# See https://github.com/cython/cython/issues/3573
|
| 18 |
+
"""
|
| 19 |
+
/* Using NumPy API declarations from "numpy/__init__.cython-30.pxd" */
|
| 20 |
+
"""
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
cdef extern from "numpy/arrayobject.h":
|
| 24 |
+
# It would be nice to use size_t and ssize_t, but ssize_t has special
|
| 25 |
+
# implicit conversion rules, so just use "long".
|
| 26 |
+
# Note: The actual type only matters for Cython promotion, so long
|
| 27 |
+
# is closer than int, but could lead to incorrect promotion.
|
| 28 |
+
# (Not to worrying, and always the status-quo.)
|
| 29 |
+
ctypedef signed long npy_intp
|
| 30 |
+
ctypedef unsigned long npy_uintp
|
| 31 |
+
|
| 32 |
+
ctypedef unsigned char npy_bool
|
| 33 |
+
|
| 34 |
+
ctypedef signed char npy_byte
|
| 35 |
+
ctypedef signed short npy_short
|
| 36 |
+
ctypedef signed int npy_int
|
| 37 |
+
ctypedef signed long npy_long
|
| 38 |
+
ctypedef signed long long npy_longlong
|
| 39 |
+
|
| 40 |
+
ctypedef unsigned char npy_ubyte
|
| 41 |
+
ctypedef unsigned short npy_ushort
|
| 42 |
+
ctypedef unsigned int npy_uint
|
| 43 |
+
ctypedef unsigned long npy_ulong
|
| 44 |
+
ctypedef unsigned long long npy_ulonglong
|
| 45 |
+
|
| 46 |
+
ctypedef float npy_float
|
| 47 |
+
ctypedef double npy_double
|
| 48 |
+
ctypedef long double npy_longdouble
|
| 49 |
+
|
| 50 |
+
ctypedef signed char npy_int8
|
| 51 |
+
ctypedef signed short npy_int16
|
| 52 |
+
ctypedef signed int npy_int32
|
| 53 |
+
ctypedef signed long long npy_int64
|
| 54 |
+
ctypedef signed long long npy_int96
|
| 55 |
+
ctypedef signed long long npy_int128
|
| 56 |
+
|
| 57 |
+
ctypedef unsigned char npy_uint8
|
| 58 |
+
ctypedef unsigned short npy_uint16
|
| 59 |
+
ctypedef unsigned int npy_uint32
|
| 60 |
+
ctypedef unsigned long long npy_uint64
|
| 61 |
+
ctypedef unsigned long long npy_uint96
|
| 62 |
+
ctypedef unsigned long long npy_uint128
|
| 63 |
+
|
| 64 |
+
ctypedef float npy_float32
|
| 65 |
+
ctypedef double npy_float64
|
| 66 |
+
ctypedef long double npy_float80
|
| 67 |
+
ctypedef long double npy_float96
|
| 68 |
+
ctypedef long double npy_float128
|
| 69 |
+
|
| 70 |
+
ctypedef struct npy_cfloat:
|
| 71 |
+
pass
|
| 72 |
+
|
| 73 |
+
ctypedef struct npy_cdouble:
|
| 74 |
+
pass
|
| 75 |
+
|
| 76 |
+
ctypedef struct npy_clongdouble:
|
| 77 |
+
pass
|
| 78 |
+
|
| 79 |
+
ctypedef struct npy_complex64:
|
| 80 |
+
pass
|
| 81 |
+
|
| 82 |
+
ctypedef struct npy_complex128:
|
| 83 |
+
pass
|
| 84 |
+
|
| 85 |
+
ctypedef struct npy_complex160:
|
| 86 |
+
pass
|
| 87 |
+
|
| 88 |
+
ctypedef struct npy_complex192:
|
| 89 |
+
pass
|
| 90 |
+
|
| 91 |
+
ctypedef struct npy_complex256:
|
| 92 |
+
pass
|
| 93 |
+
|
| 94 |
+
ctypedef struct PyArray_Dims:
|
| 95 |
+
npy_intp *ptr
|
| 96 |
+
int len
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
cdef enum NPY_TYPES:
|
| 100 |
+
NPY_BOOL
|
| 101 |
+
NPY_BYTE
|
| 102 |
+
NPY_UBYTE
|
| 103 |
+
NPY_SHORT
|
| 104 |
+
NPY_USHORT
|
| 105 |
+
NPY_INT
|
| 106 |
+
NPY_UINT
|
| 107 |
+
NPY_LONG
|
| 108 |
+
NPY_ULONG
|
| 109 |
+
NPY_LONGLONG
|
| 110 |
+
NPY_ULONGLONG
|
| 111 |
+
NPY_FLOAT
|
| 112 |
+
NPY_DOUBLE
|
| 113 |
+
NPY_LONGDOUBLE
|
| 114 |
+
NPY_CFLOAT
|
| 115 |
+
NPY_CDOUBLE
|
| 116 |
+
NPY_CLONGDOUBLE
|
| 117 |
+
NPY_OBJECT
|
| 118 |
+
NPY_STRING
|
| 119 |
+
NPY_UNICODE
|
| 120 |
+
NPY_VOID
|
| 121 |
+
NPY_DATETIME
|
| 122 |
+
NPY_TIMEDELTA
|
| 123 |
+
NPY_NTYPES_LEGACY
|
| 124 |
+
NPY_NOTYPE
|
| 125 |
+
|
| 126 |
+
NPY_INT8
|
| 127 |
+
NPY_INT16
|
| 128 |
+
NPY_INT32
|
| 129 |
+
NPY_INT64
|
| 130 |
+
NPY_INT128
|
| 131 |
+
NPY_INT256
|
| 132 |
+
NPY_UINT8
|
| 133 |
+
NPY_UINT16
|
| 134 |
+
NPY_UINT32
|
| 135 |
+
NPY_UINT64
|
| 136 |
+
NPY_UINT128
|
| 137 |
+
NPY_UINT256
|
| 138 |
+
NPY_FLOAT16
|
| 139 |
+
NPY_FLOAT32
|
| 140 |
+
NPY_FLOAT64
|
| 141 |
+
NPY_FLOAT80
|
| 142 |
+
NPY_FLOAT96
|
| 143 |
+
NPY_FLOAT128
|
| 144 |
+
NPY_FLOAT256
|
| 145 |
+
NPY_COMPLEX32
|
| 146 |
+
NPY_COMPLEX64
|
| 147 |
+
NPY_COMPLEX128
|
| 148 |
+
NPY_COMPLEX160
|
| 149 |
+
NPY_COMPLEX192
|
| 150 |
+
NPY_COMPLEX256
|
| 151 |
+
NPY_COMPLEX512
|
| 152 |
+
|
| 153 |
+
NPY_INTP
|
| 154 |
+
NPY_UINTP
|
| 155 |
+
NPY_DEFAULT_INT # Not a compile time constant (normally)!
|
| 156 |
+
|
| 157 |
+
ctypedef enum NPY_ORDER:
|
| 158 |
+
NPY_ANYORDER
|
| 159 |
+
NPY_CORDER
|
| 160 |
+
NPY_FORTRANORDER
|
| 161 |
+
NPY_KEEPORDER
|
| 162 |
+
|
| 163 |
+
ctypedef enum NPY_CASTING:
|
| 164 |
+
NPY_NO_CASTING
|
| 165 |
+
NPY_EQUIV_CASTING
|
| 166 |
+
NPY_SAFE_CASTING
|
| 167 |
+
NPY_SAME_KIND_CASTING
|
| 168 |
+
NPY_UNSAFE_CASTING
|
| 169 |
+
|
| 170 |
+
ctypedef enum NPY_CLIPMODE:
|
| 171 |
+
NPY_CLIP
|
| 172 |
+
NPY_WRAP
|
| 173 |
+
NPY_RAISE
|
| 174 |
+
|
| 175 |
+
ctypedef enum NPY_SCALARKIND:
|
| 176 |
+
NPY_NOSCALAR,
|
| 177 |
+
NPY_BOOL_SCALAR,
|
| 178 |
+
NPY_INTPOS_SCALAR,
|
| 179 |
+
NPY_INTNEG_SCALAR,
|
| 180 |
+
NPY_FLOAT_SCALAR,
|
| 181 |
+
NPY_COMPLEX_SCALAR,
|
| 182 |
+
NPY_OBJECT_SCALAR
|
| 183 |
+
|
| 184 |
+
ctypedef enum NPY_SORTKIND:
|
| 185 |
+
NPY_QUICKSORT
|
| 186 |
+
NPY_HEAPSORT
|
| 187 |
+
NPY_MERGESORT
|
| 188 |
+
|
| 189 |
+
ctypedef enum NPY_SEARCHSIDE:
|
| 190 |
+
NPY_SEARCHLEFT
|
| 191 |
+
NPY_SEARCHRIGHT
|
| 192 |
+
|
| 193 |
+
enum:
|
| 194 |
+
# DEPRECATED since NumPy 1.7 ! Do not use in new code!
|
| 195 |
+
NPY_C_CONTIGUOUS
|
| 196 |
+
NPY_F_CONTIGUOUS
|
| 197 |
+
NPY_CONTIGUOUS
|
| 198 |
+
NPY_FORTRAN
|
| 199 |
+
NPY_OWNDATA
|
| 200 |
+
NPY_FORCECAST
|
| 201 |
+
NPY_ENSURECOPY
|
| 202 |
+
NPY_ENSUREARRAY
|
| 203 |
+
NPY_ELEMENTSTRIDES
|
| 204 |
+
NPY_ALIGNED
|
| 205 |
+
NPY_NOTSWAPPED
|
| 206 |
+
NPY_WRITEABLE
|
| 207 |
+
NPY_ARR_HAS_DESCR
|
| 208 |
+
|
| 209 |
+
NPY_BEHAVED
|
| 210 |
+
NPY_BEHAVED_NS
|
| 211 |
+
NPY_CARRAY
|
| 212 |
+
NPY_CARRAY_RO
|
| 213 |
+
NPY_FARRAY
|
| 214 |
+
NPY_FARRAY_RO
|
| 215 |
+
NPY_DEFAULT
|
| 216 |
+
|
| 217 |
+
NPY_IN_ARRAY
|
| 218 |
+
NPY_OUT_ARRAY
|
| 219 |
+
NPY_INOUT_ARRAY
|
| 220 |
+
NPY_IN_FARRAY
|
| 221 |
+
NPY_OUT_FARRAY
|
| 222 |
+
NPY_INOUT_FARRAY
|
| 223 |
+
|
| 224 |
+
NPY_UPDATE_ALL
|
| 225 |
+
|
| 226 |
+
enum:
|
| 227 |
+
# Added in NumPy 1.7 to replace the deprecated enums above.
|
| 228 |
+
NPY_ARRAY_C_CONTIGUOUS
|
| 229 |
+
NPY_ARRAY_F_CONTIGUOUS
|
| 230 |
+
NPY_ARRAY_OWNDATA
|
| 231 |
+
NPY_ARRAY_FORCECAST
|
| 232 |
+
NPY_ARRAY_ENSURECOPY
|
| 233 |
+
NPY_ARRAY_ENSUREARRAY
|
| 234 |
+
NPY_ARRAY_ELEMENTSTRIDES
|
| 235 |
+
NPY_ARRAY_ALIGNED
|
| 236 |
+
NPY_ARRAY_NOTSWAPPED
|
| 237 |
+
NPY_ARRAY_WRITEABLE
|
| 238 |
+
NPY_ARRAY_WRITEBACKIFCOPY
|
| 239 |
+
|
| 240 |
+
NPY_ARRAY_BEHAVED
|
| 241 |
+
NPY_ARRAY_BEHAVED_NS
|
| 242 |
+
NPY_ARRAY_CARRAY
|
| 243 |
+
NPY_ARRAY_CARRAY_RO
|
| 244 |
+
NPY_ARRAY_FARRAY
|
| 245 |
+
NPY_ARRAY_FARRAY_RO
|
| 246 |
+
NPY_ARRAY_DEFAULT
|
| 247 |
+
|
| 248 |
+
NPY_ARRAY_IN_ARRAY
|
| 249 |
+
NPY_ARRAY_OUT_ARRAY
|
| 250 |
+
NPY_ARRAY_INOUT_ARRAY
|
| 251 |
+
NPY_ARRAY_IN_FARRAY
|
| 252 |
+
NPY_ARRAY_OUT_FARRAY
|
| 253 |
+
NPY_ARRAY_INOUT_FARRAY
|
| 254 |
+
|
| 255 |
+
NPY_ARRAY_UPDATE_ALL
|
| 256 |
+
|
| 257 |
+
cdef enum:
|
| 258 |
+
NPY_MAXDIMS # 64 on NumPy 2.x and 32 on NumPy 1.x
|
| 259 |
+
NPY_RAVEL_AXIS # Used for functions like PyArray_Mean
|
| 260 |
+
|
| 261 |
+
ctypedef void (*PyArray_VectorUnaryFunc)(void *, void *, npy_intp, void *, void *)
|
| 262 |
+
|
| 263 |
+
ctypedef struct PyArray_ArrayDescr:
|
| 264 |
+
# shape is a tuple, but Cython doesn't support "tuple shape"
|
| 265 |
+
# inside a non-PyObject declaration, so we have to declare it
|
| 266 |
+
# as just a PyObject*.
|
| 267 |
+
PyObject* shape
|
| 268 |
+
|
| 269 |
+
ctypedef struct PyArray_Descr:
|
| 270 |
+
pass
|
| 271 |
+
|
| 272 |
+
ctypedef class numpy.dtype [object PyArray_Descr, check_size ignore]:
|
| 273 |
+
# Use PyDataType_* macros when possible, however there are no macros
|
| 274 |
+
# for accessing some of the fields, so some are defined.
|
| 275 |
+
cdef PyTypeObject* typeobj
|
| 276 |
+
cdef char kind
|
| 277 |
+
cdef char type
|
| 278 |
+
# Numpy sometimes mutates this without warning (e.g. it'll
|
| 279 |
+
# sometimes change "|" to "<" in shared dtype objects on
|
| 280 |
+
# little-endian machines). If this matters to you, use
|
| 281 |
+
# PyArray_IsNativeByteOrder(dtype.byteorder) instead of
|
| 282 |
+
# directly accessing this field.
|
| 283 |
+
cdef char byteorder
|
| 284 |
+
cdef int type_num
|
| 285 |
+
|
| 286 |
+
@property
|
| 287 |
+
cdef inline npy_intp itemsize(self) noexcept nogil:
|
| 288 |
+
return PyDataType_ELSIZE(self)
|
| 289 |
+
|
| 290 |
+
@property
|
| 291 |
+
cdef inline npy_intp alignment(self) noexcept nogil:
|
| 292 |
+
return PyDataType_ALIGNMENT(self)
|
| 293 |
+
|
| 294 |
+
# Use fields/names with care as they may be NULL. You must check
|
| 295 |
+
# for this using PyDataType_HASFIELDS.
|
| 296 |
+
@property
|
| 297 |
+
cdef inline object fields(self):
|
| 298 |
+
return <object>PyDataType_FIELDS(self)
|
| 299 |
+
|
| 300 |
+
@property
|
| 301 |
+
cdef inline tuple names(self):
|
| 302 |
+
return <tuple>PyDataType_NAMES(self)
|
| 303 |
+
|
| 304 |
+
# Use PyDataType_HASSUBARRAY to test whether this field is
|
| 305 |
+
# valid (the pointer can be NULL). Most users should access
|
| 306 |
+
# this field via the inline helper method PyDataType_SHAPE.
|
| 307 |
+
@property
|
| 308 |
+
cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
|
| 309 |
+
return PyDataType_SUBARRAY(self)
|
| 310 |
+
|
| 311 |
+
@property
|
| 312 |
+
cdef inline npy_uint64 flags(self) noexcept nogil:
|
| 313 |
+
"""The data types flags."""
|
| 314 |
+
return PyDataType_FLAGS(self)
|
| 315 |
+
|
| 316 |
+
|
| 317 |
+
ctypedef class numpy.flatiter [object PyArrayIterObject, check_size ignore]:
|
| 318 |
+
# Use through macros
|
| 319 |
+
pass
|
| 320 |
+
|
| 321 |
+
ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
|
| 322 |
+
|
| 323 |
+
@property
|
| 324 |
+
cdef inline int numiter(self) noexcept nogil:
|
| 325 |
+
"""The number of arrays that need to be broadcast to the same shape."""
|
| 326 |
+
return PyArray_MultiIter_NUMITER(self)
|
| 327 |
+
|
| 328 |
+
@property
|
| 329 |
+
cdef inline npy_intp size(self) noexcept nogil:
|
| 330 |
+
"""The total broadcasted size."""
|
| 331 |
+
return PyArray_MultiIter_SIZE(self)
|
| 332 |
+
|
| 333 |
+
@property
|
| 334 |
+
cdef inline npy_intp index(self) noexcept nogil:
|
| 335 |
+
"""The current (1-d) index into the broadcasted result."""
|
| 336 |
+
return PyArray_MultiIter_INDEX(self)
|
| 337 |
+
|
| 338 |
+
@property
|
| 339 |
+
cdef inline int nd(self) noexcept nogil:
|
| 340 |
+
"""The number of dimensions in the broadcasted result."""
|
| 341 |
+
return PyArray_MultiIter_NDIM(self)
|
| 342 |
+
|
| 343 |
+
@property
|
| 344 |
+
cdef inline npy_intp* dimensions(self) noexcept nogil:
|
| 345 |
+
"""The shape of the broadcasted result."""
|
| 346 |
+
return PyArray_MultiIter_DIMS(self)
|
| 347 |
+
|
| 348 |
+
@property
|
| 349 |
+
cdef inline void** iters(self) noexcept nogil:
|
| 350 |
+
"""An array of iterator objects that holds the iterators for the arrays to be broadcast together.
|
| 351 |
+
On return, the iterators are adjusted for broadcasting."""
|
| 352 |
+
return PyArray_MultiIter_ITERS(self)
|
| 353 |
+
|
| 354 |
+
|
| 355 |
+
ctypedef struct PyArrayObject:
|
| 356 |
+
# For use in situations where ndarray can't replace PyArrayObject*,
|
| 357 |
+
# like PyArrayObject**.
|
| 358 |
+
pass
|
| 359 |
+
|
| 360 |
+
ctypedef class numpy.ndarray [object PyArrayObject, check_size ignore]:
|
| 361 |
+
cdef __cythonbufferdefaults__ = {"mode": "strided"}
|
| 362 |
+
|
| 363 |
+
# NOTE: no field declarations since direct access is deprecated since NumPy 1.7
|
| 364 |
+
# Instead, we use properties that map to the corresponding C-API functions.
|
| 365 |
+
|
| 366 |
+
@property
|
| 367 |
+
cdef inline PyObject* base(self) noexcept nogil:
|
| 368 |
+
"""Returns a borrowed reference to the object owning the data/memory.
|
| 369 |
+
"""
|
| 370 |
+
return PyArray_BASE(self)
|
| 371 |
+
|
| 372 |
+
@property
|
| 373 |
+
cdef inline dtype descr(self):
|
| 374 |
+
"""Returns an owned reference to the dtype of the array.
|
| 375 |
+
"""
|
| 376 |
+
return <dtype>PyArray_DESCR(self)
|
| 377 |
+
|
| 378 |
+
@property
|
| 379 |
+
cdef inline int ndim(self) noexcept nogil:
|
| 380 |
+
"""Returns the number of dimensions in the array.
|
| 381 |
+
"""
|
| 382 |
+
return PyArray_NDIM(self)
|
| 383 |
+
|
| 384 |
+
@property
|
| 385 |
+
cdef inline npy_intp *shape(self) noexcept nogil:
|
| 386 |
+
"""Returns a pointer to the dimensions/shape of the array.
|
| 387 |
+
The number of elements matches the number of dimensions of the array (ndim).
|
| 388 |
+
Can return NULL for 0-dimensional arrays.
|
| 389 |
+
"""
|
| 390 |
+
return PyArray_DIMS(self)
|
| 391 |
+
|
| 392 |
+
@property
|
| 393 |
+
cdef inline npy_intp *strides(self) noexcept nogil:
|
| 394 |
+
"""Returns a pointer to the strides of the array.
|
| 395 |
+
The number of elements matches the number of dimensions of the array (ndim).
|
| 396 |
+
"""
|
| 397 |
+
return PyArray_STRIDES(self)
|
| 398 |
+
|
| 399 |
+
@property
|
| 400 |
+
cdef inline npy_intp size(self) noexcept nogil:
|
| 401 |
+
"""Returns the total size (in number of elements) of the array.
|
| 402 |
+
"""
|
| 403 |
+
return PyArray_SIZE(self)
|
| 404 |
+
|
| 405 |
+
@property
|
| 406 |
+
cdef inline char* data(self) noexcept nogil:
|
| 407 |
+
"""The pointer to the data buffer as a char*.
|
| 408 |
+
This is provided for legacy reasons to avoid direct struct field access.
|
| 409 |
+
For new code that needs this access, you probably want to cast the result
|
| 410 |
+
of `PyArray_DATA()` instead, which returns a 'void*'.
|
| 411 |
+
"""
|
| 412 |
+
return PyArray_BYTES(self)
|
| 413 |
+
|
| 414 |
+
|
| 415 |
+
int _import_array() except -1
|
| 416 |
+
# A second definition so _import_array isn't marked as used when we use it here.
|
| 417 |
+
# Do not use - subject to change any time.
|
| 418 |
+
int __pyx_import_array "_import_array"() except -1
|
| 419 |
+
|
| 420 |
+
#
|
| 421 |
+
# Macros from ndarrayobject.h
|
| 422 |
+
#
|
| 423 |
+
bint PyArray_CHKFLAGS(ndarray m, int flags) nogil
|
| 424 |
+
bint PyArray_IS_C_CONTIGUOUS(ndarray arr) nogil
|
| 425 |
+
bint PyArray_IS_F_CONTIGUOUS(ndarray arr) nogil
|
| 426 |
+
bint PyArray_ISCONTIGUOUS(ndarray m) nogil
|
| 427 |
+
bint PyArray_ISWRITEABLE(ndarray m) nogil
|
| 428 |
+
bint PyArray_ISALIGNED(ndarray m) nogil
|
| 429 |
+
|
| 430 |
+
int PyArray_NDIM(ndarray) nogil
|
| 431 |
+
bint PyArray_ISONESEGMENT(ndarray) nogil
|
| 432 |
+
bint PyArray_ISFORTRAN(ndarray) nogil
|
| 433 |
+
int PyArray_FORTRANIF(ndarray) nogil
|
| 434 |
+
|
| 435 |
+
void* PyArray_DATA(ndarray) nogil
|
| 436 |
+
char* PyArray_BYTES(ndarray) nogil
|
| 437 |
+
|
| 438 |
+
npy_intp* PyArray_DIMS(ndarray) nogil
|
| 439 |
+
npy_intp* PyArray_STRIDES(ndarray) nogil
|
| 440 |
+
npy_intp PyArray_DIM(ndarray, size_t) nogil
|
| 441 |
+
npy_intp PyArray_STRIDE(ndarray, size_t) nogil
|
| 442 |
+
|
| 443 |
+
PyObject *PyArray_BASE(ndarray) nogil # returns borrowed reference!
|
| 444 |
+
PyArray_Descr *PyArray_DESCR(ndarray) nogil # returns borrowed reference to dtype!
|
| 445 |
+
PyArray_Descr *PyArray_DTYPE(ndarray) nogil # returns borrowed reference to dtype! NP 1.7+ alias for descr.
|
| 446 |
+
int PyArray_FLAGS(ndarray) nogil
|
| 447 |
+
void PyArray_CLEARFLAGS(ndarray, int flags) nogil # Added in NumPy 1.7
|
| 448 |
+
void PyArray_ENABLEFLAGS(ndarray, int flags) nogil # Added in NumPy 1.7
|
| 449 |
+
npy_intp PyArray_ITEMSIZE(ndarray) nogil
|
| 450 |
+
int PyArray_TYPE(ndarray arr) nogil
|
| 451 |
+
|
| 452 |
+
object PyArray_GETITEM(ndarray arr, void *itemptr)
|
| 453 |
+
int PyArray_SETITEM(ndarray arr, void *itemptr, object obj) except -1
|
| 454 |
+
|
| 455 |
+
bint PyTypeNum_ISBOOL(int) nogil
|
| 456 |
+
bint PyTypeNum_ISUNSIGNED(int) nogil
|
| 457 |
+
bint PyTypeNum_ISSIGNED(int) nogil
|
| 458 |
+
bint PyTypeNum_ISINTEGER(int) nogil
|
| 459 |
+
bint PyTypeNum_ISFLOAT(int) nogil
|
| 460 |
+
bint PyTypeNum_ISNUMBER(int) nogil
|
| 461 |
+
bint PyTypeNum_ISSTRING(int) nogil
|
| 462 |
+
bint PyTypeNum_ISCOMPLEX(int) nogil
|
| 463 |
+
bint PyTypeNum_ISFLEXIBLE(int) nogil
|
| 464 |
+
bint PyTypeNum_ISUSERDEF(int) nogil
|
| 465 |
+
bint PyTypeNum_ISEXTENDED(int) nogil
|
| 466 |
+
bint PyTypeNum_ISOBJECT(int) nogil
|
| 467 |
+
|
| 468 |
+
npy_intp PyDataType_ELSIZE(dtype) nogil
|
| 469 |
+
npy_intp PyDataType_ALIGNMENT(dtype) nogil
|
| 470 |
+
PyObject* PyDataType_METADATA(dtype) nogil
|
| 471 |
+
PyArray_ArrayDescr* PyDataType_SUBARRAY(dtype) nogil
|
| 472 |
+
PyObject* PyDataType_NAMES(dtype) nogil
|
| 473 |
+
PyObject* PyDataType_FIELDS(dtype) nogil
|
| 474 |
+
|
| 475 |
+
bint PyDataType_ISBOOL(dtype) nogil
|
| 476 |
+
bint PyDataType_ISUNSIGNED(dtype) nogil
|
| 477 |
+
bint PyDataType_ISSIGNED(dtype) nogil
|
| 478 |
+
bint PyDataType_ISINTEGER(dtype) nogil
|
| 479 |
+
bint PyDataType_ISFLOAT(dtype) nogil
|
| 480 |
+
bint PyDataType_ISNUMBER(dtype) nogil
|
| 481 |
+
bint PyDataType_ISSTRING(dtype) nogil
|
| 482 |
+
bint PyDataType_ISCOMPLEX(dtype) nogil
|
| 483 |
+
bint PyDataType_ISFLEXIBLE(dtype) nogil
|
| 484 |
+
bint PyDataType_ISUSERDEF(dtype) nogil
|
| 485 |
+
bint PyDataType_ISEXTENDED(dtype) nogil
|
| 486 |
+
bint PyDataType_ISOBJECT(dtype) nogil
|
| 487 |
+
bint PyDataType_HASFIELDS(dtype) nogil
|
| 488 |
+
bint PyDataType_HASSUBARRAY(dtype) nogil
|
| 489 |
+
npy_uint64 PyDataType_FLAGS(dtype) nogil
|
| 490 |
+
|
| 491 |
+
bint PyArray_ISBOOL(ndarray) nogil
|
| 492 |
+
bint PyArray_ISUNSIGNED(ndarray) nogil
|
| 493 |
+
bint PyArray_ISSIGNED(ndarray) nogil
|
| 494 |
+
bint PyArray_ISINTEGER(ndarray) nogil
|
| 495 |
+
bint PyArray_ISFLOAT(ndarray) nogil
|
| 496 |
+
bint PyArray_ISNUMBER(ndarray) nogil
|
| 497 |
+
bint PyArray_ISSTRING(ndarray) nogil
|
| 498 |
+
bint PyArray_ISCOMPLEX(ndarray) nogil
|
| 499 |
+
bint PyArray_ISFLEXIBLE(ndarray) nogil
|
| 500 |
+
bint PyArray_ISUSERDEF(ndarray) nogil
|
| 501 |
+
bint PyArray_ISEXTENDED(ndarray) nogil
|
| 502 |
+
bint PyArray_ISOBJECT(ndarray) nogil
|
| 503 |
+
bint PyArray_HASFIELDS(ndarray) nogil
|
| 504 |
+
|
| 505 |
+
bint PyArray_ISVARIABLE(ndarray) nogil
|
| 506 |
+
|
| 507 |
+
bint PyArray_SAFEALIGNEDCOPY(ndarray) nogil
|
| 508 |
+
bint PyArray_ISNBO(char) nogil # works on ndarray.byteorder
|
| 509 |
+
bint PyArray_IsNativeByteOrder(char) nogil # works on ndarray.byteorder
|
| 510 |
+
bint PyArray_ISNOTSWAPPED(ndarray) nogil
|
| 511 |
+
bint PyArray_ISBYTESWAPPED(ndarray) nogil
|
| 512 |
+
|
| 513 |
+
bint PyArray_FLAGSWAP(ndarray, int) nogil
|
| 514 |
+
|
| 515 |
+
bint PyArray_ISCARRAY(ndarray) nogil
|
| 516 |
+
bint PyArray_ISCARRAY_RO(ndarray) nogil
|
| 517 |
+
bint PyArray_ISFARRAY(ndarray) nogil
|
| 518 |
+
bint PyArray_ISFARRAY_RO(ndarray) nogil
|
| 519 |
+
bint PyArray_ISBEHAVED(ndarray) nogil
|
| 520 |
+
bint PyArray_ISBEHAVED_RO(ndarray) nogil
|
| 521 |
+
|
| 522 |
+
|
| 523 |
+
bint PyDataType_ISNOTSWAPPED(dtype) nogil
|
| 524 |
+
bint PyDataType_ISBYTESWAPPED(dtype) nogil
|
| 525 |
+
|
| 526 |
+
bint PyArray_DescrCheck(object)
|
| 527 |
+
|
| 528 |
+
bint PyArray_Check(object)
|
| 529 |
+
bint PyArray_CheckExact(object)
|
| 530 |
+
|
| 531 |
+
# Cannot be supported due to out arg:
|
| 532 |
+
# bint PyArray_HasArrayInterfaceType(object, dtype, object, object&)
|
| 533 |
+
# bint PyArray_HasArrayInterface(op, out)
|
| 534 |
+
|
| 535 |
+
|
| 536 |
+
bint PyArray_IsZeroDim(object)
|
| 537 |
+
# Cannot be supported due to ## ## in macro:
|
| 538 |
+
# bint PyArray_IsScalar(object, verbatim work)
|
| 539 |
+
bint PyArray_CheckScalar(object)
|
| 540 |
+
bint PyArray_IsPythonNumber(object)
|
| 541 |
+
bint PyArray_IsPythonScalar(object)
|
| 542 |
+
bint PyArray_IsAnyScalar(object)
|
| 543 |
+
bint PyArray_CheckAnyScalar(object)
|
| 544 |
+
|
| 545 |
+
ndarray PyArray_GETCONTIGUOUS(ndarray)
|
| 546 |
+
bint PyArray_SAMESHAPE(ndarray, ndarray) nogil
|
| 547 |
+
npy_intp PyArray_SIZE(ndarray) nogil
|
| 548 |
+
npy_intp PyArray_NBYTES(ndarray) nogil
|
| 549 |
+
|
| 550 |
+
object PyArray_FROM_O(object)
|
| 551 |
+
object PyArray_FROM_OF(object m, int flags)
|
| 552 |
+
object PyArray_FROM_OT(object m, int type)
|
| 553 |
+
object PyArray_FROM_OTF(object m, int type, int flags)
|
| 554 |
+
object PyArray_FROMANY(object m, int type, int min, int max, int flags)
|
| 555 |
+
object PyArray_ZEROS(int nd, npy_intp* dims, int type, int fortran)
|
| 556 |
+
object PyArray_EMPTY(int nd, npy_intp* dims, int type, int fortran)
|
| 557 |
+
void PyArray_FILLWBYTE(ndarray, int val)
|
| 558 |
+
object PyArray_ContiguousFromAny(op, int, int min_depth, int max_depth)
|
| 559 |
+
unsigned char PyArray_EquivArrTypes(ndarray a1, ndarray a2)
|
| 560 |
+
bint PyArray_EquivByteorders(int b1, int b2) nogil
|
| 561 |
+
object PyArray_SimpleNew(int nd, npy_intp* dims, int typenum)
|
| 562 |
+
object PyArray_SimpleNewFromData(int nd, npy_intp* dims, int typenum, void* data)
|
| 563 |
+
#object PyArray_SimpleNewFromDescr(int nd, npy_intp* dims, dtype descr)
|
| 564 |
+
object PyArray_ToScalar(void* data, ndarray arr)
|
| 565 |
+
|
| 566 |
+
void* PyArray_GETPTR1(ndarray m, npy_intp i) nogil
|
| 567 |
+
void* PyArray_GETPTR2(ndarray m, npy_intp i, npy_intp j) nogil
|
| 568 |
+
void* PyArray_GETPTR3(ndarray m, npy_intp i, npy_intp j, npy_intp k) nogil
|
| 569 |
+
void* PyArray_GETPTR4(ndarray m, npy_intp i, npy_intp j, npy_intp k, npy_intp l) nogil
|
| 570 |
+
|
| 571 |
+
# Cannot be supported due to out arg
|
| 572 |
+
# void PyArray_DESCR_REPLACE(descr)
|
| 573 |
+
|
| 574 |
+
|
| 575 |
+
object PyArray_Copy(ndarray)
|
| 576 |
+
object PyArray_FromObject(object op, int type, int min_depth, int max_depth)
|
| 577 |
+
object PyArray_ContiguousFromObject(object op, int type, int min_depth, int max_depth)
|
| 578 |
+
object PyArray_CopyFromObject(object op, int type, int min_depth, int max_depth)
|
| 579 |
+
|
| 580 |
+
object PyArray_Cast(ndarray mp, int type_num)
|
| 581 |
+
object PyArray_Take(ndarray ap, object items, int axis)
|
| 582 |
+
object PyArray_Put(ndarray ap, object items, object values)
|
| 583 |
+
|
| 584 |
+
void PyArray_ITER_RESET(flatiter it) nogil
|
| 585 |
+
void PyArray_ITER_NEXT(flatiter it) nogil
|
| 586 |
+
void PyArray_ITER_GOTO(flatiter it, npy_intp* destination) nogil
|
| 587 |
+
void PyArray_ITER_GOTO1D(flatiter it, npy_intp ind) nogil
|
| 588 |
+
void* PyArray_ITER_DATA(flatiter it) nogil
|
| 589 |
+
bint PyArray_ITER_NOTDONE(flatiter it) nogil
|
| 590 |
+
|
| 591 |
+
void PyArray_MultiIter_RESET(broadcast multi) nogil
|
| 592 |
+
void PyArray_MultiIter_NEXT(broadcast multi) nogil
|
| 593 |
+
void PyArray_MultiIter_GOTO(broadcast multi, npy_intp dest) nogil
|
| 594 |
+
void PyArray_MultiIter_GOTO1D(broadcast multi, npy_intp ind) nogil
|
| 595 |
+
void* PyArray_MultiIter_DATA(broadcast multi, npy_intp i) nogil
|
| 596 |
+
void PyArray_MultiIter_NEXTi(broadcast multi, npy_intp i) nogil
|
| 597 |
+
bint PyArray_MultiIter_NOTDONE(broadcast multi) nogil
|
| 598 |
+
npy_intp PyArray_MultiIter_SIZE(broadcast multi) nogil
|
| 599 |
+
int PyArray_MultiIter_NDIM(broadcast multi) nogil
|
| 600 |
+
npy_intp PyArray_MultiIter_INDEX(broadcast multi) nogil
|
| 601 |
+
int PyArray_MultiIter_NUMITER(broadcast multi) nogil
|
| 602 |
+
npy_intp* PyArray_MultiIter_DIMS(broadcast multi) nogil
|
| 603 |
+
void** PyArray_MultiIter_ITERS(broadcast multi) nogil
|
| 604 |
+
|
| 605 |
+
# Functions from __multiarray_api.h
|
| 606 |
+
|
| 607 |
+
# Functions taking dtype and returning object/ndarray are disabled
|
| 608 |
+
# for now as they steal dtype references. I'm conservative and disable
|
| 609 |
+
# more than is probably needed until it can be checked further.
|
| 610 |
+
int PyArray_INCREF (ndarray) except * # uses PyArray_Item_INCREF...
|
| 611 |
+
int PyArray_XDECREF (ndarray) except * # uses PyArray_Item_DECREF...
|
| 612 |
+
dtype PyArray_DescrFromType (int)
|
| 613 |
+
object PyArray_TypeObjectFromType (int)
|
| 614 |
+
char * PyArray_Zero (ndarray)
|
| 615 |
+
char * PyArray_One (ndarray)
|
| 616 |
+
#object PyArray_CastToType (ndarray, dtype, int)
|
| 617 |
+
int PyArray_CanCastSafely (int, int) # writes errors
|
| 618 |
+
npy_bool PyArray_CanCastTo (dtype, dtype) # writes errors
|
| 619 |
+
int PyArray_ObjectType (object, int) except 0
|
| 620 |
+
dtype PyArray_DescrFromObject (object, dtype)
|
| 621 |
+
#ndarray* PyArray_ConvertToCommonType (object, int *)
|
| 622 |
+
dtype PyArray_DescrFromScalar (object)
|
| 623 |
+
dtype PyArray_DescrFromTypeObject (object)
|
| 624 |
+
npy_intp PyArray_Size (object)
|
| 625 |
+
#object PyArray_Scalar (void *, dtype, object)
|
| 626 |
+
#object PyArray_FromScalar (object, dtype)
|
| 627 |
+
void PyArray_ScalarAsCtype (object, void *)
|
| 628 |
+
#int PyArray_CastScalarToCtype (object, void *, dtype)
|
| 629 |
+
#int PyArray_CastScalarDirect (object, dtype, void *, int)
|
| 630 |
+
#PyArray_VectorUnaryFunc * PyArray_GetCastFunc (dtype, int)
|
| 631 |
+
#object PyArray_FromAny (object, dtype, int, int, int, object)
|
| 632 |
+
object PyArray_EnsureArray (object)
|
| 633 |
+
object PyArray_EnsureAnyArray (object)
|
| 634 |
+
#object PyArray_FromFile (stdio.FILE *, dtype, npy_intp, char *)
|
| 635 |
+
#object PyArray_FromString (char *, npy_intp, dtype, npy_intp, char *)
|
| 636 |
+
#object PyArray_FromBuffer (object, dtype, npy_intp, npy_intp)
|
| 637 |
+
#object PyArray_FromIter (object, dtype, npy_intp)
|
| 638 |
+
object PyArray_Return (ndarray)
|
| 639 |
+
#object PyArray_GetField (ndarray, dtype, int)
|
| 640 |
+
#int PyArray_SetField (ndarray, dtype, int, object) except -1
|
| 641 |
+
object PyArray_Byteswap (ndarray, npy_bool)
|
| 642 |
+
object PyArray_Resize (ndarray, PyArray_Dims *, int, NPY_ORDER)
|
| 643 |
+
int PyArray_CopyInto (ndarray, ndarray) except -1
|
| 644 |
+
int PyArray_CopyAnyInto (ndarray, ndarray) except -1
|
| 645 |
+
int PyArray_CopyObject (ndarray, object) except -1
|
| 646 |
+
object PyArray_NewCopy (ndarray, NPY_ORDER)
|
| 647 |
+
object PyArray_ToList (ndarray)
|
| 648 |
+
object PyArray_ToString (ndarray, NPY_ORDER)
|
| 649 |
+
int PyArray_ToFile (ndarray, stdio.FILE *, char *, char *) except -1
|
| 650 |
+
int PyArray_Dump (object, object, int) except -1
|
| 651 |
+
object PyArray_Dumps (object, int)
|
| 652 |
+
int PyArray_ValidType (int) # Cannot error
|
| 653 |
+
void PyArray_UpdateFlags (ndarray, int)
|
| 654 |
+
object PyArray_New (type, int, npy_intp *, int, npy_intp *, void *, int, int, object)
|
| 655 |
+
#object PyArray_NewFromDescr (type, dtype, int, npy_intp *, npy_intp *, void *, int, object)
|
| 656 |
+
#dtype PyArray_DescrNew (dtype)
|
| 657 |
+
dtype PyArray_DescrNewFromType (int)
|
| 658 |
+
double PyArray_GetPriority (object, double) # clears errors as of 1.25
|
| 659 |
+
object PyArray_IterNew (object)
|
| 660 |
+
object PyArray_MultiIterNew (int, ...)
|
| 661 |
+
|
| 662 |
+
int PyArray_PyIntAsInt (object) except? -1
|
| 663 |
+
npy_intp PyArray_PyIntAsIntp (object)
|
| 664 |
+
int PyArray_Broadcast (broadcast) except -1
|
| 665 |
+
int PyArray_FillWithScalar (ndarray, object) except -1
|
| 666 |
+
npy_bool PyArray_CheckStrides (int, int, npy_intp, npy_intp, npy_intp *, npy_intp *)
|
| 667 |
+
dtype PyArray_DescrNewByteorder (dtype, char)
|
| 668 |
+
object PyArray_IterAllButAxis (object, int *)
|
| 669 |
+
#object PyArray_CheckFromAny (object, dtype, int, int, int, object)
|
| 670 |
+
#object PyArray_FromArray (ndarray, dtype, int)
|
| 671 |
+
object PyArray_FromInterface (object)
|
| 672 |
+
object PyArray_FromStructInterface (object)
|
| 673 |
+
#object PyArray_FromArrayAttr (object, dtype, object)
|
| 674 |
+
#NPY_SCALARKIND PyArray_ScalarKind (int, ndarray*)
|
| 675 |
+
int PyArray_CanCoerceScalar (int, int, NPY_SCALARKIND)
|
| 676 |
+
npy_bool PyArray_CanCastScalar (type, type)
|
| 677 |
+
int PyArray_RemoveSmallest (broadcast) except -1
|
| 678 |
+
int PyArray_ElementStrides (object)
|
| 679 |
+
void PyArray_Item_INCREF (char *, dtype) except *
|
| 680 |
+
void PyArray_Item_XDECREF (char *, dtype) except *
|
| 681 |
+
object PyArray_Transpose (ndarray, PyArray_Dims *)
|
| 682 |
+
object PyArray_TakeFrom (ndarray, object, int, ndarray, NPY_CLIPMODE)
|
| 683 |
+
object PyArray_PutTo (ndarray, object, object, NPY_CLIPMODE)
|
| 684 |
+
object PyArray_PutMask (ndarray, object, object)
|
| 685 |
+
object PyArray_Repeat (ndarray, object, int)
|
| 686 |
+
object PyArray_Choose (ndarray, object, ndarray, NPY_CLIPMODE)
|
| 687 |
+
int PyArray_Sort (ndarray, int, NPY_SORTKIND) except -1
|
| 688 |
+
object PyArray_ArgSort (ndarray, int, NPY_SORTKIND)
|
| 689 |
+
object PyArray_SearchSorted (ndarray, object, NPY_SEARCHSIDE, PyObject *)
|
| 690 |
+
object PyArray_ArgMax (ndarray, int, ndarray)
|
| 691 |
+
object PyArray_ArgMin (ndarray, int, ndarray)
|
| 692 |
+
object PyArray_Reshape (ndarray, object)
|
| 693 |
+
object PyArray_Newshape (ndarray, PyArray_Dims *, NPY_ORDER)
|
| 694 |
+
object PyArray_Squeeze (ndarray)
|
| 695 |
+
#object PyArray_View (ndarray, dtype, type)
|
| 696 |
+
object PyArray_SwapAxes (ndarray, int, int)
|
| 697 |
+
object PyArray_Max (ndarray, int, ndarray)
|
| 698 |
+
object PyArray_Min (ndarray, int, ndarray)
|
| 699 |
+
object PyArray_Ptp (ndarray, int, ndarray)
|
| 700 |
+
object PyArray_Mean (ndarray, int, int, ndarray)
|
| 701 |
+
object PyArray_Trace (ndarray, int, int, int, int, ndarray)
|
| 702 |
+
object PyArray_Diagonal (ndarray, int, int, int)
|
| 703 |
+
object PyArray_Clip (ndarray, object, object, ndarray)
|
| 704 |
+
object PyArray_Conjugate (ndarray, ndarray)
|
| 705 |
+
object PyArray_Nonzero (ndarray)
|
| 706 |
+
object PyArray_Std (ndarray, int, int, ndarray, int)
|
| 707 |
+
object PyArray_Sum (ndarray, int, int, ndarray)
|
| 708 |
+
object PyArray_CumSum (ndarray, int, int, ndarray)
|
| 709 |
+
object PyArray_Prod (ndarray, int, int, ndarray)
|
| 710 |
+
object PyArray_CumProd (ndarray, int, int, ndarray)
|
| 711 |
+
object PyArray_All (ndarray, int, ndarray)
|
| 712 |
+
object PyArray_Any (ndarray, int, ndarray)
|
| 713 |
+
object PyArray_Compress (ndarray, object, int, ndarray)
|
| 714 |
+
object PyArray_Flatten (ndarray, NPY_ORDER)
|
| 715 |
+
object PyArray_Ravel (ndarray, NPY_ORDER)
|
| 716 |
+
npy_intp PyArray_MultiplyList (npy_intp *, int)
|
| 717 |
+
int PyArray_MultiplyIntList (int *, int)
|
| 718 |
+
void * PyArray_GetPtr (ndarray, npy_intp*)
|
| 719 |
+
int PyArray_CompareLists (npy_intp *, npy_intp *, int)
|
| 720 |
+
#int PyArray_AsCArray (object*, void *, npy_intp *, int, dtype)
|
| 721 |
+
int PyArray_Free (object, void *)
|
| 722 |
+
#int PyArray_Converter (object, object*)
|
| 723 |
+
int PyArray_IntpFromSequence (object, npy_intp *, int) except -1
|
| 724 |
+
object PyArray_Concatenate (object, int)
|
| 725 |
+
object PyArray_InnerProduct (object, object)
|
| 726 |
+
object PyArray_MatrixProduct (object, object)
|
| 727 |
+
object PyArray_Correlate (object, object, int)
|
| 728 |
+
#int PyArray_DescrConverter (object, dtype*) except 0
|
| 729 |
+
#int PyArray_DescrConverter2 (object, dtype*) except 0
|
| 730 |
+
int PyArray_IntpConverter (object, PyArray_Dims *) except 0
|
| 731 |
+
#int PyArray_BufferConverter (object, chunk) except 0
|
| 732 |
+
int PyArray_AxisConverter (object, int *) except 0
|
| 733 |
+
int PyArray_BoolConverter (object, npy_bool *) except 0
|
| 734 |
+
int PyArray_ByteorderConverter (object, char *) except 0
|
| 735 |
+
int PyArray_OrderConverter (object, NPY_ORDER *) except 0
|
| 736 |
+
unsigned char PyArray_EquivTypes (dtype, dtype) # clears errors
|
| 737 |
+
#object PyArray_Zeros (int, npy_intp *, dtype, int)
|
| 738 |
+
#object PyArray_Empty (int, npy_intp *, dtype, int)
|
| 739 |
+
object PyArray_Where (object, object, object)
|
| 740 |
+
object PyArray_Arange (double, double, double, int)
|
| 741 |
+
#object PyArray_ArangeObj (object, object, object, dtype)
|
| 742 |
+
int PyArray_SortkindConverter (object, NPY_SORTKIND *) except 0
|
| 743 |
+
object PyArray_LexSort (object, int)
|
| 744 |
+
object PyArray_Round (ndarray, int, ndarray)
|
| 745 |
+
unsigned char PyArray_EquivTypenums (int, int)
|
| 746 |
+
int PyArray_RegisterDataType (dtype) except -1
|
| 747 |
+
int PyArray_RegisterCastFunc (dtype, int, PyArray_VectorUnaryFunc *) except -1
|
| 748 |
+
int PyArray_RegisterCanCast (dtype, int, NPY_SCALARKIND) except -1
|
| 749 |
+
#void PyArray_InitArrFuncs (PyArray_ArrFuncs *)
|
| 750 |
+
object PyArray_IntTupleFromIntp (int, npy_intp *)
|
| 751 |
+
int PyArray_ClipmodeConverter (object, NPY_CLIPMODE *) except 0
|
| 752 |
+
#int PyArray_OutputConverter (object, ndarray*) except 0
|
| 753 |
+
object PyArray_BroadcastToShape (object, npy_intp *, int)
|
| 754 |
+
#int PyArray_DescrAlignConverter (object, dtype*) except 0
|
| 755 |
+
#int PyArray_DescrAlignConverter2 (object, dtype*) except 0
|
| 756 |
+
int PyArray_SearchsideConverter (object, void *) except 0
|
| 757 |
+
object PyArray_CheckAxis (ndarray, int *, int)
|
| 758 |
+
npy_intp PyArray_OverflowMultiplyList (npy_intp *, int)
|
| 759 |
+
int PyArray_SetBaseObject(ndarray, base) except -1 # NOTE: steals a reference to base! Use "set_array_base()" instead.
|
| 760 |
+
|
| 761 |
+
# The memory handler functions require the NumPy 1.22 API
|
| 762 |
+
# and may require defining NPY_TARGET_VERSION
|
| 763 |
+
ctypedef struct PyDataMemAllocator:
|
| 764 |
+
void *ctx
|
| 765 |
+
void* (*malloc) (void *ctx, size_t size)
|
| 766 |
+
void* (*calloc) (void *ctx, size_t nelem, size_t elsize)
|
| 767 |
+
void* (*realloc) (void *ctx, void *ptr, size_t new_size)
|
| 768 |
+
void (*free) (void *ctx, void *ptr, size_t size)
|
| 769 |
+
|
| 770 |
+
ctypedef struct PyDataMem_Handler:
|
| 771 |
+
char* name
|
| 772 |
+
npy_uint8 version
|
| 773 |
+
PyDataMemAllocator allocator
|
| 774 |
+
|
| 775 |
+
object PyDataMem_SetHandler(object handler)
|
| 776 |
+
object PyDataMem_GetHandler()
|
| 777 |
+
|
| 778 |
+
# additional datetime related functions are defined below
|
| 779 |
+
|
| 780 |
+
|
| 781 |
+
# Typedefs that matches the runtime dtype objects in
|
| 782 |
+
# the numpy module.
|
| 783 |
+
|
| 784 |
+
# The ones that are commented out needs an IFDEF function
|
| 785 |
+
# in Cython to enable them only on the right systems.
|
| 786 |
+
|
| 787 |
+
ctypedef npy_int8 int8_t
|
| 788 |
+
ctypedef npy_int16 int16_t
|
| 789 |
+
ctypedef npy_int32 int32_t
|
| 790 |
+
ctypedef npy_int64 int64_t
|
| 791 |
+
#ctypedef npy_int96 int96_t
|
| 792 |
+
#ctypedef npy_int128 int128_t
|
| 793 |
+
|
| 794 |
+
ctypedef npy_uint8 uint8_t
|
| 795 |
+
ctypedef npy_uint16 uint16_t
|
| 796 |
+
ctypedef npy_uint32 uint32_t
|
| 797 |
+
ctypedef npy_uint64 uint64_t
|
| 798 |
+
#ctypedef npy_uint96 uint96_t
|
| 799 |
+
#ctypedef npy_uint128 uint128_t
|
| 800 |
+
|
| 801 |
+
ctypedef npy_float32 float32_t
|
| 802 |
+
ctypedef npy_float64 float64_t
|
| 803 |
+
#ctypedef npy_float80 float80_t
|
| 804 |
+
#ctypedef npy_float128 float128_t
|
| 805 |
+
|
| 806 |
+
ctypedef float complex complex64_t
|
| 807 |
+
ctypedef double complex complex128_t
|
| 808 |
+
|
| 809 |
+
ctypedef npy_longlong longlong_t
|
| 810 |
+
ctypedef npy_ulonglong ulonglong_t
|
| 811 |
+
|
| 812 |
+
ctypedef npy_intp intp_t
|
| 813 |
+
ctypedef npy_uintp uintp_t
|
| 814 |
+
|
| 815 |
+
ctypedef npy_double float_t
|
| 816 |
+
ctypedef npy_double double_t
|
| 817 |
+
ctypedef npy_longdouble longdouble_t
|
| 818 |
+
|
| 819 |
+
ctypedef float complex cfloat_t
|
| 820 |
+
ctypedef double complex cdouble_t
|
| 821 |
+
ctypedef double complex complex_t
|
| 822 |
+
ctypedef long double complex clongdouble_t
|
| 823 |
+
|
| 824 |
+
cdef inline object PyArray_MultiIterNew1(a):
|
| 825 |
+
return PyArray_MultiIterNew(1, <void*>a)
|
| 826 |
+
|
| 827 |
+
cdef inline object PyArray_MultiIterNew2(a, b):
|
| 828 |
+
return PyArray_MultiIterNew(2, <void*>a, <void*>b)
|
| 829 |
+
|
| 830 |
+
cdef inline object PyArray_MultiIterNew3(a, b, c):
|
| 831 |
+
return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
|
| 832 |
+
|
| 833 |
+
cdef inline object PyArray_MultiIterNew4(a, b, c, d):
|
| 834 |
+
return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
|
| 835 |
+
|
| 836 |
+
cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
|
| 837 |
+
return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
|
| 838 |
+
|
| 839 |
+
cdef inline tuple PyDataType_SHAPE(dtype d):
|
| 840 |
+
if PyDataType_HASSUBARRAY(d):
|
| 841 |
+
return <tuple>d.subarray.shape
|
| 842 |
+
else:
|
| 843 |
+
return ()
|
| 844 |
+
|
| 845 |
+
|
| 846 |
+
cdef extern from "numpy/ndarrayobject.h":
|
| 847 |
+
PyTypeObject PyTimedeltaArrType_Type
|
| 848 |
+
PyTypeObject PyDatetimeArrType_Type
|
| 849 |
+
ctypedef int64_t npy_timedelta
|
| 850 |
+
ctypedef int64_t npy_datetime
|
| 851 |
+
|
| 852 |
+
cdef extern from "numpy/ndarraytypes.h":
|
| 853 |
+
ctypedef struct PyArray_DatetimeMetaData:
|
| 854 |
+
NPY_DATETIMEUNIT base
|
| 855 |
+
int64_t num
|
| 856 |
+
|
| 857 |
+
ctypedef struct npy_datetimestruct:
|
| 858 |
+
int64_t year
|
| 859 |
+
int32_t month, day, hour, min, sec, us, ps, as
|
| 860 |
+
|
| 861 |
+
# Iterator API added in v1.6
|
| 862 |
+
#
|
| 863 |
+
# These don't match the definition in the C API because Cython can't wrap
|
| 864 |
+
# function pointers that return functions.
|
| 865 |
+
# https://github.com/cython/cython/issues/6720
|
| 866 |
+
ctypedef int (*NpyIter_IterNextFunc "NpyIter_IterNextFunc *")(NpyIter* it) noexcept nogil
|
| 867 |
+
ctypedef void (*NpyIter_GetMultiIndexFunc "NpyIter_GetMultiIndexFunc *")(NpyIter* it, npy_intp* outcoords) noexcept nogil
|
| 868 |
+
|
| 869 |
+
|
| 870 |
+
cdef extern from "numpy/arrayscalars.h":
|
| 871 |
+
|
| 872 |
+
# abstract types
|
| 873 |
+
ctypedef class numpy.generic [object PyObject]:
|
| 874 |
+
pass
|
| 875 |
+
ctypedef class numpy.number [object PyObject]:
|
| 876 |
+
pass
|
| 877 |
+
ctypedef class numpy.integer [object PyObject]:
|
| 878 |
+
pass
|
| 879 |
+
ctypedef class numpy.signedinteger [object PyObject]:
|
| 880 |
+
pass
|
| 881 |
+
ctypedef class numpy.unsignedinteger [object PyObject]:
|
| 882 |
+
pass
|
| 883 |
+
ctypedef class numpy.inexact [object PyObject]:
|
| 884 |
+
pass
|
| 885 |
+
ctypedef class numpy.floating [object PyObject]:
|
| 886 |
+
pass
|
| 887 |
+
ctypedef class numpy.complexfloating [object PyObject]:
|
| 888 |
+
pass
|
| 889 |
+
ctypedef class numpy.flexible [object PyObject]:
|
| 890 |
+
pass
|
| 891 |
+
ctypedef class numpy.character [object PyObject]:
|
| 892 |
+
pass
|
| 893 |
+
|
| 894 |
+
ctypedef struct PyDatetimeScalarObject:
|
| 895 |
+
# PyObject_HEAD
|
| 896 |
+
npy_datetime obval
|
| 897 |
+
PyArray_DatetimeMetaData obmeta
|
| 898 |
+
|
| 899 |
+
ctypedef struct PyTimedeltaScalarObject:
|
| 900 |
+
# PyObject_HEAD
|
| 901 |
+
npy_timedelta obval
|
| 902 |
+
PyArray_DatetimeMetaData obmeta
|
| 903 |
+
|
| 904 |
+
ctypedef enum NPY_DATETIMEUNIT:
|
| 905 |
+
NPY_FR_Y
|
| 906 |
+
NPY_FR_M
|
| 907 |
+
NPY_FR_W
|
| 908 |
+
NPY_FR_D
|
| 909 |
+
NPY_FR_B
|
| 910 |
+
NPY_FR_h
|
| 911 |
+
NPY_FR_m
|
| 912 |
+
NPY_FR_s
|
| 913 |
+
NPY_FR_ms
|
| 914 |
+
NPY_FR_us
|
| 915 |
+
NPY_FR_ns
|
| 916 |
+
NPY_FR_ps
|
| 917 |
+
NPY_FR_fs
|
| 918 |
+
NPY_FR_as
|
| 919 |
+
NPY_FR_GENERIC
|
| 920 |
+
|
| 921 |
+
|
| 922 |
+
cdef extern from "numpy/arrayobject.h":
|
| 923 |
+
# These are part of the C-API defined in `__multiarray_api.h`
|
| 924 |
+
|
| 925 |
+
# NumPy internal definitions in datetime_strings.c:
|
| 926 |
+
int get_datetime_iso_8601_strlen "NpyDatetime_GetDatetimeISO8601StrLen" (
|
| 927 |
+
int local, NPY_DATETIMEUNIT base)
|
| 928 |
+
int make_iso_8601_datetime "NpyDatetime_MakeISO8601Datetime" (
|
| 929 |
+
npy_datetimestruct *dts, char *outstr, npy_intp outlen,
|
| 930 |
+
int local, int utc, NPY_DATETIMEUNIT base, int tzoffset,
|
| 931 |
+
NPY_CASTING casting) except -1
|
| 932 |
+
|
| 933 |
+
# NumPy internal definition in datetime.c:
|
| 934 |
+
# May return 1 to indicate that object does not appear to be a datetime
|
| 935 |
+
# (returns 0 on success).
|
| 936 |
+
int convert_pydatetime_to_datetimestruct "NpyDatetime_ConvertPyDateTimeToDatetimeStruct" (
|
| 937 |
+
PyObject *obj, npy_datetimestruct *out,
|
| 938 |
+
NPY_DATETIMEUNIT *out_bestunit, int apply_tzinfo) except -1
|
| 939 |
+
int convert_datetime64_to_datetimestruct "NpyDatetime_ConvertDatetime64ToDatetimeStruct" (
|
| 940 |
+
PyArray_DatetimeMetaData *meta, npy_datetime dt,
|
| 941 |
+
npy_datetimestruct *out) except -1
|
| 942 |
+
int convert_datetimestruct_to_datetime64 "NpyDatetime_ConvertDatetimeStructToDatetime64"(
|
| 943 |
+
PyArray_DatetimeMetaData *meta, const npy_datetimestruct *dts,
|
| 944 |
+
npy_datetime *out) except -1
|
| 945 |
+
|
| 946 |
+
|
| 947 |
+
#
|
| 948 |
+
# ufunc API
|
| 949 |
+
#
|
| 950 |
+
|
| 951 |
+
cdef extern from "numpy/ufuncobject.h":
|
| 952 |
+
|
| 953 |
+
ctypedef void (*PyUFuncGenericFunction) (char **, npy_intp *, npy_intp *, void *)
|
| 954 |
+
|
| 955 |
+
ctypedef class numpy.ufunc [object PyUFuncObject, check_size ignore]:
|
| 956 |
+
cdef:
|
| 957 |
+
int nin, nout, nargs
|
| 958 |
+
int identity
|
| 959 |
+
PyUFuncGenericFunction *functions
|
| 960 |
+
void **data
|
| 961 |
+
int ntypes
|
| 962 |
+
int check_return
|
| 963 |
+
char *name
|
| 964 |
+
char *types
|
| 965 |
+
char *doc
|
| 966 |
+
void *ptr
|
| 967 |
+
PyObject *obj
|
| 968 |
+
PyObject *userloops
|
| 969 |
+
|
| 970 |
+
cdef enum:
|
| 971 |
+
PyUFunc_Zero
|
| 972 |
+
PyUFunc_One
|
| 973 |
+
PyUFunc_None
|
| 974 |
+
UFUNC_FPE_DIVIDEBYZERO
|
| 975 |
+
UFUNC_FPE_OVERFLOW
|
| 976 |
+
UFUNC_FPE_UNDERFLOW
|
| 977 |
+
UFUNC_FPE_INVALID
|
| 978 |
+
|
| 979 |
+
object PyUFunc_FromFuncAndData(PyUFuncGenericFunction *,
|
| 980 |
+
void **, char *, int, int, int, int, char *, char *, int)
|
| 981 |
+
int PyUFunc_RegisterLoopForType(ufunc, int,
|
| 982 |
+
PyUFuncGenericFunction, int *, void *) except -1
|
| 983 |
+
void PyUFunc_f_f_As_d_d \
|
| 984 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 985 |
+
void PyUFunc_d_d \
|
| 986 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 987 |
+
void PyUFunc_f_f \
|
| 988 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 989 |
+
void PyUFunc_g_g \
|
| 990 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 991 |
+
void PyUFunc_F_F_As_D_D \
|
| 992 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 993 |
+
void PyUFunc_F_F \
|
| 994 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 995 |
+
void PyUFunc_D_D \
|
| 996 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 997 |
+
void PyUFunc_G_G \
|
| 998 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 999 |
+
void PyUFunc_O_O \
|
| 1000 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1001 |
+
void PyUFunc_ff_f_As_dd_d \
|
| 1002 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1003 |
+
void PyUFunc_ff_f \
|
| 1004 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1005 |
+
void PyUFunc_dd_d \
|
| 1006 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1007 |
+
void PyUFunc_gg_g \
|
| 1008 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1009 |
+
void PyUFunc_FF_F_As_DD_D \
|
| 1010 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1011 |
+
void PyUFunc_DD_D \
|
| 1012 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1013 |
+
void PyUFunc_FF_F \
|
| 1014 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1015 |
+
void PyUFunc_GG_G \
|
| 1016 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1017 |
+
void PyUFunc_OO_O \
|
| 1018 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1019 |
+
void PyUFunc_O_O_method \
|
| 1020 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1021 |
+
void PyUFunc_OO_O_method \
|
| 1022 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1023 |
+
void PyUFunc_On_Om \
|
| 1024 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 1025 |
+
void PyUFunc_clearfperr()
|
| 1026 |
+
int PyUFunc_getfperr()
|
| 1027 |
+
int PyUFunc_ReplaceLoopBySignature \
|
| 1028 |
+
(ufunc, PyUFuncGenericFunction, int *, PyUFuncGenericFunction *)
|
| 1029 |
+
object PyUFunc_FromFuncAndDataAndSignature \
|
| 1030 |
+
(PyUFuncGenericFunction *, void **, char *, int, int, int,
|
| 1031 |
+
int, char *, char *, int, char *)
|
| 1032 |
+
|
| 1033 |
+
int _import_umath() except -1
|
| 1034 |
+
|
| 1035 |
+
cdef inline void set_array_base(ndarray arr, object base) except *:
|
| 1036 |
+
Py_INCREF(base) # important to do this before stealing the reference below!
|
| 1037 |
+
PyArray_SetBaseObject(arr, base)
|
| 1038 |
+
|
| 1039 |
+
cdef inline object get_array_base(ndarray arr):
|
| 1040 |
+
base = PyArray_BASE(arr)
|
| 1041 |
+
if base is NULL:
|
| 1042 |
+
return None
|
| 1043 |
+
return <object>base
|
| 1044 |
+
|
| 1045 |
+
# Versions of the import_* functions which are more suitable for
|
| 1046 |
+
# Cython code.
|
| 1047 |
+
cdef inline int import_array() except -1:
|
| 1048 |
+
try:
|
| 1049 |
+
__pyx_import_array()
|
| 1050 |
+
except Exception:
|
| 1051 |
+
raise ImportError("numpy._core.multiarray failed to import")
|
| 1052 |
+
|
| 1053 |
+
cdef inline int import_umath() except -1:
|
| 1054 |
+
try:
|
| 1055 |
+
_import_umath()
|
| 1056 |
+
except Exception:
|
| 1057 |
+
raise ImportError("numpy._core.umath failed to import")
|
| 1058 |
+
|
| 1059 |
+
cdef inline int import_ufunc() except -1:
|
| 1060 |
+
try:
|
| 1061 |
+
_import_umath()
|
| 1062 |
+
except Exception:
|
| 1063 |
+
raise ImportError("numpy._core.umath failed to import")
|
| 1064 |
+
|
| 1065 |
+
|
| 1066 |
+
cdef inline bint is_timedelta64_object(object obj) noexcept:
|
| 1067 |
+
"""
|
| 1068 |
+
Cython equivalent of `isinstance(obj, np.timedelta64)`
|
| 1069 |
+
|
| 1070 |
+
Parameters
|
| 1071 |
+
----------
|
| 1072 |
+
obj : object
|
| 1073 |
+
|
| 1074 |
+
Returns
|
| 1075 |
+
-------
|
| 1076 |
+
bool
|
| 1077 |
+
"""
|
| 1078 |
+
return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type)
|
| 1079 |
+
|
| 1080 |
+
|
| 1081 |
+
cdef inline bint is_datetime64_object(object obj) noexcept:
|
| 1082 |
+
"""
|
| 1083 |
+
Cython equivalent of `isinstance(obj, np.datetime64)`
|
| 1084 |
+
|
| 1085 |
+
Parameters
|
| 1086 |
+
----------
|
| 1087 |
+
obj : object
|
| 1088 |
+
|
| 1089 |
+
Returns
|
| 1090 |
+
-------
|
| 1091 |
+
bool
|
| 1092 |
+
"""
|
| 1093 |
+
return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type)
|
| 1094 |
+
|
| 1095 |
+
|
| 1096 |
+
cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil:
|
| 1097 |
+
"""
|
| 1098 |
+
returns the int64 value underlying scalar numpy datetime64 object
|
| 1099 |
+
|
| 1100 |
+
Note that to interpret this as a datetime, the corresponding unit is
|
| 1101 |
+
also needed. That can be found using `get_datetime64_unit`.
|
| 1102 |
+
"""
|
| 1103 |
+
return (<PyDatetimeScalarObject*>obj).obval
|
| 1104 |
+
|
| 1105 |
+
|
| 1106 |
+
cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil:
|
| 1107 |
+
"""
|
| 1108 |
+
returns the int64 value underlying scalar numpy timedelta64 object
|
| 1109 |
+
"""
|
| 1110 |
+
return (<PyTimedeltaScalarObject*>obj).obval
|
| 1111 |
+
|
| 1112 |
+
|
| 1113 |
+
cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil:
|
| 1114 |
+
"""
|
| 1115 |
+
returns the unit part of the dtype for a numpy datetime64 object.
|
| 1116 |
+
"""
|
| 1117 |
+
return <NPY_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base
|
| 1118 |
+
|
| 1119 |
+
|
| 1120 |
+
cdef extern from "numpy/arrayobject.h":
|
| 1121 |
+
|
| 1122 |
+
ctypedef struct NpyIter:
|
| 1123 |
+
pass
|
| 1124 |
+
|
| 1125 |
+
cdef enum:
|
| 1126 |
+
NPY_FAIL
|
| 1127 |
+
NPY_SUCCEED
|
| 1128 |
+
|
| 1129 |
+
cdef enum:
|
| 1130 |
+
# Track an index representing C order
|
| 1131 |
+
NPY_ITER_C_INDEX
|
| 1132 |
+
# Track an index representing Fortran order
|
| 1133 |
+
NPY_ITER_F_INDEX
|
| 1134 |
+
# Track a multi-index
|
| 1135 |
+
NPY_ITER_MULTI_INDEX
|
| 1136 |
+
# User code external to the iterator does the 1-dimensional innermost loop
|
| 1137 |
+
NPY_ITER_EXTERNAL_LOOP
|
| 1138 |
+
# Convert all the operands to a common data type
|
| 1139 |
+
NPY_ITER_COMMON_DTYPE
|
| 1140 |
+
# Operands may hold references, requiring API access during iteration
|
| 1141 |
+
NPY_ITER_REFS_OK
|
| 1142 |
+
# Zero-sized operands should be permitted, iteration checks IterSize for 0
|
| 1143 |
+
NPY_ITER_ZEROSIZE_OK
|
| 1144 |
+
# Permits reductions (size-0 stride with dimension size > 1)
|
| 1145 |
+
NPY_ITER_REDUCE_OK
|
| 1146 |
+
# Enables sub-range iteration
|
| 1147 |
+
NPY_ITER_RANGED
|
| 1148 |
+
# Enables buffering
|
| 1149 |
+
NPY_ITER_BUFFERED
|
| 1150 |
+
# When buffering is enabled, grows the inner loop if possible
|
| 1151 |
+
NPY_ITER_GROWINNER
|
| 1152 |
+
# Delay allocation of buffers until first Reset* call
|
| 1153 |
+
NPY_ITER_DELAY_BUFALLOC
|
| 1154 |
+
# When NPY_KEEPORDER is specified, disable reversing negative-stride axes
|
| 1155 |
+
NPY_ITER_DONT_NEGATE_STRIDES
|
| 1156 |
+
NPY_ITER_COPY_IF_OVERLAP
|
| 1157 |
+
# The operand will be read from and written to
|
| 1158 |
+
NPY_ITER_READWRITE
|
| 1159 |
+
# The operand will only be read from
|
| 1160 |
+
NPY_ITER_READONLY
|
| 1161 |
+
# The operand will only be written to
|
| 1162 |
+
NPY_ITER_WRITEONLY
|
| 1163 |
+
# The operand's data must be in native byte order
|
| 1164 |
+
NPY_ITER_NBO
|
| 1165 |
+
# The operand's data must be aligned
|
| 1166 |
+
NPY_ITER_ALIGNED
|
| 1167 |
+
# The operand's data must be contiguous (within the inner loop)
|
| 1168 |
+
NPY_ITER_CONTIG
|
| 1169 |
+
# The operand may be copied to satisfy requirements
|
| 1170 |
+
NPY_ITER_COPY
|
| 1171 |
+
# The operand may be copied with WRITEBACKIFCOPY to satisfy requirements
|
| 1172 |
+
NPY_ITER_UPDATEIFCOPY
|
| 1173 |
+
# Allocate the operand if it is NULL
|
| 1174 |
+
NPY_ITER_ALLOCATE
|
| 1175 |
+
# If an operand is allocated, don't use any subtype
|
| 1176 |
+
NPY_ITER_NO_SUBTYPE
|
| 1177 |
+
# This is a virtual array slot, operand is NULL but temporary data is there
|
| 1178 |
+
NPY_ITER_VIRTUAL
|
| 1179 |
+
# Require that the dimension match the iterator dimensions exactly
|
| 1180 |
+
NPY_ITER_NO_BROADCAST
|
| 1181 |
+
# A mask is being used on this array, affects buffer -> array copy
|
| 1182 |
+
NPY_ITER_WRITEMASKED
|
| 1183 |
+
# This array is the mask for all WRITEMASKED operands
|
| 1184 |
+
NPY_ITER_ARRAYMASK
|
| 1185 |
+
# Assume iterator order data access for COPY_IF_OVERLAP
|
| 1186 |
+
NPY_ITER_OVERLAP_ASSUME_ELEMENTWISE
|
| 1187 |
+
|
| 1188 |
+
# construction and destruction functions
|
| 1189 |
+
NpyIter* NpyIter_New(ndarray arr, npy_uint32 flags, NPY_ORDER order,
|
| 1190 |
+
NPY_CASTING casting, dtype datatype) except NULL
|
| 1191 |
+
NpyIter* NpyIter_MultiNew(npy_intp nop, PyArrayObject** op, npy_uint32 flags,
|
| 1192 |
+
NPY_ORDER order, NPY_CASTING casting, npy_uint32*
|
| 1193 |
+
op_flags, PyArray_Descr** op_dtypes) except NULL
|
| 1194 |
+
NpyIter* NpyIter_AdvancedNew(npy_intp nop, PyArrayObject** op,
|
| 1195 |
+
npy_uint32 flags, NPY_ORDER order,
|
| 1196 |
+
NPY_CASTING casting, npy_uint32* op_flags,
|
| 1197 |
+
PyArray_Descr** op_dtypes, int oa_ndim,
|
| 1198 |
+
int** op_axes, const npy_intp* itershape,
|
| 1199 |
+
npy_intp buffersize) except NULL
|
| 1200 |
+
NpyIter* NpyIter_Copy(NpyIter* it) except NULL
|
| 1201 |
+
int NpyIter_RemoveAxis(NpyIter* it, int axis) except NPY_FAIL
|
| 1202 |
+
int NpyIter_RemoveMultiIndex(NpyIter* it) except NPY_FAIL
|
| 1203 |
+
int NpyIter_EnableExternalLoop(NpyIter* it) except NPY_FAIL
|
| 1204 |
+
int NpyIter_Deallocate(NpyIter* it) except NPY_FAIL
|
| 1205 |
+
int NpyIter_Reset(NpyIter* it, char** errmsg) except NPY_FAIL
|
| 1206 |
+
int NpyIter_ResetToIterIndexRange(NpyIter* it, npy_intp istart,
|
| 1207 |
+
npy_intp iend, char** errmsg) except NPY_FAIL
|
| 1208 |
+
int NpyIter_ResetBasePointers(NpyIter* it, char** baseptrs, char** errmsg) except NPY_FAIL
|
| 1209 |
+
int NpyIter_GotoMultiIndex(NpyIter* it, const npy_intp* multi_index) except NPY_FAIL
|
| 1210 |
+
int NpyIter_GotoIndex(NpyIter* it, npy_intp index) except NPY_FAIL
|
| 1211 |
+
npy_intp NpyIter_GetIterSize(NpyIter* it) nogil
|
| 1212 |
+
npy_intp NpyIter_GetIterIndex(NpyIter* it) nogil
|
| 1213 |
+
void NpyIter_GetIterIndexRange(NpyIter* it, npy_intp* istart,
|
| 1214 |
+
npy_intp* iend) nogil
|
| 1215 |
+
int NpyIter_GotoIterIndex(NpyIter* it, npy_intp iterindex) except NPY_FAIL
|
| 1216 |
+
npy_bool NpyIter_HasDelayedBufAlloc(NpyIter* it) nogil
|
| 1217 |
+
npy_bool NpyIter_HasExternalLoop(NpyIter* it) nogil
|
| 1218 |
+
npy_bool NpyIter_HasMultiIndex(NpyIter* it) nogil
|
| 1219 |
+
npy_bool NpyIter_HasIndex(NpyIter* it) nogil
|
| 1220 |
+
npy_bool NpyIter_RequiresBuffering(NpyIter* it) nogil
|
| 1221 |
+
npy_bool NpyIter_IsBuffered(NpyIter* it) nogil
|
| 1222 |
+
npy_bool NpyIter_IsGrowInner(NpyIter* it) nogil
|
| 1223 |
+
npy_intp NpyIter_GetBufferSize(NpyIter* it) nogil
|
| 1224 |
+
int NpyIter_GetNDim(NpyIter* it) nogil
|
| 1225 |
+
int NpyIter_GetNOp(NpyIter* it) nogil
|
| 1226 |
+
npy_intp* NpyIter_GetAxisStrideArray(NpyIter* it, int axis) except NULL
|
| 1227 |
+
int NpyIter_GetShape(NpyIter* it, npy_intp* outshape) nogil
|
| 1228 |
+
PyArray_Descr** NpyIter_GetDescrArray(NpyIter* it)
|
| 1229 |
+
PyArrayObject** NpyIter_GetOperandArray(NpyIter* it)
|
| 1230 |
+
ndarray NpyIter_GetIterView(NpyIter* it, npy_intp i)
|
| 1231 |
+
void NpyIter_GetReadFlags(NpyIter* it, char* outreadflags)
|
| 1232 |
+
void NpyIter_GetWriteFlags(NpyIter* it, char* outwriteflags)
|
| 1233 |
+
int NpyIter_CreateCompatibleStrides(NpyIter* it, npy_intp itemsize,
|
| 1234 |
+
npy_intp* outstrides) except NPY_FAIL
|
| 1235 |
+
npy_bool NpyIter_IsFirstVisit(NpyIter* it, int iop) nogil
|
| 1236 |
+
# functions for iterating an NpyIter object
|
| 1237 |
+
#
|
| 1238 |
+
# These don't match the definition in the C API because Cython can't wrap
|
| 1239 |
+
# function pointers that return functions.
|
| 1240 |
+
NpyIter_IterNextFunc NpyIter_GetIterNext(NpyIter* it, char** errmsg) except NULL
|
| 1241 |
+
NpyIter_GetMultiIndexFunc NpyIter_GetGetMultiIndex(NpyIter* it,
|
| 1242 |
+
char** errmsg) except NULL
|
| 1243 |
+
char** NpyIter_GetDataPtrArray(NpyIter* it) nogil
|
| 1244 |
+
char** NpyIter_GetInitialDataPtrArray(NpyIter* it) nogil
|
| 1245 |
+
npy_intp* NpyIter_GetIndexPtr(NpyIter* it)
|
| 1246 |
+
npy_intp* NpyIter_GetInnerStrideArray(NpyIter* it) nogil
|
| 1247 |
+
npy_intp* NpyIter_GetInnerLoopSizePtr(NpyIter* it) nogil
|
| 1248 |
+
void NpyIter_GetInnerFixedStrideArray(NpyIter* it, npy_intp* outstrides) nogil
|
| 1249 |
+
npy_bool NpyIter_IterationNeedsAPI(NpyIter* it) nogil
|
| 1250 |
+
void NpyIter_DebugPrint(NpyIter* it)
|
.venv/lib/python3.10/site-packages/numpy/__init__.pxd
ADDED
|
@@ -0,0 +1,1164 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# NumPy static imports for Cython < 3.0
|
| 2 |
+
#
|
| 3 |
+
# If any of the PyArray_* functions are called, import_array must be
|
| 4 |
+
# called first.
|
| 5 |
+
#
|
| 6 |
+
# Author: Dag Sverre Seljebotn
|
| 7 |
+
#
|
| 8 |
+
|
| 9 |
+
DEF _buffer_format_string_len = 255
|
| 10 |
+
|
| 11 |
+
cimport cpython.buffer as pybuf
|
| 12 |
+
from cpython.ref cimport Py_INCREF
|
| 13 |
+
from cpython.mem cimport PyObject_Malloc, PyObject_Free
|
| 14 |
+
from cpython.object cimport PyObject, PyTypeObject
|
| 15 |
+
from cpython.buffer cimport PyObject_GetBuffer
|
| 16 |
+
from cpython.type cimport type
|
| 17 |
+
cimport libc.stdio as stdio
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
cdef extern from *:
|
| 21 |
+
# Leave a marker that the NumPy declarations came from NumPy itself and not from Cython.
|
| 22 |
+
# See https://github.com/cython/cython/issues/3573
|
| 23 |
+
"""
|
| 24 |
+
/* Using NumPy API declarations from "numpy/__init__.pxd" */
|
| 25 |
+
"""
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
cdef extern from "Python.h":
|
| 29 |
+
ctypedef int Py_intptr_t
|
| 30 |
+
bint PyObject_TypeCheck(object obj, PyTypeObject* type)
|
| 31 |
+
|
| 32 |
+
cdef extern from "numpy/arrayobject.h":
|
| 33 |
+
# It would be nice to use size_t and ssize_t, but ssize_t has special
|
| 34 |
+
# implicit conversion rules, so just use "long".
|
| 35 |
+
# Note: The actual type only matters for Cython promotion, so long
|
| 36 |
+
# is closer than int, but could lead to incorrect promotion.
|
| 37 |
+
# (Not to worrying, and always the status-quo.)
|
| 38 |
+
ctypedef signed long npy_intp
|
| 39 |
+
ctypedef unsigned long npy_uintp
|
| 40 |
+
|
| 41 |
+
ctypedef unsigned char npy_bool
|
| 42 |
+
|
| 43 |
+
ctypedef signed char npy_byte
|
| 44 |
+
ctypedef signed short npy_short
|
| 45 |
+
ctypedef signed int npy_int
|
| 46 |
+
ctypedef signed long npy_long
|
| 47 |
+
ctypedef signed long long npy_longlong
|
| 48 |
+
|
| 49 |
+
ctypedef unsigned char npy_ubyte
|
| 50 |
+
ctypedef unsigned short npy_ushort
|
| 51 |
+
ctypedef unsigned int npy_uint
|
| 52 |
+
ctypedef unsigned long npy_ulong
|
| 53 |
+
ctypedef unsigned long long npy_ulonglong
|
| 54 |
+
|
| 55 |
+
ctypedef float npy_float
|
| 56 |
+
ctypedef double npy_double
|
| 57 |
+
ctypedef long double npy_longdouble
|
| 58 |
+
|
| 59 |
+
ctypedef signed char npy_int8
|
| 60 |
+
ctypedef signed short npy_int16
|
| 61 |
+
ctypedef signed int npy_int32
|
| 62 |
+
ctypedef signed long long npy_int64
|
| 63 |
+
ctypedef signed long long npy_int96
|
| 64 |
+
ctypedef signed long long npy_int128
|
| 65 |
+
|
| 66 |
+
ctypedef unsigned char npy_uint8
|
| 67 |
+
ctypedef unsigned short npy_uint16
|
| 68 |
+
ctypedef unsigned int npy_uint32
|
| 69 |
+
ctypedef unsigned long long npy_uint64
|
| 70 |
+
ctypedef unsigned long long npy_uint96
|
| 71 |
+
ctypedef unsigned long long npy_uint128
|
| 72 |
+
|
| 73 |
+
ctypedef float npy_float32
|
| 74 |
+
ctypedef double npy_float64
|
| 75 |
+
ctypedef long double npy_float80
|
| 76 |
+
ctypedef long double npy_float96
|
| 77 |
+
ctypedef long double npy_float128
|
| 78 |
+
|
| 79 |
+
ctypedef struct npy_cfloat:
|
| 80 |
+
pass
|
| 81 |
+
|
| 82 |
+
ctypedef struct npy_cdouble:
|
| 83 |
+
pass
|
| 84 |
+
|
| 85 |
+
ctypedef struct npy_clongdouble:
|
| 86 |
+
pass
|
| 87 |
+
|
| 88 |
+
ctypedef struct npy_complex64:
|
| 89 |
+
pass
|
| 90 |
+
|
| 91 |
+
ctypedef struct npy_complex128:
|
| 92 |
+
pass
|
| 93 |
+
|
| 94 |
+
ctypedef struct npy_complex160:
|
| 95 |
+
pass
|
| 96 |
+
|
| 97 |
+
ctypedef struct npy_complex192:
|
| 98 |
+
pass
|
| 99 |
+
|
| 100 |
+
ctypedef struct npy_complex256:
|
| 101 |
+
pass
|
| 102 |
+
|
| 103 |
+
ctypedef struct PyArray_Dims:
|
| 104 |
+
npy_intp *ptr
|
| 105 |
+
int len
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
cdef enum NPY_TYPES:
|
| 109 |
+
NPY_BOOL
|
| 110 |
+
NPY_BYTE
|
| 111 |
+
NPY_UBYTE
|
| 112 |
+
NPY_SHORT
|
| 113 |
+
NPY_USHORT
|
| 114 |
+
NPY_INT
|
| 115 |
+
NPY_UINT
|
| 116 |
+
NPY_LONG
|
| 117 |
+
NPY_ULONG
|
| 118 |
+
NPY_LONGLONG
|
| 119 |
+
NPY_ULONGLONG
|
| 120 |
+
NPY_FLOAT
|
| 121 |
+
NPY_DOUBLE
|
| 122 |
+
NPY_LONGDOUBLE
|
| 123 |
+
NPY_CFLOAT
|
| 124 |
+
NPY_CDOUBLE
|
| 125 |
+
NPY_CLONGDOUBLE
|
| 126 |
+
NPY_OBJECT
|
| 127 |
+
NPY_STRING
|
| 128 |
+
NPY_UNICODE
|
| 129 |
+
NPY_VOID
|
| 130 |
+
NPY_DATETIME
|
| 131 |
+
NPY_TIMEDELTA
|
| 132 |
+
NPY_NTYPES_LEGACY
|
| 133 |
+
NPY_NOTYPE
|
| 134 |
+
|
| 135 |
+
NPY_INT8
|
| 136 |
+
NPY_INT16
|
| 137 |
+
NPY_INT32
|
| 138 |
+
NPY_INT64
|
| 139 |
+
NPY_INT128
|
| 140 |
+
NPY_INT256
|
| 141 |
+
NPY_UINT8
|
| 142 |
+
NPY_UINT16
|
| 143 |
+
NPY_UINT32
|
| 144 |
+
NPY_UINT64
|
| 145 |
+
NPY_UINT128
|
| 146 |
+
NPY_UINT256
|
| 147 |
+
NPY_FLOAT16
|
| 148 |
+
NPY_FLOAT32
|
| 149 |
+
NPY_FLOAT64
|
| 150 |
+
NPY_FLOAT80
|
| 151 |
+
NPY_FLOAT96
|
| 152 |
+
NPY_FLOAT128
|
| 153 |
+
NPY_FLOAT256
|
| 154 |
+
NPY_COMPLEX32
|
| 155 |
+
NPY_COMPLEX64
|
| 156 |
+
NPY_COMPLEX128
|
| 157 |
+
NPY_COMPLEX160
|
| 158 |
+
NPY_COMPLEX192
|
| 159 |
+
NPY_COMPLEX256
|
| 160 |
+
NPY_COMPLEX512
|
| 161 |
+
|
| 162 |
+
NPY_INTP
|
| 163 |
+
NPY_UINTP
|
| 164 |
+
NPY_DEFAULT_INT # Not a compile time constant (normally)!
|
| 165 |
+
|
| 166 |
+
ctypedef enum NPY_ORDER:
|
| 167 |
+
NPY_ANYORDER
|
| 168 |
+
NPY_CORDER
|
| 169 |
+
NPY_FORTRANORDER
|
| 170 |
+
NPY_KEEPORDER
|
| 171 |
+
|
| 172 |
+
ctypedef enum NPY_CASTING:
|
| 173 |
+
NPY_NO_CASTING
|
| 174 |
+
NPY_EQUIV_CASTING
|
| 175 |
+
NPY_SAFE_CASTING
|
| 176 |
+
NPY_SAME_KIND_CASTING
|
| 177 |
+
NPY_UNSAFE_CASTING
|
| 178 |
+
|
| 179 |
+
ctypedef enum NPY_CLIPMODE:
|
| 180 |
+
NPY_CLIP
|
| 181 |
+
NPY_WRAP
|
| 182 |
+
NPY_RAISE
|
| 183 |
+
|
| 184 |
+
ctypedef enum NPY_SCALARKIND:
|
| 185 |
+
NPY_NOSCALAR,
|
| 186 |
+
NPY_BOOL_SCALAR,
|
| 187 |
+
NPY_INTPOS_SCALAR,
|
| 188 |
+
NPY_INTNEG_SCALAR,
|
| 189 |
+
NPY_FLOAT_SCALAR,
|
| 190 |
+
NPY_COMPLEX_SCALAR,
|
| 191 |
+
NPY_OBJECT_SCALAR
|
| 192 |
+
|
| 193 |
+
ctypedef enum NPY_SORTKIND:
|
| 194 |
+
NPY_QUICKSORT
|
| 195 |
+
NPY_HEAPSORT
|
| 196 |
+
NPY_MERGESORT
|
| 197 |
+
|
| 198 |
+
ctypedef enum NPY_SEARCHSIDE:
|
| 199 |
+
NPY_SEARCHLEFT
|
| 200 |
+
NPY_SEARCHRIGHT
|
| 201 |
+
|
| 202 |
+
enum:
|
| 203 |
+
# DEPRECATED since NumPy 1.7 ! Do not use in new code!
|
| 204 |
+
NPY_C_CONTIGUOUS
|
| 205 |
+
NPY_F_CONTIGUOUS
|
| 206 |
+
NPY_CONTIGUOUS
|
| 207 |
+
NPY_FORTRAN
|
| 208 |
+
NPY_OWNDATA
|
| 209 |
+
NPY_FORCECAST
|
| 210 |
+
NPY_ENSURECOPY
|
| 211 |
+
NPY_ENSUREARRAY
|
| 212 |
+
NPY_ELEMENTSTRIDES
|
| 213 |
+
NPY_ALIGNED
|
| 214 |
+
NPY_NOTSWAPPED
|
| 215 |
+
NPY_WRITEABLE
|
| 216 |
+
NPY_ARR_HAS_DESCR
|
| 217 |
+
|
| 218 |
+
NPY_BEHAVED
|
| 219 |
+
NPY_BEHAVED_NS
|
| 220 |
+
NPY_CARRAY
|
| 221 |
+
NPY_CARRAY_RO
|
| 222 |
+
NPY_FARRAY
|
| 223 |
+
NPY_FARRAY_RO
|
| 224 |
+
NPY_DEFAULT
|
| 225 |
+
|
| 226 |
+
NPY_IN_ARRAY
|
| 227 |
+
NPY_OUT_ARRAY
|
| 228 |
+
NPY_INOUT_ARRAY
|
| 229 |
+
NPY_IN_FARRAY
|
| 230 |
+
NPY_OUT_FARRAY
|
| 231 |
+
NPY_INOUT_FARRAY
|
| 232 |
+
|
| 233 |
+
NPY_UPDATE_ALL
|
| 234 |
+
|
| 235 |
+
enum:
|
| 236 |
+
# Added in NumPy 1.7 to replace the deprecated enums above.
|
| 237 |
+
NPY_ARRAY_C_CONTIGUOUS
|
| 238 |
+
NPY_ARRAY_F_CONTIGUOUS
|
| 239 |
+
NPY_ARRAY_OWNDATA
|
| 240 |
+
NPY_ARRAY_FORCECAST
|
| 241 |
+
NPY_ARRAY_ENSURECOPY
|
| 242 |
+
NPY_ARRAY_ENSUREARRAY
|
| 243 |
+
NPY_ARRAY_ELEMENTSTRIDES
|
| 244 |
+
NPY_ARRAY_ALIGNED
|
| 245 |
+
NPY_ARRAY_NOTSWAPPED
|
| 246 |
+
NPY_ARRAY_WRITEABLE
|
| 247 |
+
NPY_ARRAY_WRITEBACKIFCOPY
|
| 248 |
+
|
| 249 |
+
NPY_ARRAY_BEHAVED
|
| 250 |
+
NPY_ARRAY_BEHAVED_NS
|
| 251 |
+
NPY_ARRAY_CARRAY
|
| 252 |
+
NPY_ARRAY_CARRAY_RO
|
| 253 |
+
NPY_ARRAY_FARRAY
|
| 254 |
+
NPY_ARRAY_FARRAY_RO
|
| 255 |
+
NPY_ARRAY_DEFAULT
|
| 256 |
+
|
| 257 |
+
NPY_ARRAY_IN_ARRAY
|
| 258 |
+
NPY_ARRAY_OUT_ARRAY
|
| 259 |
+
NPY_ARRAY_INOUT_ARRAY
|
| 260 |
+
NPY_ARRAY_IN_FARRAY
|
| 261 |
+
NPY_ARRAY_OUT_FARRAY
|
| 262 |
+
NPY_ARRAY_INOUT_FARRAY
|
| 263 |
+
|
| 264 |
+
NPY_ARRAY_UPDATE_ALL
|
| 265 |
+
|
| 266 |
+
cdef enum:
|
| 267 |
+
NPY_MAXDIMS # 64 on NumPy 2.x and 32 on NumPy 1.x
|
| 268 |
+
NPY_RAVEL_AXIS # Used for functions like PyArray_Mean
|
| 269 |
+
|
| 270 |
+
ctypedef void (*PyArray_VectorUnaryFunc)(void *, void *, npy_intp, void *, void *)
|
| 271 |
+
|
| 272 |
+
ctypedef struct PyArray_ArrayDescr:
|
| 273 |
+
# shape is a tuple, but Cython doesn't support "tuple shape"
|
| 274 |
+
# inside a non-PyObject declaration, so we have to declare it
|
| 275 |
+
# as just a PyObject*.
|
| 276 |
+
PyObject* shape
|
| 277 |
+
|
| 278 |
+
ctypedef struct PyArray_Descr:
|
| 279 |
+
pass
|
| 280 |
+
|
| 281 |
+
ctypedef class numpy.dtype [object PyArray_Descr, check_size ignore]:
|
| 282 |
+
# Use PyDataType_* macros when possible, however there are no macros
|
| 283 |
+
# for accessing some of the fields, so some are defined.
|
| 284 |
+
cdef PyTypeObject* typeobj
|
| 285 |
+
cdef char kind
|
| 286 |
+
cdef char type
|
| 287 |
+
# Numpy sometimes mutates this without warning (e.g. it'll
|
| 288 |
+
# sometimes change "|" to "<" in shared dtype objects on
|
| 289 |
+
# little-endian machines). If this matters to you, use
|
| 290 |
+
# PyArray_IsNativeByteOrder(dtype.byteorder) instead of
|
| 291 |
+
# directly accessing this field.
|
| 292 |
+
cdef char byteorder
|
| 293 |
+
# Flags are not directly accessible on Cython <3. Use PyDataType_FLAGS.
|
| 294 |
+
# cdef char flags
|
| 295 |
+
cdef int type_num
|
| 296 |
+
# itemsize/elsize, alignment, fields, names, and subarray must
|
| 297 |
+
# use the `PyDataType_*` accessor macros. With Cython 3 you can
|
| 298 |
+
# still use getter attributes `dtype.itemsize`
|
| 299 |
+
|
| 300 |
+
ctypedef class numpy.flatiter [object PyArrayIterObject, check_size ignore]:
|
| 301 |
+
# Use through macros
|
| 302 |
+
pass
|
| 303 |
+
|
| 304 |
+
ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
|
| 305 |
+
cdef int numiter
|
| 306 |
+
cdef npy_intp size, index
|
| 307 |
+
cdef int nd
|
| 308 |
+
cdef npy_intp *dimensions
|
| 309 |
+
cdef void **iters
|
| 310 |
+
|
| 311 |
+
ctypedef struct PyArrayObject:
|
| 312 |
+
# For use in situations where ndarray can't replace PyArrayObject*,
|
| 313 |
+
# like PyArrayObject**.
|
| 314 |
+
pass
|
| 315 |
+
|
| 316 |
+
ctypedef class numpy.ndarray [object PyArrayObject, check_size ignore]:
|
| 317 |
+
cdef __cythonbufferdefaults__ = {"mode": "strided"}
|
| 318 |
+
|
| 319 |
+
cdef:
|
| 320 |
+
# Only taking a few of the most commonly used and stable fields.
|
| 321 |
+
# One should use PyArray_* macros instead to access the C fields.
|
| 322 |
+
char *data
|
| 323 |
+
int ndim "nd"
|
| 324 |
+
npy_intp *shape "dimensions"
|
| 325 |
+
npy_intp *strides
|
| 326 |
+
dtype descr # deprecated since NumPy 1.7 !
|
| 327 |
+
PyObject* base # NOT PUBLIC, DO NOT USE !
|
| 328 |
+
|
| 329 |
+
|
| 330 |
+
int _import_array() except -1
|
| 331 |
+
# A second definition so _import_array isn't marked as used when we use it here.
|
| 332 |
+
# Do not use - subject to change any time.
|
| 333 |
+
int __pyx_import_array "_import_array"() except -1
|
| 334 |
+
|
| 335 |
+
#
|
| 336 |
+
# Macros from ndarrayobject.h
|
| 337 |
+
#
|
| 338 |
+
bint PyArray_CHKFLAGS(ndarray m, int flags) nogil
|
| 339 |
+
bint PyArray_IS_C_CONTIGUOUS(ndarray arr) nogil
|
| 340 |
+
bint PyArray_IS_F_CONTIGUOUS(ndarray arr) nogil
|
| 341 |
+
bint PyArray_ISCONTIGUOUS(ndarray m) nogil
|
| 342 |
+
bint PyArray_ISWRITEABLE(ndarray m) nogil
|
| 343 |
+
bint PyArray_ISALIGNED(ndarray m) nogil
|
| 344 |
+
|
| 345 |
+
int PyArray_NDIM(ndarray) nogil
|
| 346 |
+
bint PyArray_ISONESEGMENT(ndarray) nogil
|
| 347 |
+
bint PyArray_ISFORTRAN(ndarray) nogil
|
| 348 |
+
int PyArray_FORTRANIF(ndarray) nogil
|
| 349 |
+
|
| 350 |
+
void* PyArray_DATA(ndarray) nogil
|
| 351 |
+
char* PyArray_BYTES(ndarray) nogil
|
| 352 |
+
|
| 353 |
+
npy_intp* PyArray_DIMS(ndarray) nogil
|
| 354 |
+
npy_intp* PyArray_STRIDES(ndarray) nogil
|
| 355 |
+
npy_intp PyArray_DIM(ndarray, size_t) nogil
|
| 356 |
+
npy_intp PyArray_STRIDE(ndarray, size_t) nogil
|
| 357 |
+
|
| 358 |
+
PyObject *PyArray_BASE(ndarray) nogil # returns borrowed reference!
|
| 359 |
+
PyArray_Descr *PyArray_DESCR(ndarray) nogil # returns borrowed reference to dtype!
|
| 360 |
+
PyArray_Descr *PyArray_DTYPE(ndarray) nogil # returns borrowed reference to dtype! NP 1.7+ alias for descr.
|
| 361 |
+
int PyArray_FLAGS(ndarray) nogil
|
| 362 |
+
void PyArray_CLEARFLAGS(ndarray, int flags) nogil # Added in NumPy 1.7
|
| 363 |
+
void PyArray_ENABLEFLAGS(ndarray, int flags) nogil # Added in NumPy 1.7
|
| 364 |
+
npy_intp PyArray_ITEMSIZE(ndarray) nogil
|
| 365 |
+
int PyArray_TYPE(ndarray arr) nogil
|
| 366 |
+
|
| 367 |
+
object PyArray_GETITEM(ndarray arr, void *itemptr)
|
| 368 |
+
int PyArray_SETITEM(ndarray arr, void *itemptr, object obj) except -1
|
| 369 |
+
|
| 370 |
+
bint PyTypeNum_ISBOOL(int) nogil
|
| 371 |
+
bint PyTypeNum_ISUNSIGNED(int) nogil
|
| 372 |
+
bint PyTypeNum_ISSIGNED(int) nogil
|
| 373 |
+
bint PyTypeNum_ISINTEGER(int) nogil
|
| 374 |
+
bint PyTypeNum_ISFLOAT(int) nogil
|
| 375 |
+
bint PyTypeNum_ISNUMBER(int) nogil
|
| 376 |
+
bint PyTypeNum_ISSTRING(int) nogil
|
| 377 |
+
bint PyTypeNum_ISCOMPLEX(int) nogil
|
| 378 |
+
bint PyTypeNum_ISFLEXIBLE(int) nogil
|
| 379 |
+
bint PyTypeNum_ISUSERDEF(int) nogil
|
| 380 |
+
bint PyTypeNum_ISEXTENDED(int) nogil
|
| 381 |
+
bint PyTypeNum_ISOBJECT(int) nogil
|
| 382 |
+
|
| 383 |
+
npy_intp PyDataType_ELSIZE(dtype) nogil
|
| 384 |
+
npy_intp PyDataType_ALIGNMENT(dtype) nogil
|
| 385 |
+
PyObject* PyDataType_METADATA(dtype) nogil
|
| 386 |
+
PyArray_ArrayDescr* PyDataType_SUBARRAY(dtype) nogil
|
| 387 |
+
PyObject* PyDataType_NAMES(dtype) nogil
|
| 388 |
+
PyObject* PyDataType_FIELDS(dtype) nogil
|
| 389 |
+
|
| 390 |
+
bint PyDataType_ISBOOL(dtype) nogil
|
| 391 |
+
bint PyDataType_ISUNSIGNED(dtype) nogil
|
| 392 |
+
bint PyDataType_ISSIGNED(dtype) nogil
|
| 393 |
+
bint PyDataType_ISINTEGER(dtype) nogil
|
| 394 |
+
bint PyDataType_ISFLOAT(dtype) nogil
|
| 395 |
+
bint PyDataType_ISNUMBER(dtype) nogil
|
| 396 |
+
bint PyDataType_ISSTRING(dtype) nogil
|
| 397 |
+
bint PyDataType_ISCOMPLEX(dtype) nogil
|
| 398 |
+
bint PyDataType_ISFLEXIBLE(dtype) nogil
|
| 399 |
+
bint PyDataType_ISUSERDEF(dtype) nogil
|
| 400 |
+
bint PyDataType_ISEXTENDED(dtype) nogil
|
| 401 |
+
bint PyDataType_ISOBJECT(dtype) nogil
|
| 402 |
+
bint PyDataType_HASFIELDS(dtype) nogil
|
| 403 |
+
bint PyDataType_HASSUBARRAY(dtype) nogil
|
| 404 |
+
npy_uint64 PyDataType_FLAGS(dtype) nogil
|
| 405 |
+
|
| 406 |
+
bint PyArray_ISBOOL(ndarray) nogil
|
| 407 |
+
bint PyArray_ISUNSIGNED(ndarray) nogil
|
| 408 |
+
bint PyArray_ISSIGNED(ndarray) nogil
|
| 409 |
+
bint PyArray_ISINTEGER(ndarray) nogil
|
| 410 |
+
bint PyArray_ISFLOAT(ndarray) nogil
|
| 411 |
+
bint PyArray_ISNUMBER(ndarray) nogil
|
| 412 |
+
bint PyArray_ISSTRING(ndarray) nogil
|
| 413 |
+
bint PyArray_ISCOMPLEX(ndarray) nogil
|
| 414 |
+
bint PyArray_ISFLEXIBLE(ndarray) nogil
|
| 415 |
+
bint PyArray_ISUSERDEF(ndarray) nogil
|
| 416 |
+
bint PyArray_ISEXTENDED(ndarray) nogil
|
| 417 |
+
bint PyArray_ISOBJECT(ndarray) nogil
|
| 418 |
+
bint PyArray_HASFIELDS(ndarray) nogil
|
| 419 |
+
|
| 420 |
+
bint PyArray_ISVARIABLE(ndarray) nogil
|
| 421 |
+
|
| 422 |
+
bint PyArray_SAFEALIGNEDCOPY(ndarray) nogil
|
| 423 |
+
bint PyArray_ISNBO(char) nogil # works on ndarray.byteorder
|
| 424 |
+
bint PyArray_IsNativeByteOrder(char) nogil # works on ndarray.byteorder
|
| 425 |
+
bint PyArray_ISNOTSWAPPED(ndarray) nogil
|
| 426 |
+
bint PyArray_ISBYTESWAPPED(ndarray) nogil
|
| 427 |
+
|
| 428 |
+
bint PyArray_FLAGSWAP(ndarray, int) nogil
|
| 429 |
+
|
| 430 |
+
bint PyArray_ISCARRAY(ndarray) nogil
|
| 431 |
+
bint PyArray_ISCARRAY_RO(ndarray) nogil
|
| 432 |
+
bint PyArray_ISFARRAY(ndarray) nogil
|
| 433 |
+
bint PyArray_ISFARRAY_RO(ndarray) nogil
|
| 434 |
+
bint PyArray_ISBEHAVED(ndarray) nogil
|
| 435 |
+
bint PyArray_ISBEHAVED_RO(ndarray) nogil
|
| 436 |
+
|
| 437 |
+
|
| 438 |
+
bint PyDataType_ISNOTSWAPPED(dtype) nogil
|
| 439 |
+
bint PyDataType_ISBYTESWAPPED(dtype) nogil
|
| 440 |
+
|
| 441 |
+
bint PyArray_DescrCheck(object)
|
| 442 |
+
|
| 443 |
+
bint PyArray_Check(object)
|
| 444 |
+
bint PyArray_CheckExact(object)
|
| 445 |
+
|
| 446 |
+
# Cannot be supported due to out arg:
|
| 447 |
+
# bint PyArray_HasArrayInterfaceType(object, dtype, object, object&)
|
| 448 |
+
# bint PyArray_HasArrayInterface(op, out)
|
| 449 |
+
|
| 450 |
+
|
| 451 |
+
bint PyArray_IsZeroDim(object)
|
| 452 |
+
# Cannot be supported due to ## ## in macro:
|
| 453 |
+
# bint PyArray_IsScalar(object, verbatim work)
|
| 454 |
+
bint PyArray_CheckScalar(object)
|
| 455 |
+
bint PyArray_IsPythonNumber(object)
|
| 456 |
+
bint PyArray_IsPythonScalar(object)
|
| 457 |
+
bint PyArray_IsAnyScalar(object)
|
| 458 |
+
bint PyArray_CheckAnyScalar(object)
|
| 459 |
+
|
| 460 |
+
ndarray PyArray_GETCONTIGUOUS(ndarray)
|
| 461 |
+
bint PyArray_SAMESHAPE(ndarray, ndarray) nogil
|
| 462 |
+
npy_intp PyArray_SIZE(ndarray) nogil
|
| 463 |
+
npy_intp PyArray_NBYTES(ndarray) nogil
|
| 464 |
+
|
| 465 |
+
object PyArray_FROM_O(object)
|
| 466 |
+
object PyArray_FROM_OF(object m, int flags)
|
| 467 |
+
object PyArray_FROM_OT(object m, int type)
|
| 468 |
+
object PyArray_FROM_OTF(object m, int type, int flags)
|
| 469 |
+
object PyArray_FROMANY(object m, int type, int min, int max, int flags)
|
| 470 |
+
object PyArray_ZEROS(int nd, npy_intp* dims, int type, int fortran)
|
| 471 |
+
object PyArray_EMPTY(int nd, npy_intp* dims, int type, int fortran)
|
| 472 |
+
void PyArray_FILLWBYTE(ndarray, int val)
|
| 473 |
+
object PyArray_ContiguousFromAny(op, int, int min_depth, int max_depth)
|
| 474 |
+
unsigned char PyArray_EquivArrTypes(ndarray a1, ndarray a2)
|
| 475 |
+
bint PyArray_EquivByteorders(int b1, int b2) nogil
|
| 476 |
+
object PyArray_SimpleNew(int nd, npy_intp* dims, int typenum)
|
| 477 |
+
object PyArray_SimpleNewFromData(int nd, npy_intp* dims, int typenum, void* data)
|
| 478 |
+
#object PyArray_SimpleNewFromDescr(int nd, npy_intp* dims, dtype descr)
|
| 479 |
+
object PyArray_ToScalar(void* data, ndarray arr)
|
| 480 |
+
|
| 481 |
+
void* PyArray_GETPTR1(ndarray m, npy_intp i) nogil
|
| 482 |
+
void* PyArray_GETPTR2(ndarray m, npy_intp i, npy_intp j) nogil
|
| 483 |
+
void* PyArray_GETPTR3(ndarray m, npy_intp i, npy_intp j, npy_intp k) nogil
|
| 484 |
+
void* PyArray_GETPTR4(ndarray m, npy_intp i, npy_intp j, npy_intp k, npy_intp l) nogil
|
| 485 |
+
|
| 486 |
+
# Cannot be supported due to out arg
|
| 487 |
+
# void PyArray_DESCR_REPLACE(descr)
|
| 488 |
+
|
| 489 |
+
|
| 490 |
+
object PyArray_Copy(ndarray)
|
| 491 |
+
object PyArray_FromObject(object op, int type, int min_depth, int max_depth)
|
| 492 |
+
object PyArray_ContiguousFromObject(object op, int type, int min_depth, int max_depth)
|
| 493 |
+
object PyArray_CopyFromObject(object op, int type, int min_depth, int max_depth)
|
| 494 |
+
|
| 495 |
+
object PyArray_Cast(ndarray mp, int type_num)
|
| 496 |
+
object PyArray_Take(ndarray ap, object items, int axis)
|
| 497 |
+
object PyArray_Put(ndarray ap, object items, object values)
|
| 498 |
+
|
| 499 |
+
void PyArray_ITER_RESET(flatiter it) nogil
|
| 500 |
+
void PyArray_ITER_NEXT(flatiter it) nogil
|
| 501 |
+
void PyArray_ITER_GOTO(flatiter it, npy_intp* destination) nogil
|
| 502 |
+
void PyArray_ITER_GOTO1D(flatiter it, npy_intp ind) nogil
|
| 503 |
+
void* PyArray_ITER_DATA(flatiter it) nogil
|
| 504 |
+
bint PyArray_ITER_NOTDONE(flatiter it) nogil
|
| 505 |
+
|
| 506 |
+
void PyArray_MultiIter_RESET(broadcast multi) nogil
|
| 507 |
+
void PyArray_MultiIter_NEXT(broadcast multi) nogil
|
| 508 |
+
void PyArray_MultiIter_GOTO(broadcast multi, npy_intp dest) nogil
|
| 509 |
+
void PyArray_MultiIter_GOTO1D(broadcast multi, npy_intp ind) nogil
|
| 510 |
+
void* PyArray_MultiIter_DATA(broadcast multi, npy_intp i) nogil
|
| 511 |
+
void PyArray_MultiIter_NEXTi(broadcast multi, npy_intp i) nogil
|
| 512 |
+
bint PyArray_MultiIter_NOTDONE(broadcast multi) nogil
|
| 513 |
+
npy_intp PyArray_MultiIter_SIZE(broadcast multi) nogil
|
| 514 |
+
int PyArray_MultiIter_NDIM(broadcast multi) nogil
|
| 515 |
+
npy_intp PyArray_MultiIter_INDEX(broadcast multi) nogil
|
| 516 |
+
int PyArray_MultiIter_NUMITER(broadcast multi) nogil
|
| 517 |
+
npy_intp* PyArray_MultiIter_DIMS(broadcast multi) nogil
|
| 518 |
+
void** PyArray_MultiIter_ITERS(broadcast multi) nogil
|
| 519 |
+
|
| 520 |
+
# Functions from __multiarray_api.h
|
| 521 |
+
|
| 522 |
+
# Functions taking dtype and returning object/ndarray are disabled
|
| 523 |
+
# for now as they steal dtype references. I'm conservative and disable
|
| 524 |
+
# more than is probably needed until it can be checked further.
|
| 525 |
+
int PyArray_INCREF (ndarray) except * # uses PyArray_Item_INCREF...
|
| 526 |
+
int PyArray_XDECREF (ndarray) except * # uses PyArray_Item_DECREF...
|
| 527 |
+
dtype PyArray_DescrFromType (int)
|
| 528 |
+
object PyArray_TypeObjectFromType (int)
|
| 529 |
+
char * PyArray_Zero (ndarray)
|
| 530 |
+
char * PyArray_One (ndarray)
|
| 531 |
+
#object PyArray_CastToType (ndarray, dtype, int)
|
| 532 |
+
int PyArray_CanCastSafely (int, int) # writes errors
|
| 533 |
+
npy_bool PyArray_CanCastTo (dtype, dtype) # writes errors
|
| 534 |
+
int PyArray_ObjectType (object, int) except 0
|
| 535 |
+
dtype PyArray_DescrFromObject (object, dtype)
|
| 536 |
+
#ndarray* PyArray_ConvertToCommonType (object, int *)
|
| 537 |
+
dtype PyArray_DescrFromScalar (object)
|
| 538 |
+
dtype PyArray_DescrFromTypeObject (object)
|
| 539 |
+
npy_intp PyArray_Size (object)
|
| 540 |
+
#object PyArray_Scalar (void *, dtype, object)
|
| 541 |
+
#object PyArray_FromScalar (object, dtype)
|
| 542 |
+
void PyArray_ScalarAsCtype (object, void *)
|
| 543 |
+
#int PyArray_CastScalarToCtype (object, void *, dtype)
|
| 544 |
+
#int PyArray_CastScalarDirect (object, dtype, void *, int)
|
| 545 |
+
#PyArray_VectorUnaryFunc * PyArray_GetCastFunc (dtype, int)
|
| 546 |
+
#object PyArray_FromAny (object, dtype, int, int, int, object)
|
| 547 |
+
object PyArray_EnsureArray (object)
|
| 548 |
+
object PyArray_EnsureAnyArray (object)
|
| 549 |
+
#object PyArray_FromFile (stdio.FILE *, dtype, npy_intp, char *)
|
| 550 |
+
#object PyArray_FromString (char *, npy_intp, dtype, npy_intp, char *)
|
| 551 |
+
#object PyArray_FromBuffer (object, dtype, npy_intp, npy_intp)
|
| 552 |
+
#object PyArray_FromIter (object, dtype, npy_intp)
|
| 553 |
+
object PyArray_Return (ndarray)
|
| 554 |
+
#object PyArray_GetField (ndarray, dtype, int)
|
| 555 |
+
#int PyArray_SetField (ndarray, dtype, int, object) except -1
|
| 556 |
+
object PyArray_Byteswap (ndarray, npy_bool)
|
| 557 |
+
object PyArray_Resize (ndarray, PyArray_Dims *, int, NPY_ORDER)
|
| 558 |
+
int PyArray_CopyInto (ndarray, ndarray) except -1
|
| 559 |
+
int PyArray_CopyAnyInto (ndarray, ndarray) except -1
|
| 560 |
+
int PyArray_CopyObject (ndarray, object) except -1
|
| 561 |
+
object PyArray_NewCopy (ndarray, NPY_ORDER)
|
| 562 |
+
object PyArray_ToList (ndarray)
|
| 563 |
+
object PyArray_ToString (ndarray, NPY_ORDER)
|
| 564 |
+
int PyArray_ToFile (ndarray, stdio.FILE *, char *, char *) except -1
|
| 565 |
+
int PyArray_Dump (object, object, int) except -1
|
| 566 |
+
object PyArray_Dumps (object, int)
|
| 567 |
+
int PyArray_ValidType (int) # Cannot error
|
| 568 |
+
void PyArray_UpdateFlags (ndarray, int)
|
| 569 |
+
object PyArray_New (type, int, npy_intp *, int, npy_intp *, void *, int, int, object)
|
| 570 |
+
#object PyArray_NewFromDescr (type, dtype, int, npy_intp *, npy_intp *, void *, int, object)
|
| 571 |
+
#dtype PyArray_DescrNew (dtype)
|
| 572 |
+
dtype PyArray_DescrNewFromType (int)
|
| 573 |
+
double PyArray_GetPriority (object, double) # clears errors as of 1.25
|
| 574 |
+
object PyArray_IterNew (object)
|
| 575 |
+
object PyArray_MultiIterNew (int, ...)
|
| 576 |
+
|
| 577 |
+
int PyArray_PyIntAsInt (object) except? -1
|
| 578 |
+
npy_intp PyArray_PyIntAsIntp (object)
|
| 579 |
+
int PyArray_Broadcast (broadcast) except -1
|
| 580 |
+
int PyArray_FillWithScalar (ndarray, object) except -1
|
| 581 |
+
npy_bool PyArray_CheckStrides (int, int, npy_intp, npy_intp, npy_intp *, npy_intp *)
|
| 582 |
+
dtype PyArray_DescrNewByteorder (dtype, char)
|
| 583 |
+
object PyArray_IterAllButAxis (object, int *)
|
| 584 |
+
#object PyArray_CheckFromAny (object, dtype, int, int, int, object)
|
| 585 |
+
#object PyArray_FromArray (ndarray, dtype, int)
|
| 586 |
+
object PyArray_FromInterface (object)
|
| 587 |
+
object PyArray_FromStructInterface (object)
|
| 588 |
+
#object PyArray_FromArrayAttr (object, dtype, object)
|
| 589 |
+
#NPY_SCALARKIND PyArray_ScalarKind (int, ndarray*)
|
| 590 |
+
int PyArray_CanCoerceScalar (int, int, NPY_SCALARKIND)
|
| 591 |
+
npy_bool PyArray_CanCastScalar (type, type)
|
| 592 |
+
int PyArray_RemoveSmallest (broadcast) except -1
|
| 593 |
+
int PyArray_ElementStrides (object)
|
| 594 |
+
void PyArray_Item_INCREF (char *, dtype) except *
|
| 595 |
+
void PyArray_Item_XDECREF (char *, dtype) except *
|
| 596 |
+
object PyArray_Transpose (ndarray, PyArray_Dims *)
|
| 597 |
+
object PyArray_TakeFrom (ndarray, object, int, ndarray, NPY_CLIPMODE)
|
| 598 |
+
object PyArray_PutTo (ndarray, object, object, NPY_CLIPMODE)
|
| 599 |
+
object PyArray_PutMask (ndarray, object, object)
|
| 600 |
+
object PyArray_Repeat (ndarray, object, int)
|
| 601 |
+
object PyArray_Choose (ndarray, object, ndarray, NPY_CLIPMODE)
|
| 602 |
+
int PyArray_Sort (ndarray, int, NPY_SORTKIND) except -1
|
| 603 |
+
object PyArray_ArgSort (ndarray, int, NPY_SORTKIND)
|
| 604 |
+
object PyArray_SearchSorted (ndarray, object, NPY_SEARCHSIDE, PyObject *)
|
| 605 |
+
object PyArray_ArgMax (ndarray, int, ndarray)
|
| 606 |
+
object PyArray_ArgMin (ndarray, int, ndarray)
|
| 607 |
+
object PyArray_Reshape (ndarray, object)
|
| 608 |
+
object PyArray_Newshape (ndarray, PyArray_Dims *, NPY_ORDER)
|
| 609 |
+
object PyArray_Squeeze (ndarray)
|
| 610 |
+
#object PyArray_View (ndarray, dtype, type)
|
| 611 |
+
object PyArray_SwapAxes (ndarray, int, int)
|
| 612 |
+
object PyArray_Max (ndarray, int, ndarray)
|
| 613 |
+
object PyArray_Min (ndarray, int, ndarray)
|
| 614 |
+
object PyArray_Ptp (ndarray, int, ndarray)
|
| 615 |
+
object PyArray_Mean (ndarray, int, int, ndarray)
|
| 616 |
+
object PyArray_Trace (ndarray, int, int, int, int, ndarray)
|
| 617 |
+
object PyArray_Diagonal (ndarray, int, int, int)
|
| 618 |
+
object PyArray_Clip (ndarray, object, object, ndarray)
|
| 619 |
+
object PyArray_Conjugate (ndarray, ndarray)
|
| 620 |
+
object PyArray_Nonzero (ndarray)
|
| 621 |
+
object PyArray_Std (ndarray, int, int, ndarray, int)
|
| 622 |
+
object PyArray_Sum (ndarray, int, int, ndarray)
|
| 623 |
+
object PyArray_CumSum (ndarray, int, int, ndarray)
|
| 624 |
+
object PyArray_Prod (ndarray, int, int, ndarray)
|
| 625 |
+
object PyArray_CumProd (ndarray, int, int, ndarray)
|
| 626 |
+
object PyArray_All (ndarray, int, ndarray)
|
| 627 |
+
object PyArray_Any (ndarray, int, ndarray)
|
| 628 |
+
object PyArray_Compress (ndarray, object, int, ndarray)
|
| 629 |
+
object PyArray_Flatten (ndarray, NPY_ORDER)
|
| 630 |
+
object PyArray_Ravel (ndarray, NPY_ORDER)
|
| 631 |
+
npy_intp PyArray_MultiplyList (npy_intp *, int)
|
| 632 |
+
int PyArray_MultiplyIntList (int *, int)
|
| 633 |
+
void * PyArray_GetPtr (ndarray, npy_intp*)
|
| 634 |
+
int PyArray_CompareLists (npy_intp *, npy_intp *, int)
|
| 635 |
+
#int PyArray_AsCArray (object*, void *, npy_intp *, int, dtype)
|
| 636 |
+
int PyArray_Free (object, void *)
|
| 637 |
+
#int PyArray_Converter (object, object*)
|
| 638 |
+
int PyArray_IntpFromSequence (object, npy_intp *, int) except -1
|
| 639 |
+
object PyArray_Concatenate (object, int)
|
| 640 |
+
object PyArray_InnerProduct (object, object)
|
| 641 |
+
object PyArray_MatrixProduct (object, object)
|
| 642 |
+
object PyArray_Correlate (object, object, int)
|
| 643 |
+
#int PyArray_DescrConverter (object, dtype*) except 0
|
| 644 |
+
#int PyArray_DescrConverter2 (object, dtype*) except 0
|
| 645 |
+
int PyArray_IntpConverter (object, PyArray_Dims *) except 0
|
| 646 |
+
#int PyArray_BufferConverter (object, chunk) except 0
|
| 647 |
+
int PyArray_AxisConverter (object, int *) except 0
|
| 648 |
+
int PyArray_BoolConverter (object, npy_bool *) except 0
|
| 649 |
+
int PyArray_ByteorderConverter (object, char *) except 0
|
| 650 |
+
int PyArray_OrderConverter (object, NPY_ORDER *) except 0
|
| 651 |
+
unsigned char PyArray_EquivTypes (dtype, dtype) # clears errors
|
| 652 |
+
#object PyArray_Zeros (int, npy_intp *, dtype, int)
|
| 653 |
+
#object PyArray_Empty (int, npy_intp *, dtype, int)
|
| 654 |
+
object PyArray_Where (object, object, object)
|
| 655 |
+
object PyArray_Arange (double, double, double, int)
|
| 656 |
+
#object PyArray_ArangeObj (object, object, object, dtype)
|
| 657 |
+
int PyArray_SortkindConverter (object, NPY_SORTKIND *) except 0
|
| 658 |
+
object PyArray_LexSort (object, int)
|
| 659 |
+
object PyArray_Round (ndarray, int, ndarray)
|
| 660 |
+
unsigned char PyArray_EquivTypenums (int, int)
|
| 661 |
+
int PyArray_RegisterDataType (dtype) except -1
|
| 662 |
+
int PyArray_RegisterCastFunc (dtype, int, PyArray_VectorUnaryFunc *) except -1
|
| 663 |
+
int PyArray_RegisterCanCast (dtype, int, NPY_SCALARKIND) except -1
|
| 664 |
+
#void PyArray_InitArrFuncs (PyArray_ArrFuncs *)
|
| 665 |
+
object PyArray_IntTupleFromIntp (int, npy_intp *)
|
| 666 |
+
int PyArray_ClipmodeConverter (object, NPY_CLIPMODE *) except 0
|
| 667 |
+
#int PyArray_OutputConverter (object, ndarray*) except 0
|
| 668 |
+
object PyArray_BroadcastToShape (object, npy_intp *, int)
|
| 669 |
+
#int PyArray_DescrAlignConverter (object, dtype*) except 0
|
| 670 |
+
#int PyArray_DescrAlignConverter2 (object, dtype*) except 0
|
| 671 |
+
int PyArray_SearchsideConverter (object, void *) except 0
|
| 672 |
+
object PyArray_CheckAxis (ndarray, int *, int)
|
| 673 |
+
npy_intp PyArray_OverflowMultiplyList (npy_intp *, int)
|
| 674 |
+
int PyArray_SetBaseObject(ndarray, base) except -1 # NOTE: steals a reference to base! Use "set_array_base()" instead.
|
| 675 |
+
|
| 676 |
+
# The memory handler functions require the NumPy 1.22 API
|
| 677 |
+
# and may require defining NPY_TARGET_VERSION
|
| 678 |
+
ctypedef struct PyDataMemAllocator:
|
| 679 |
+
void *ctx
|
| 680 |
+
void* (*malloc) (void *ctx, size_t size)
|
| 681 |
+
void* (*calloc) (void *ctx, size_t nelem, size_t elsize)
|
| 682 |
+
void* (*realloc) (void *ctx, void *ptr, size_t new_size)
|
| 683 |
+
void (*free) (void *ctx, void *ptr, size_t size)
|
| 684 |
+
|
| 685 |
+
ctypedef struct PyDataMem_Handler:
|
| 686 |
+
char* name
|
| 687 |
+
npy_uint8 version
|
| 688 |
+
PyDataMemAllocator allocator
|
| 689 |
+
|
| 690 |
+
object PyDataMem_SetHandler(object handler)
|
| 691 |
+
object PyDataMem_GetHandler()
|
| 692 |
+
|
| 693 |
+
# additional datetime related functions are defined below
|
| 694 |
+
|
| 695 |
+
|
| 696 |
+
# Typedefs that matches the runtime dtype objects in
|
| 697 |
+
# the numpy module.
|
| 698 |
+
|
| 699 |
+
# The ones that are commented out needs an IFDEF function
|
| 700 |
+
# in Cython to enable them only on the right systems.
|
| 701 |
+
|
| 702 |
+
ctypedef npy_int8 int8_t
|
| 703 |
+
ctypedef npy_int16 int16_t
|
| 704 |
+
ctypedef npy_int32 int32_t
|
| 705 |
+
ctypedef npy_int64 int64_t
|
| 706 |
+
#ctypedef npy_int96 int96_t
|
| 707 |
+
#ctypedef npy_int128 int128_t
|
| 708 |
+
|
| 709 |
+
ctypedef npy_uint8 uint8_t
|
| 710 |
+
ctypedef npy_uint16 uint16_t
|
| 711 |
+
ctypedef npy_uint32 uint32_t
|
| 712 |
+
ctypedef npy_uint64 uint64_t
|
| 713 |
+
#ctypedef npy_uint96 uint96_t
|
| 714 |
+
#ctypedef npy_uint128 uint128_t
|
| 715 |
+
|
| 716 |
+
ctypedef npy_float32 float32_t
|
| 717 |
+
ctypedef npy_float64 float64_t
|
| 718 |
+
#ctypedef npy_float80 float80_t
|
| 719 |
+
#ctypedef npy_float128 float128_t
|
| 720 |
+
|
| 721 |
+
ctypedef float complex complex64_t
|
| 722 |
+
ctypedef double complex complex128_t
|
| 723 |
+
|
| 724 |
+
ctypedef npy_longlong longlong_t
|
| 725 |
+
ctypedef npy_ulonglong ulonglong_t
|
| 726 |
+
|
| 727 |
+
ctypedef npy_intp intp_t
|
| 728 |
+
ctypedef npy_uintp uintp_t
|
| 729 |
+
|
| 730 |
+
ctypedef npy_double float_t
|
| 731 |
+
ctypedef npy_double double_t
|
| 732 |
+
ctypedef npy_longdouble longdouble_t
|
| 733 |
+
|
| 734 |
+
ctypedef float complex cfloat_t
|
| 735 |
+
ctypedef double complex cdouble_t
|
| 736 |
+
ctypedef double complex complex_t
|
| 737 |
+
ctypedef long double complex clongdouble_t
|
| 738 |
+
|
| 739 |
+
cdef inline object PyArray_MultiIterNew1(a):
|
| 740 |
+
return PyArray_MultiIterNew(1, <void*>a)
|
| 741 |
+
|
| 742 |
+
cdef inline object PyArray_MultiIterNew2(a, b):
|
| 743 |
+
return PyArray_MultiIterNew(2, <void*>a, <void*>b)
|
| 744 |
+
|
| 745 |
+
cdef inline object PyArray_MultiIterNew3(a, b, c):
|
| 746 |
+
return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
|
| 747 |
+
|
| 748 |
+
cdef inline object PyArray_MultiIterNew4(a, b, c, d):
|
| 749 |
+
return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
|
| 750 |
+
|
| 751 |
+
cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
|
| 752 |
+
return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
|
| 753 |
+
|
| 754 |
+
cdef inline tuple PyDataType_SHAPE(dtype d):
|
| 755 |
+
if PyDataType_HASSUBARRAY(d):
|
| 756 |
+
return <tuple>d.subarray.shape
|
| 757 |
+
else:
|
| 758 |
+
return ()
|
| 759 |
+
|
| 760 |
+
|
| 761 |
+
cdef extern from "numpy/ndarrayobject.h":
|
| 762 |
+
PyTypeObject PyTimedeltaArrType_Type
|
| 763 |
+
PyTypeObject PyDatetimeArrType_Type
|
| 764 |
+
ctypedef int64_t npy_timedelta
|
| 765 |
+
ctypedef int64_t npy_datetime
|
| 766 |
+
|
| 767 |
+
cdef extern from "numpy/ndarraytypes.h":
|
| 768 |
+
ctypedef struct PyArray_DatetimeMetaData:
|
| 769 |
+
NPY_DATETIMEUNIT base
|
| 770 |
+
int64_t num
|
| 771 |
+
|
| 772 |
+
ctypedef struct npy_datetimestruct:
|
| 773 |
+
int64_t year
|
| 774 |
+
int32_t month, day, hour, min, sec, us, ps, as
|
| 775 |
+
|
| 776 |
+
# Iterator API added in v1.6
|
| 777 |
+
#
|
| 778 |
+
# These don't match the definition in the C API because Cython can't wrap
|
| 779 |
+
# function pointers that return functions.
|
| 780 |
+
# https://github.com/cython/cython/issues/6720
|
| 781 |
+
ctypedef int (*NpyIter_IterNextFunc "NpyIter_IterNextFunc *")(NpyIter* it) noexcept nogil
|
| 782 |
+
ctypedef void (*NpyIter_GetMultiIndexFunc "NpyIter_GetMultiIndexFunc *")(NpyIter* it, npy_intp* outcoords) noexcept nogil
|
| 783 |
+
|
| 784 |
+
cdef extern from "numpy/arrayscalars.h":
|
| 785 |
+
|
| 786 |
+
# abstract types
|
| 787 |
+
ctypedef class numpy.generic [object PyObject]:
|
| 788 |
+
pass
|
| 789 |
+
ctypedef class numpy.number [object PyObject]:
|
| 790 |
+
pass
|
| 791 |
+
ctypedef class numpy.integer [object PyObject]:
|
| 792 |
+
pass
|
| 793 |
+
ctypedef class numpy.signedinteger [object PyObject]:
|
| 794 |
+
pass
|
| 795 |
+
ctypedef class numpy.unsignedinteger [object PyObject]:
|
| 796 |
+
pass
|
| 797 |
+
ctypedef class numpy.inexact [object PyObject]:
|
| 798 |
+
pass
|
| 799 |
+
ctypedef class numpy.floating [object PyObject]:
|
| 800 |
+
pass
|
| 801 |
+
ctypedef class numpy.complexfloating [object PyObject]:
|
| 802 |
+
pass
|
| 803 |
+
ctypedef class numpy.flexible [object PyObject]:
|
| 804 |
+
pass
|
| 805 |
+
ctypedef class numpy.character [object PyObject]:
|
| 806 |
+
pass
|
| 807 |
+
|
| 808 |
+
ctypedef struct PyDatetimeScalarObject:
|
| 809 |
+
# PyObject_HEAD
|
| 810 |
+
npy_datetime obval
|
| 811 |
+
PyArray_DatetimeMetaData obmeta
|
| 812 |
+
|
| 813 |
+
ctypedef struct PyTimedeltaScalarObject:
|
| 814 |
+
# PyObject_HEAD
|
| 815 |
+
npy_timedelta obval
|
| 816 |
+
PyArray_DatetimeMetaData obmeta
|
| 817 |
+
|
| 818 |
+
ctypedef enum NPY_DATETIMEUNIT:
|
| 819 |
+
NPY_FR_Y
|
| 820 |
+
NPY_FR_M
|
| 821 |
+
NPY_FR_W
|
| 822 |
+
NPY_FR_D
|
| 823 |
+
NPY_FR_B
|
| 824 |
+
NPY_FR_h
|
| 825 |
+
NPY_FR_m
|
| 826 |
+
NPY_FR_s
|
| 827 |
+
NPY_FR_ms
|
| 828 |
+
NPY_FR_us
|
| 829 |
+
NPY_FR_ns
|
| 830 |
+
NPY_FR_ps
|
| 831 |
+
NPY_FR_fs
|
| 832 |
+
NPY_FR_as
|
| 833 |
+
NPY_FR_GENERIC
|
| 834 |
+
|
| 835 |
+
|
| 836 |
+
cdef extern from "numpy/arrayobject.h":
|
| 837 |
+
# These are part of the C-API defined in `__multiarray_api.h`
|
| 838 |
+
|
| 839 |
+
# NumPy internal definitions in datetime_strings.c:
|
| 840 |
+
int get_datetime_iso_8601_strlen "NpyDatetime_GetDatetimeISO8601StrLen" (
|
| 841 |
+
int local, NPY_DATETIMEUNIT base)
|
| 842 |
+
int make_iso_8601_datetime "NpyDatetime_MakeISO8601Datetime" (
|
| 843 |
+
npy_datetimestruct *dts, char *outstr, npy_intp outlen,
|
| 844 |
+
int local, int utc, NPY_DATETIMEUNIT base, int tzoffset,
|
| 845 |
+
NPY_CASTING casting) except -1
|
| 846 |
+
|
| 847 |
+
# NumPy internal definition in datetime.c:
|
| 848 |
+
# May return 1 to indicate that object does not appear to be a datetime
|
| 849 |
+
# (returns 0 on success).
|
| 850 |
+
int convert_pydatetime_to_datetimestruct "NpyDatetime_ConvertPyDateTimeToDatetimeStruct" (
|
| 851 |
+
PyObject *obj, npy_datetimestruct *out,
|
| 852 |
+
NPY_DATETIMEUNIT *out_bestunit, int apply_tzinfo) except -1
|
| 853 |
+
int convert_datetime64_to_datetimestruct "NpyDatetime_ConvertDatetime64ToDatetimeStruct" (
|
| 854 |
+
PyArray_DatetimeMetaData *meta, npy_datetime dt,
|
| 855 |
+
npy_datetimestruct *out) except -1
|
| 856 |
+
int convert_datetimestruct_to_datetime64 "NpyDatetime_ConvertDatetimeStructToDatetime64"(
|
| 857 |
+
PyArray_DatetimeMetaData *meta, const npy_datetimestruct *dts,
|
| 858 |
+
npy_datetime *out) except -1
|
| 859 |
+
|
| 860 |
+
|
| 861 |
+
#
|
| 862 |
+
# ufunc API
|
| 863 |
+
#
|
| 864 |
+
|
| 865 |
+
cdef extern from "numpy/ufuncobject.h":
|
| 866 |
+
|
| 867 |
+
ctypedef void (*PyUFuncGenericFunction) (char **, npy_intp *, npy_intp *, void *)
|
| 868 |
+
|
| 869 |
+
ctypedef class numpy.ufunc [object PyUFuncObject, check_size ignore]:
|
| 870 |
+
cdef:
|
| 871 |
+
int nin, nout, nargs
|
| 872 |
+
int identity
|
| 873 |
+
PyUFuncGenericFunction *functions
|
| 874 |
+
void **data
|
| 875 |
+
int ntypes
|
| 876 |
+
int check_return
|
| 877 |
+
char *name
|
| 878 |
+
char *types
|
| 879 |
+
char *doc
|
| 880 |
+
void *ptr
|
| 881 |
+
PyObject *obj
|
| 882 |
+
PyObject *userloops
|
| 883 |
+
|
| 884 |
+
cdef enum:
|
| 885 |
+
PyUFunc_Zero
|
| 886 |
+
PyUFunc_One
|
| 887 |
+
PyUFunc_None
|
| 888 |
+
UFUNC_FPE_DIVIDEBYZERO
|
| 889 |
+
UFUNC_FPE_OVERFLOW
|
| 890 |
+
UFUNC_FPE_UNDERFLOW
|
| 891 |
+
UFUNC_FPE_INVALID
|
| 892 |
+
|
| 893 |
+
object PyUFunc_FromFuncAndData(PyUFuncGenericFunction *,
|
| 894 |
+
void **, char *, int, int, int, int, char *, char *, int)
|
| 895 |
+
int PyUFunc_RegisterLoopForType(ufunc, int,
|
| 896 |
+
PyUFuncGenericFunction, int *, void *) except -1
|
| 897 |
+
void PyUFunc_f_f_As_d_d \
|
| 898 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 899 |
+
void PyUFunc_d_d \
|
| 900 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 901 |
+
void PyUFunc_f_f \
|
| 902 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 903 |
+
void PyUFunc_g_g \
|
| 904 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 905 |
+
void PyUFunc_F_F_As_D_D \
|
| 906 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 907 |
+
void PyUFunc_F_F \
|
| 908 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 909 |
+
void PyUFunc_D_D \
|
| 910 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 911 |
+
void PyUFunc_G_G \
|
| 912 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 913 |
+
void PyUFunc_O_O \
|
| 914 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 915 |
+
void PyUFunc_ff_f_As_dd_d \
|
| 916 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 917 |
+
void PyUFunc_ff_f \
|
| 918 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 919 |
+
void PyUFunc_dd_d \
|
| 920 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 921 |
+
void PyUFunc_gg_g \
|
| 922 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 923 |
+
void PyUFunc_FF_F_As_DD_D \
|
| 924 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 925 |
+
void PyUFunc_DD_D \
|
| 926 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 927 |
+
void PyUFunc_FF_F \
|
| 928 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 929 |
+
void PyUFunc_GG_G \
|
| 930 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 931 |
+
void PyUFunc_OO_O \
|
| 932 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 933 |
+
void PyUFunc_O_O_method \
|
| 934 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 935 |
+
void PyUFunc_OO_O_method \
|
| 936 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 937 |
+
void PyUFunc_On_Om \
|
| 938 |
+
(char **, npy_intp *, npy_intp *, void *)
|
| 939 |
+
void PyUFunc_clearfperr()
|
| 940 |
+
int PyUFunc_getfperr()
|
| 941 |
+
int PyUFunc_ReplaceLoopBySignature \
|
| 942 |
+
(ufunc, PyUFuncGenericFunction, int *, PyUFuncGenericFunction *)
|
| 943 |
+
object PyUFunc_FromFuncAndDataAndSignature \
|
| 944 |
+
(PyUFuncGenericFunction *, void **, char *, int, int, int,
|
| 945 |
+
int, char *, char *, int, char *)
|
| 946 |
+
|
| 947 |
+
int _import_umath() except -1
|
| 948 |
+
|
| 949 |
+
cdef inline void set_array_base(ndarray arr, object base):
|
| 950 |
+
Py_INCREF(base) # important to do this before stealing the reference below!
|
| 951 |
+
PyArray_SetBaseObject(arr, base)
|
| 952 |
+
|
| 953 |
+
cdef inline object get_array_base(ndarray arr):
|
| 954 |
+
base = PyArray_BASE(arr)
|
| 955 |
+
if base is NULL:
|
| 956 |
+
return None
|
| 957 |
+
return <object>base
|
| 958 |
+
|
| 959 |
+
# Versions of the import_* functions which are more suitable for
|
| 960 |
+
# Cython code.
|
| 961 |
+
cdef inline int import_array() except -1:
|
| 962 |
+
try:
|
| 963 |
+
__pyx_import_array()
|
| 964 |
+
except Exception:
|
| 965 |
+
raise ImportError("numpy._core.multiarray failed to import")
|
| 966 |
+
|
| 967 |
+
cdef inline int import_umath() except -1:
|
| 968 |
+
try:
|
| 969 |
+
_import_umath()
|
| 970 |
+
except Exception:
|
| 971 |
+
raise ImportError("numpy._core.umath failed to import")
|
| 972 |
+
|
| 973 |
+
cdef inline int import_ufunc() except -1:
|
| 974 |
+
try:
|
| 975 |
+
_import_umath()
|
| 976 |
+
except Exception:
|
| 977 |
+
raise ImportError("numpy._core.umath failed to import")
|
| 978 |
+
|
| 979 |
+
|
| 980 |
+
cdef inline bint is_timedelta64_object(object obj):
|
| 981 |
+
"""
|
| 982 |
+
Cython equivalent of `isinstance(obj, np.timedelta64)`
|
| 983 |
+
|
| 984 |
+
Parameters
|
| 985 |
+
----------
|
| 986 |
+
obj : object
|
| 987 |
+
|
| 988 |
+
Returns
|
| 989 |
+
-------
|
| 990 |
+
bool
|
| 991 |
+
"""
|
| 992 |
+
return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type)
|
| 993 |
+
|
| 994 |
+
|
| 995 |
+
cdef inline bint is_datetime64_object(object obj):
|
| 996 |
+
"""
|
| 997 |
+
Cython equivalent of `isinstance(obj, np.datetime64)`
|
| 998 |
+
|
| 999 |
+
Parameters
|
| 1000 |
+
----------
|
| 1001 |
+
obj : object
|
| 1002 |
+
|
| 1003 |
+
Returns
|
| 1004 |
+
-------
|
| 1005 |
+
bool
|
| 1006 |
+
"""
|
| 1007 |
+
return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type)
|
| 1008 |
+
|
| 1009 |
+
|
| 1010 |
+
cdef inline npy_datetime get_datetime64_value(object obj) nogil:
|
| 1011 |
+
"""
|
| 1012 |
+
returns the int64 value underlying scalar numpy datetime64 object
|
| 1013 |
+
|
| 1014 |
+
Note that to interpret this as a datetime, the corresponding unit is
|
| 1015 |
+
also needed. That can be found using `get_datetime64_unit`.
|
| 1016 |
+
"""
|
| 1017 |
+
return (<PyDatetimeScalarObject*>obj).obval
|
| 1018 |
+
|
| 1019 |
+
|
| 1020 |
+
cdef inline npy_timedelta get_timedelta64_value(object obj) nogil:
|
| 1021 |
+
"""
|
| 1022 |
+
returns the int64 value underlying scalar numpy timedelta64 object
|
| 1023 |
+
"""
|
| 1024 |
+
return (<PyTimedeltaScalarObject*>obj).obval
|
| 1025 |
+
|
| 1026 |
+
|
| 1027 |
+
cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil:
|
| 1028 |
+
"""
|
| 1029 |
+
returns the unit part of the dtype for a numpy datetime64 object.
|
| 1030 |
+
"""
|
| 1031 |
+
return <NPY_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base
|
| 1032 |
+
|
| 1033 |
+
|
| 1034 |
+
cdef extern from "numpy/arrayobject.h":
|
| 1035 |
+
|
| 1036 |
+
ctypedef struct NpyIter:
|
| 1037 |
+
pass
|
| 1038 |
+
|
| 1039 |
+
cdef enum:
|
| 1040 |
+
NPY_FAIL
|
| 1041 |
+
NPY_SUCCEED
|
| 1042 |
+
|
| 1043 |
+
cdef enum:
|
| 1044 |
+
# Track an index representing C order
|
| 1045 |
+
NPY_ITER_C_INDEX
|
| 1046 |
+
# Track an index representing Fortran order
|
| 1047 |
+
NPY_ITER_F_INDEX
|
| 1048 |
+
# Track a multi-index
|
| 1049 |
+
NPY_ITER_MULTI_INDEX
|
| 1050 |
+
# User code external to the iterator does the 1-dimensional innermost loop
|
| 1051 |
+
NPY_ITER_EXTERNAL_LOOP
|
| 1052 |
+
# Convert all the operands to a common data type
|
| 1053 |
+
NPY_ITER_COMMON_DTYPE
|
| 1054 |
+
# Operands may hold references, requiring API access during iteration
|
| 1055 |
+
NPY_ITER_REFS_OK
|
| 1056 |
+
# Zero-sized operands should be permitted, iteration checks IterSize for 0
|
| 1057 |
+
NPY_ITER_ZEROSIZE_OK
|
| 1058 |
+
# Permits reductions (size-0 stride with dimension size > 1)
|
| 1059 |
+
NPY_ITER_REDUCE_OK
|
| 1060 |
+
# Enables sub-range iteration
|
| 1061 |
+
NPY_ITER_RANGED
|
| 1062 |
+
# Enables buffering
|
| 1063 |
+
NPY_ITER_BUFFERED
|
| 1064 |
+
# When buffering is enabled, grows the inner loop if possible
|
| 1065 |
+
NPY_ITER_GROWINNER
|
| 1066 |
+
# Delay allocation of buffers until first Reset* call
|
| 1067 |
+
NPY_ITER_DELAY_BUFALLOC
|
| 1068 |
+
# When NPY_KEEPORDER is specified, disable reversing negative-stride axes
|
| 1069 |
+
NPY_ITER_DONT_NEGATE_STRIDES
|
| 1070 |
+
NPY_ITER_COPY_IF_OVERLAP
|
| 1071 |
+
# The operand will be read from and written to
|
| 1072 |
+
NPY_ITER_READWRITE
|
| 1073 |
+
# The operand will only be read from
|
| 1074 |
+
NPY_ITER_READONLY
|
| 1075 |
+
# The operand will only be written to
|
| 1076 |
+
NPY_ITER_WRITEONLY
|
| 1077 |
+
# The operand's data must be in native byte order
|
| 1078 |
+
NPY_ITER_NBO
|
| 1079 |
+
# The operand's data must be aligned
|
| 1080 |
+
NPY_ITER_ALIGNED
|
| 1081 |
+
# The operand's data must be contiguous (within the inner loop)
|
| 1082 |
+
NPY_ITER_CONTIG
|
| 1083 |
+
# The operand may be copied to satisfy requirements
|
| 1084 |
+
NPY_ITER_COPY
|
| 1085 |
+
# The operand may be copied with WRITEBACKIFCOPY to satisfy requirements
|
| 1086 |
+
NPY_ITER_UPDATEIFCOPY
|
| 1087 |
+
# Allocate the operand if it is NULL
|
| 1088 |
+
NPY_ITER_ALLOCATE
|
| 1089 |
+
# If an operand is allocated, don't use any subtype
|
| 1090 |
+
NPY_ITER_NO_SUBTYPE
|
| 1091 |
+
# This is a virtual array slot, operand is NULL but temporary data is there
|
| 1092 |
+
NPY_ITER_VIRTUAL
|
| 1093 |
+
# Require that the dimension match the iterator dimensions exactly
|
| 1094 |
+
NPY_ITER_NO_BROADCAST
|
| 1095 |
+
# A mask is being used on this array, affects buffer -> array copy
|
| 1096 |
+
NPY_ITER_WRITEMASKED
|
| 1097 |
+
# This array is the mask for all WRITEMASKED operands
|
| 1098 |
+
NPY_ITER_ARRAYMASK
|
| 1099 |
+
# Assume iterator order data access for COPY_IF_OVERLAP
|
| 1100 |
+
NPY_ITER_OVERLAP_ASSUME_ELEMENTWISE
|
| 1101 |
+
|
| 1102 |
+
# construction and destruction functions
|
| 1103 |
+
NpyIter* NpyIter_New(ndarray arr, npy_uint32 flags, NPY_ORDER order,
|
| 1104 |
+
NPY_CASTING casting, dtype datatype) except NULL
|
| 1105 |
+
NpyIter* NpyIter_MultiNew(npy_intp nop, PyArrayObject** op, npy_uint32 flags,
|
| 1106 |
+
NPY_ORDER order, NPY_CASTING casting, npy_uint32*
|
| 1107 |
+
op_flags, PyArray_Descr** op_dtypes) except NULL
|
| 1108 |
+
NpyIter* NpyIter_AdvancedNew(npy_intp nop, PyArrayObject** op,
|
| 1109 |
+
npy_uint32 flags, NPY_ORDER order,
|
| 1110 |
+
NPY_CASTING casting, npy_uint32* op_flags,
|
| 1111 |
+
PyArray_Descr** op_dtypes, int oa_ndim,
|
| 1112 |
+
int** op_axes, const npy_intp* itershape,
|
| 1113 |
+
npy_intp buffersize) except NULL
|
| 1114 |
+
NpyIter* NpyIter_Copy(NpyIter* it) except NULL
|
| 1115 |
+
int NpyIter_RemoveAxis(NpyIter* it, int axis) except NPY_FAIL
|
| 1116 |
+
int NpyIter_RemoveMultiIndex(NpyIter* it) except NPY_FAIL
|
| 1117 |
+
int NpyIter_EnableExternalLoop(NpyIter* it) except NPY_FAIL
|
| 1118 |
+
int NpyIter_Deallocate(NpyIter* it) except NPY_FAIL
|
| 1119 |
+
int NpyIter_Reset(NpyIter* it, char** errmsg) except NPY_FAIL
|
| 1120 |
+
int NpyIter_ResetToIterIndexRange(NpyIter* it, npy_intp istart,
|
| 1121 |
+
npy_intp iend, char** errmsg) except NPY_FAIL
|
| 1122 |
+
int NpyIter_ResetBasePointers(NpyIter* it, char** baseptrs, char** errmsg) except NPY_FAIL
|
| 1123 |
+
int NpyIter_GotoMultiIndex(NpyIter* it, const npy_intp* multi_index) except NPY_FAIL
|
| 1124 |
+
int NpyIter_GotoIndex(NpyIter* it, npy_intp index) except NPY_FAIL
|
| 1125 |
+
npy_intp NpyIter_GetIterSize(NpyIter* it) nogil
|
| 1126 |
+
npy_intp NpyIter_GetIterIndex(NpyIter* it) nogil
|
| 1127 |
+
void NpyIter_GetIterIndexRange(NpyIter* it, npy_intp* istart,
|
| 1128 |
+
npy_intp* iend) nogil
|
| 1129 |
+
int NpyIter_GotoIterIndex(NpyIter* it, npy_intp iterindex) except NPY_FAIL
|
| 1130 |
+
npy_bool NpyIter_HasDelayedBufAlloc(NpyIter* it) nogil
|
| 1131 |
+
npy_bool NpyIter_HasExternalLoop(NpyIter* it) nogil
|
| 1132 |
+
npy_bool NpyIter_HasMultiIndex(NpyIter* it) nogil
|
| 1133 |
+
npy_bool NpyIter_HasIndex(NpyIter* it) nogil
|
| 1134 |
+
npy_bool NpyIter_RequiresBuffering(NpyIter* it) nogil
|
| 1135 |
+
npy_bool NpyIter_IsBuffered(NpyIter* it) nogil
|
| 1136 |
+
npy_bool NpyIter_IsGrowInner(NpyIter* it) nogil
|
| 1137 |
+
npy_intp NpyIter_GetBufferSize(NpyIter* it) nogil
|
| 1138 |
+
int NpyIter_GetNDim(NpyIter* it) nogil
|
| 1139 |
+
int NpyIter_GetNOp(NpyIter* it) nogil
|
| 1140 |
+
npy_intp* NpyIter_GetAxisStrideArray(NpyIter* it, int axis) except NULL
|
| 1141 |
+
int NpyIter_GetShape(NpyIter* it, npy_intp* outshape) nogil
|
| 1142 |
+
PyArray_Descr** NpyIter_GetDescrArray(NpyIter* it)
|
| 1143 |
+
PyArrayObject** NpyIter_GetOperandArray(NpyIter* it)
|
| 1144 |
+
ndarray NpyIter_GetIterView(NpyIter* it, npy_intp i)
|
| 1145 |
+
void NpyIter_GetReadFlags(NpyIter* it, char* outreadflags)
|
| 1146 |
+
void NpyIter_GetWriteFlags(NpyIter* it, char* outwriteflags)
|
| 1147 |
+
int NpyIter_CreateCompatibleStrides(NpyIter* it, npy_intp itemsize,
|
| 1148 |
+
npy_intp* outstrides) except NPY_FAIL
|
| 1149 |
+
npy_bool NpyIter_IsFirstVisit(NpyIter* it, int iop) nogil
|
| 1150 |
+
# functions for iterating an NpyIter object
|
| 1151 |
+
#
|
| 1152 |
+
# These don't match the definition in the C API because Cython can't wrap
|
| 1153 |
+
# function pointers that return functions.
|
| 1154 |
+
NpyIter_IterNextFunc* NpyIter_GetIterNext(NpyIter* it, char** errmsg) except NULL
|
| 1155 |
+
NpyIter_GetMultiIndexFunc* NpyIter_GetGetMultiIndex(NpyIter* it,
|
| 1156 |
+
char** errmsg) except NULL
|
| 1157 |
+
char** NpyIter_GetDataPtrArray(NpyIter* it) nogil
|
| 1158 |
+
char** NpyIter_GetInitialDataPtrArray(NpyIter* it) nogil
|
| 1159 |
+
npy_intp* NpyIter_GetIndexPtr(NpyIter* it)
|
| 1160 |
+
npy_intp* NpyIter_GetInnerStrideArray(NpyIter* it) nogil
|
| 1161 |
+
npy_intp* NpyIter_GetInnerLoopSizePtr(NpyIter* it) nogil
|
| 1162 |
+
void NpyIter_GetInnerFixedStrideArray(NpyIter* it, npy_intp* outstrides) nogil
|
| 1163 |
+
npy_bool NpyIter_IterationNeedsAPI(NpyIter* it) nogil
|
| 1164 |
+
void NpyIter_DebugPrint(NpyIter* it)
|
.venv/lib/python3.10/site-packages/numpy/__init__.py
ADDED
|
@@ -0,0 +1,547 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
NumPy
|
| 3 |
+
=====
|
| 4 |
+
|
| 5 |
+
Provides
|
| 6 |
+
1. An array object of arbitrary homogeneous items
|
| 7 |
+
2. Fast mathematical operations over arrays
|
| 8 |
+
3. Linear Algebra, Fourier Transforms, Random Number Generation
|
| 9 |
+
|
| 10 |
+
How to use the documentation
|
| 11 |
+
----------------------------
|
| 12 |
+
Documentation is available in two forms: docstrings provided
|
| 13 |
+
with the code, and a loose standing reference guide, available from
|
| 14 |
+
`the NumPy homepage <https://numpy.org>`_.
|
| 15 |
+
|
| 16 |
+
We recommend exploring the docstrings using
|
| 17 |
+
`IPython <https://ipython.org>`_, an advanced Python shell with
|
| 18 |
+
TAB-completion and introspection capabilities. See below for further
|
| 19 |
+
instructions.
|
| 20 |
+
|
| 21 |
+
The docstring examples assume that `numpy` has been imported as ``np``::
|
| 22 |
+
|
| 23 |
+
>>> import numpy as np
|
| 24 |
+
|
| 25 |
+
Code snippets are indicated by three greater-than signs::
|
| 26 |
+
|
| 27 |
+
>>> x = 42
|
| 28 |
+
>>> x = x + 1
|
| 29 |
+
|
| 30 |
+
Use the built-in ``help`` function to view a function's docstring::
|
| 31 |
+
|
| 32 |
+
>>> help(np.sort)
|
| 33 |
+
... # doctest: +SKIP
|
| 34 |
+
|
| 35 |
+
For some objects, ``np.info(obj)`` may provide additional help. This is
|
| 36 |
+
particularly true if you see the line "Help on ufunc object:" at the top
|
| 37 |
+
of the help() page. Ufuncs are implemented in C, not Python, for speed.
|
| 38 |
+
The native Python help() does not know how to view their help, but our
|
| 39 |
+
np.info() function does.
|
| 40 |
+
|
| 41 |
+
Available subpackages
|
| 42 |
+
---------------------
|
| 43 |
+
lib
|
| 44 |
+
Basic functions used by several sub-packages.
|
| 45 |
+
random
|
| 46 |
+
Core Random Tools
|
| 47 |
+
linalg
|
| 48 |
+
Core Linear Algebra Tools
|
| 49 |
+
fft
|
| 50 |
+
Core FFT routines
|
| 51 |
+
polynomial
|
| 52 |
+
Polynomial tools
|
| 53 |
+
testing
|
| 54 |
+
NumPy testing tools
|
| 55 |
+
distutils
|
| 56 |
+
Enhancements to distutils with support for
|
| 57 |
+
Fortran compilers support and more (for Python <= 3.11)
|
| 58 |
+
|
| 59 |
+
Utilities
|
| 60 |
+
---------
|
| 61 |
+
test
|
| 62 |
+
Run numpy unittests
|
| 63 |
+
show_config
|
| 64 |
+
Show numpy build configuration
|
| 65 |
+
__version__
|
| 66 |
+
NumPy version string
|
| 67 |
+
|
| 68 |
+
Viewing documentation using IPython
|
| 69 |
+
-----------------------------------
|
| 70 |
+
|
| 71 |
+
Start IPython and import `numpy` usually under the alias ``np``: `import
|
| 72 |
+
numpy as np`. Then, directly past or use the ``%cpaste`` magic to paste
|
| 73 |
+
examples into the shell. To see which functions are available in `numpy`,
|
| 74 |
+
type ``np.<TAB>`` (where ``<TAB>`` refers to the TAB key), or use
|
| 75 |
+
``np.*cos*?<ENTER>`` (where ``<ENTER>`` refers to the ENTER key) to narrow
|
| 76 |
+
down the list. To view the docstring for a function, use
|
| 77 |
+
``np.cos?<ENTER>`` (to view the docstring) and ``np.cos??<ENTER>`` (to view
|
| 78 |
+
the source code).
|
| 79 |
+
|
| 80 |
+
Copies vs. in-place operation
|
| 81 |
+
-----------------------------
|
| 82 |
+
Most of the functions in `numpy` return a copy of the array argument
|
| 83 |
+
(e.g., `np.sort`). In-place versions of these functions are often
|
| 84 |
+
available as array methods, i.e. ``x = np.array([1,2,3]); x.sort()``.
|
| 85 |
+
Exceptions to this rule are documented.
|
| 86 |
+
|
| 87 |
+
"""
|
| 88 |
+
import os
|
| 89 |
+
import sys
|
| 90 |
+
import warnings
|
| 91 |
+
|
| 92 |
+
from ._globals import _NoValue, _CopyMode
|
| 93 |
+
from ._expired_attrs_2_0 import __expired_attributes__
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
# If a version with git hash was stored, use that instead
|
| 97 |
+
from . import version
|
| 98 |
+
from .version import __version__
|
| 99 |
+
|
| 100 |
+
# We first need to detect if we're being called as part of the numpy setup
|
| 101 |
+
# procedure itself in a reliable manner.
|
| 102 |
+
try:
|
| 103 |
+
__NUMPY_SETUP__
|
| 104 |
+
except NameError:
|
| 105 |
+
__NUMPY_SETUP__ = False
|
| 106 |
+
|
| 107 |
+
if __NUMPY_SETUP__:
|
| 108 |
+
sys.stderr.write('Running from numpy source directory.\n')
|
| 109 |
+
else:
|
| 110 |
+
# Allow distributors to run custom init code before importing numpy._core
|
| 111 |
+
from . import _distributor_init
|
| 112 |
+
|
| 113 |
+
try:
|
| 114 |
+
from numpy.__config__ import show_config
|
| 115 |
+
except ImportError as e:
|
| 116 |
+
msg = """Error importing numpy: you should not try to import numpy from
|
| 117 |
+
its source directory; please exit the numpy source tree, and relaunch
|
| 118 |
+
your python interpreter from there."""
|
| 119 |
+
raise ImportError(msg) from e
|
| 120 |
+
|
| 121 |
+
from . import _core
|
| 122 |
+
from ._core import (
|
| 123 |
+
False_, ScalarType, True_,
|
| 124 |
+
abs, absolute, acos, acosh, add, all, allclose,
|
| 125 |
+
amax, amin, any, arange, arccos, arccosh, arcsin, arcsinh,
|
| 126 |
+
arctan, arctan2, arctanh, argmax, argmin, argpartition, argsort,
|
| 127 |
+
argwhere, around, array, array2string, array_equal, array_equiv,
|
| 128 |
+
array_repr, array_str, asanyarray, asarray, ascontiguousarray,
|
| 129 |
+
asfortranarray, asin, asinh, atan, atanh, atan2, astype, atleast_1d,
|
| 130 |
+
atleast_2d, atleast_3d, base_repr, binary_repr, bitwise_and,
|
| 131 |
+
bitwise_count, bitwise_invert, bitwise_left_shift, bitwise_not,
|
| 132 |
+
bitwise_or, bitwise_right_shift, bitwise_xor, block, bool, bool_,
|
| 133 |
+
broadcast, busday_count, busday_offset, busdaycalendar, byte, bytes_,
|
| 134 |
+
can_cast, cbrt, cdouble, ceil, character, choose, clip, clongdouble,
|
| 135 |
+
complex128, complex64, complexfloating, compress, concat, concatenate,
|
| 136 |
+
conj, conjugate, convolve, copysign, copyto, correlate, cos, cosh,
|
| 137 |
+
count_nonzero, cross, csingle, cumprod, cumsum, cumulative_prod,
|
| 138 |
+
cumulative_sum, datetime64, datetime_as_string, datetime_data,
|
| 139 |
+
deg2rad, degrees, diagonal, divide, divmod, dot, double, dtype, e,
|
| 140 |
+
einsum, einsum_path, empty, empty_like, equal, errstate, euler_gamma,
|
| 141 |
+
exp, exp2, expm1, fabs, finfo, flatiter, flatnonzero, flexible,
|
| 142 |
+
float16, float32, float64, float_power, floating, floor, floor_divide,
|
| 143 |
+
fmax, fmin, fmod, format_float_positional, format_float_scientific,
|
| 144 |
+
frexp, from_dlpack, frombuffer, fromfile, fromfunction, fromiter,
|
| 145 |
+
frompyfunc, fromstring, full, full_like, gcd, generic, geomspace,
|
| 146 |
+
get_printoptions, getbufsize, geterr, geterrcall, greater,
|
| 147 |
+
greater_equal, half, heaviside, hstack, hypot, identity, iinfo,
|
| 148 |
+
indices, inexact, inf, inner, int16, int32, int64, int8, int_, intc,
|
| 149 |
+
integer, intp, invert, is_busday, isclose, isdtype, isfinite,
|
| 150 |
+
isfortran, isinf, isnan, isnat, isscalar, issubdtype, lcm, ldexp,
|
| 151 |
+
left_shift, less, less_equal, lexsort, linspace, little_endian, log,
|
| 152 |
+
log10, log1p, log2, logaddexp, logaddexp2, logical_and, logical_not,
|
| 153 |
+
logical_or, logical_xor, logspace, long, longdouble, longlong, matmul,
|
| 154 |
+
matvec, matrix_transpose, max, maximum, may_share_memory, mean, memmap,
|
| 155 |
+
min, min_scalar_type, minimum, mod, modf, moveaxis, multiply, nan,
|
| 156 |
+
ndarray, ndim, nditer, negative, nested_iters, newaxis, nextafter,
|
| 157 |
+
nonzero, not_equal, number, object_, ones, ones_like, outer, partition,
|
| 158 |
+
permute_dims, pi, positive, pow, power, printoptions, prod,
|
| 159 |
+
promote_types, ptp, put, putmask, rad2deg, radians, ravel, recarray,
|
| 160 |
+
reciprocal, record, remainder, repeat, require, reshape, resize,
|
| 161 |
+
result_type, right_shift, rint, roll, rollaxis, round, sctypeDict,
|
| 162 |
+
searchsorted, set_printoptions, setbufsize, seterr, seterrcall, shape,
|
| 163 |
+
shares_memory, short, sign, signbit, signedinteger, sin, single, sinh,
|
| 164 |
+
size, sort, spacing, sqrt, square, squeeze, stack, std,
|
| 165 |
+
str_, subtract, sum, swapaxes, take, tan, tanh, tensordot,
|
| 166 |
+
timedelta64, trace, transpose, true_divide, trunc, typecodes, ubyte,
|
| 167 |
+
ufunc, uint, uint16, uint32, uint64, uint8, uintc, uintp, ulong,
|
| 168 |
+
ulonglong, unsignedinteger, unstack, ushort, var, vdot, vecdot,
|
| 169 |
+
vecmat, void, vstack, where, zeros, zeros_like
|
| 170 |
+
)
|
| 171 |
+
|
| 172 |
+
# NOTE: It's still under discussion whether these aliases
|
| 173 |
+
# should be removed.
|
| 174 |
+
for ta in ["float96", "float128", "complex192", "complex256"]:
|
| 175 |
+
try:
|
| 176 |
+
globals()[ta] = getattr(_core, ta)
|
| 177 |
+
except AttributeError:
|
| 178 |
+
pass
|
| 179 |
+
del ta
|
| 180 |
+
|
| 181 |
+
from . import lib
|
| 182 |
+
from .lib import scimath as emath
|
| 183 |
+
from .lib._histograms_impl import (
|
| 184 |
+
histogram, histogram_bin_edges, histogramdd
|
| 185 |
+
)
|
| 186 |
+
from .lib._nanfunctions_impl import (
|
| 187 |
+
nanargmax, nanargmin, nancumprod, nancumsum, nanmax, nanmean,
|
| 188 |
+
nanmedian, nanmin, nanpercentile, nanprod, nanquantile, nanstd,
|
| 189 |
+
nansum, nanvar
|
| 190 |
+
)
|
| 191 |
+
from .lib._function_base_impl import (
|
| 192 |
+
select, piecewise, trim_zeros, copy, iterable, percentile, diff,
|
| 193 |
+
gradient, angle, unwrap, sort_complex, flip, rot90, extract, place,
|
| 194 |
+
vectorize, asarray_chkfinite, average, bincount, digitize, cov,
|
| 195 |
+
corrcoef, median, sinc, hamming, hanning, bartlett, blackman,
|
| 196 |
+
kaiser, trapezoid, trapz, i0, meshgrid, delete, insert, append,
|
| 197 |
+
interp, quantile
|
| 198 |
+
)
|
| 199 |
+
from .lib._twodim_base_impl import (
|
| 200 |
+
diag, diagflat, eye, fliplr, flipud, tri, triu, tril, vander,
|
| 201 |
+
histogram2d, mask_indices, tril_indices, tril_indices_from,
|
| 202 |
+
triu_indices, triu_indices_from
|
| 203 |
+
)
|
| 204 |
+
from .lib._shape_base_impl import (
|
| 205 |
+
apply_over_axes, apply_along_axis, array_split, column_stack, dsplit,
|
| 206 |
+
dstack, expand_dims, hsplit, kron, put_along_axis, row_stack, split,
|
| 207 |
+
take_along_axis, tile, vsplit
|
| 208 |
+
)
|
| 209 |
+
from .lib._type_check_impl import (
|
| 210 |
+
iscomplexobj, isrealobj, imag, iscomplex, isreal, nan_to_num, real,
|
| 211 |
+
real_if_close, typename, mintypecode, common_type
|
| 212 |
+
)
|
| 213 |
+
from .lib._arraysetops_impl import (
|
| 214 |
+
ediff1d, in1d, intersect1d, isin, setdiff1d, setxor1d, union1d,
|
| 215 |
+
unique, unique_all, unique_counts, unique_inverse, unique_values
|
| 216 |
+
)
|
| 217 |
+
from .lib._ufunclike_impl import fix, isneginf, isposinf
|
| 218 |
+
from .lib._arraypad_impl import pad
|
| 219 |
+
from .lib._utils_impl import (
|
| 220 |
+
show_runtime, get_include, info
|
| 221 |
+
)
|
| 222 |
+
from .lib._stride_tricks_impl import (
|
| 223 |
+
broadcast_arrays, broadcast_shapes, broadcast_to
|
| 224 |
+
)
|
| 225 |
+
from .lib._polynomial_impl import (
|
| 226 |
+
poly, polyint, polyder, polyadd, polysub, polymul, polydiv, polyval,
|
| 227 |
+
polyfit, poly1d, roots
|
| 228 |
+
)
|
| 229 |
+
from .lib._npyio_impl import (
|
| 230 |
+
savetxt, loadtxt, genfromtxt, load, save, savez, packbits,
|
| 231 |
+
savez_compressed, unpackbits, fromregex
|
| 232 |
+
)
|
| 233 |
+
from .lib._index_tricks_impl import (
|
| 234 |
+
diag_indices_from, diag_indices, fill_diagonal, ndindex, ndenumerate,
|
| 235 |
+
ix_, c_, r_, s_, ogrid, mgrid, unravel_index, ravel_multi_index,
|
| 236 |
+
index_exp
|
| 237 |
+
)
|
| 238 |
+
|
| 239 |
+
from . import matrixlib as _mat
|
| 240 |
+
from .matrixlib import (
|
| 241 |
+
asmatrix, bmat, matrix
|
| 242 |
+
)
|
| 243 |
+
|
| 244 |
+
# public submodules are imported lazily, therefore are accessible from
|
| 245 |
+
# __getattr__. Note that `distutils` (deprecated) and `array_api`
|
| 246 |
+
# (experimental label) are not added here, because `from numpy import *`
|
| 247 |
+
# must not raise any warnings - that's too disruptive.
|
| 248 |
+
__numpy_submodules__ = {
|
| 249 |
+
"linalg", "fft", "dtypes", "random", "polynomial", "ma",
|
| 250 |
+
"exceptions", "lib", "ctypeslib", "testing", "typing",
|
| 251 |
+
"f2py", "test", "rec", "char", "core", "strings",
|
| 252 |
+
}
|
| 253 |
+
|
| 254 |
+
# We build warning messages for former attributes
|
| 255 |
+
_msg = (
|
| 256 |
+
"module 'numpy' has no attribute '{n}'.\n"
|
| 257 |
+
"`np.{n}` was a deprecated alias for the builtin `{n}`. "
|
| 258 |
+
"To avoid this error in existing code, use `{n}` by itself. "
|
| 259 |
+
"Doing this will not modify any behavior and is safe. {extended_msg}\n"
|
| 260 |
+
"The aliases was originally deprecated in NumPy 1.20; for more "
|
| 261 |
+
"details and guidance see the original release note at:\n"
|
| 262 |
+
" https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations")
|
| 263 |
+
|
| 264 |
+
_specific_msg = (
|
| 265 |
+
"If you specifically wanted the numpy scalar type, use `np.{}` here.")
|
| 266 |
+
|
| 267 |
+
_int_extended_msg = (
|
| 268 |
+
"When replacing `np.{}`, you may wish to use e.g. `np.int64` "
|
| 269 |
+
"or `np.int32` to specify the precision. If you wish to review "
|
| 270 |
+
"your current use, check the release note link for "
|
| 271 |
+
"additional information.")
|
| 272 |
+
|
| 273 |
+
_type_info = [
|
| 274 |
+
("object", ""), # The NumPy scalar only exists by name.
|
| 275 |
+
("float", _specific_msg.format("float64")),
|
| 276 |
+
("complex", _specific_msg.format("complex128")),
|
| 277 |
+
("str", _specific_msg.format("str_")),
|
| 278 |
+
("int", _int_extended_msg.format("int"))]
|
| 279 |
+
|
| 280 |
+
__former_attrs__ = {
|
| 281 |
+
n: _msg.format(n=n, extended_msg=extended_msg)
|
| 282 |
+
for n, extended_msg in _type_info
|
| 283 |
+
}
|
| 284 |
+
|
| 285 |
+
|
| 286 |
+
# Some of these could be defined right away, but most were aliases to
|
| 287 |
+
# the Python objects and only removed in NumPy 1.24. Defining them should
|
| 288 |
+
# probably wait for NumPy 1.26 or 2.0.
|
| 289 |
+
# When defined, these should possibly not be added to `__all__` to avoid
|
| 290 |
+
# import with `from numpy import *`.
|
| 291 |
+
__future_scalars__ = {"str", "bytes", "object"}
|
| 292 |
+
|
| 293 |
+
__array_api_version__ = "2023.12"
|
| 294 |
+
|
| 295 |
+
from ._array_api_info import __array_namespace_info__
|
| 296 |
+
|
| 297 |
+
# now that numpy core module is imported, can initialize limits
|
| 298 |
+
_core.getlimits._register_known_types()
|
| 299 |
+
|
| 300 |
+
__all__ = list(
|
| 301 |
+
__numpy_submodules__ |
|
| 302 |
+
set(_core.__all__) |
|
| 303 |
+
set(_mat.__all__) |
|
| 304 |
+
set(lib._histograms_impl.__all__) |
|
| 305 |
+
set(lib._nanfunctions_impl.__all__) |
|
| 306 |
+
set(lib._function_base_impl.__all__) |
|
| 307 |
+
set(lib._twodim_base_impl.__all__) |
|
| 308 |
+
set(lib._shape_base_impl.__all__) |
|
| 309 |
+
set(lib._type_check_impl.__all__) |
|
| 310 |
+
set(lib._arraysetops_impl.__all__) |
|
| 311 |
+
set(lib._ufunclike_impl.__all__) |
|
| 312 |
+
set(lib._arraypad_impl.__all__) |
|
| 313 |
+
set(lib._utils_impl.__all__) |
|
| 314 |
+
set(lib._stride_tricks_impl.__all__) |
|
| 315 |
+
set(lib._polynomial_impl.__all__) |
|
| 316 |
+
set(lib._npyio_impl.__all__) |
|
| 317 |
+
set(lib._index_tricks_impl.__all__) |
|
| 318 |
+
{"emath", "show_config", "__version__", "__array_namespace_info__"}
|
| 319 |
+
)
|
| 320 |
+
|
| 321 |
+
# Filter out Cython harmless warnings
|
| 322 |
+
warnings.filterwarnings("ignore", message="numpy.dtype size changed")
|
| 323 |
+
warnings.filterwarnings("ignore", message="numpy.ufunc size changed")
|
| 324 |
+
warnings.filterwarnings("ignore", message="numpy.ndarray size changed")
|
| 325 |
+
|
| 326 |
+
def __getattr__(attr):
|
| 327 |
+
# Warn for expired attributes
|
| 328 |
+
import warnings
|
| 329 |
+
|
| 330 |
+
if attr == "linalg":
|
| 331 |
+
import numpy.linalg as linalg
|
| 332 |
+
return linalg
|
| 333 |
+
elif attr == "fft":
|
| 334 |
+
import numpy.fft as fft
|
| 335 |
+
return fft
|
| 336 |
+
elif attr == "dtypes":
|
| 337 |
+
import numpy.dtypes as dtypes
|
| 338 |
+
return dtypes
|
| 339 |
+
elif attr == "random":
|
| 340 |
+
import numpy.random as random
|
| 341 |
+
return random
|
| 342 |
+
elif attr == "polynomial":
|
| 343 |
+
import numpy.polynomial as polynomial
|
| 344 |
+
return polynomial
|
| 345 |
+
elif attr == "ma":
|
| 346 |
+
import numpy.ma as ma
|
| 347 |
+
return ma
|
| 348 |
+
elif attr == "ctypeslib":
|
| 349 |
+
import numpy.ctypeslib as ctypeslib
|
| 350 |
+
return ctypeslib
|
| 351 |
+
elif attr == "exceptions":
|
| 352 |
+
import numpy.exceptions as exceptions
|
| 353 |
+
return exceptions
|
| 354 |
+
elif attr == "testing":
|
| 355 |
+
import numpy.testing as testing
|
| 356 |
+
return testing
|
| 357 |
+
elif attr == "matlib":
|
| 358 |
+
import numpy.matlib as matlib
|
| 359 |
+
return matlib
|
| 360 |
+
elif attr == "f2py":
|
| 361 |
+
import numpy.f2py as f2py
|
| 362 |
+
return f2py
|
| 363 |
+
elif attr == "typing":
|
| 364 |
+
import numpy.typing as typing
|
| 365 |
+
return typing
|
| 366 |
+
elif attr == "rec":
|
| 367 |
+
import numpy.rec as rec
|
| 368 |
+
return rec
|
| 369 |
+
elif attr == "char":
|
| 370 |
+
import numpy.char as char
|
| 371 |
+
return char
|
| 372 |
+
elif attr == "array_api":
|
| 373 |
+
raise AttributeError("`numpy.array_api` is not available from "
|
| 374 |
+
"numpy 2.0 onwards", name=None)
|
| 375 |
+
elif attr == "core":
|
| 376 |
+
import numpy.core as core
|
| 377 |
+
return core
|
| 378 |
+
elif attr == "strings":
|
| 379 |
+
import numpy.strings as strings
|
| 380 |
+
return strings
|
| 381 |
+
elif attr == "distutils":
|
| 382 |
+
if 'distutils' in __numpy_submodules__:
|
| 383 |
+
import numpy.distutils as distutils
|
| 384 |
+
return distutils
|
| 385 |
+
else:
|
| 386 |
+
raise AttributeError("`numpy.distutils` is not available from "
|
| 387 |
+
"Python 3.12 onwards", name=None)
|
| 388 |
+
|
| 389 |
+
if attr in __future_scalars__:
|
| 390 |
+
# And future warnings for those that will change, but also give
|
| 391 |
+
# the AttributeError
|
| 392 |
+
warnings.warn(
|
| 393 |
+
f"In the future `np.{attr}` will be defined as the "
|
| 394 |
+
"corresponding NumPy scalar.", FutureWarning, stacklevel=2)
|
| 395 |
+
|
| 396 |
+
if attr in __former_attrs__:
|
| 397 |
+
raise AttributeError(__former_attrs__[attr], name=None)
|
| 398 |
+
|
| 399 |
+
if attr in __expired_attributes__:
|
| 400 |
+
raise AttributeError(
|
| 401 |
+
f"`np.{attr}` was removed in the NumPy 2.0 release. "
|
| 402 |
+
f"{__expired_attributes__[attr]}",
|
| 403 |
+
name=None
|
| 404 |
+
)
|
| 405 |
+
|
| 406 |
+
if attr == "chararray":
|
| 407 |
+
warnings.warn(
|
| 408 |
+
"`np.chararray` is deprecated and will be removed from "
|
| 409 |
+
"the main namespace in the future. Use an array with a string "
|
| 410 |
+
"or bytes dtype instead.", DeprecationWarning, stacklevel=2)
|
| 411 |
+
import numpy.char as char
|
| 412 |
+
return char.chararray
|
| 413 |
+
|
| 414 |
+
raise AttributeError("module {!r} has no attribute "
|
| 415 |
+
"{!r}".format(__name__, attr))
|
| 416 |
+
|
| 417 |
+
def __dir__():
|
| 418 |
+
public_symbols = (
|
| 419 |
+
globals().keys() | __numpy_submodules__
|
| 420 |
+
)
|
| 421 |
+
public_symbols -= {
|
| 422 |
+
"matrixlib", "matlib", "tests", "conftest", "version",
|
| 423 |
+
"compat", "distutils", "array_api"
|
| 424 |
+
}
|
| 425 |
+
return list(public_symbols)
|
| 426 |
+
|
| 427 |
+
# Pytest testing
|
| 428 |
+
from numpy._pytesttester import PytestTester
|
| 429 |
+
test = PytestTester(__name__)
|
| 430 |
+
del PytestTester
|
| 431 |
+
|
| 432 |
+
def _sanity_check():
|
| 433 |
+
"""
|
| 434 |
+
Quick sanity checks for common bugs caused by environment.
|
| 435 |
+
There are some cases e.g. with wrong BLAS ABI that cause wrong
|
| 436 |
+
results under specific runtime conditions that are not necessarily
|
| 437 |
+
achieved during test suite runs, and it is useful to catch those early.
|
| 438 |
+
|
| 439 |
+
See https://github.com/numpy/numpy/issues/8577 and other
|
| 440 |
+
similar bug reports.
|
| 441 |
+
|
| 442 |
+
"""
|
| 443 |
+
try:
|
| 444 |
+
x = ones(2, dtype=float32)
|
| 445 |
+
if not abs(x.dot(x) - float32(2.0)) < 1e-5:
|
| 446 |
+
raise AssertionError
|
| 447 |
+
except AssertionError:
|
| 448 |
+
msg = ("The current Numpy installation ({!r}) fails to "
|
| 449 |
+
"pass simple sanity checks. This can be caused for example "
|
| 450 |
+
"by incorrect BLAS library being linked in, or by mixing "
|
| 451 |
+
"package managers (pip, conda, apt, ...). Search closed "
|
| 452 |
+
"numpy issues for similar problems.")
|
| 453 |
+
raise RuntimeError(msg.format(__file__)) from None
|
| 454 |
+
|
| 455 |
+
_sanity_check()
|
| 456 |
+
del _sanity_check
|
| 457 |
+
|
| 458 |
+
def _mac_os_check():
|
| 459 |
+
"""
|
| 460 |
+
Quick Sanity check for Mac OS look for accelerate build bugs.
|
| 461 |
+
Testing numpy polyfit calls init_dgelsd(LAPACK)
|
| 462 |
+
"""
|
| 463 |
+
try:
|
| 464 |
+
c = array([3., 2., 1.])
|
| 465 |
+
x = linspace(0, 2, 5)
|
| 466 |
+
y = polyval(c, x)
|
| 467 |
+
_ = polyfit(x, y, 2, cov=True)
|
| 468 |
+
except ValueError:
|
| 469 |
+
pass
|
| 470 |
+
|
| 471 |
+
if sys.platform == "darwin":
|
| 472 |
+
from . import exceptions
|
| 473 |
+
with warnings.catch_warnings(record=True) as w:
|
| 474 |
+
_mac_os_check()
|
| 475 |
+
# Throw runtime error, if the test failed Check for warning and error_message
|
| 476 |
+
if len(w) > 0:
|
| 477 |
+
for _wn in w:
|
| 478 |
+
if _wn.category is exceptions.RankWarning:
|
| 479 |
+
# Ignore other warnings, they may not be relevant (see gh-25433).
|
| 480 |
+
error_message = (
|
| 481 |
+
f"{_wn.category.__name__}: {_wn.message}"
|
| 482 |
+
)
|
| 483 |
+
msg = (
|
| 484 |
+
"Polyfit sanity test emitted a warning, most likely due "
|
| 485 |
+
"to using a buggy Accelerate backend."
|
| 486 |
+
"\nIf you compiled yourself, more information is available at:"
|
| 487 |
+
"\nhttps://numpy.org/devdocs/building/index.html"
|
| 488 |
+
"\nOtherwise report this to the vendor "
|
| 489 |
+
"that provided NumPy.\n\n{}\n".format(error_message))
|
| 490 |
+
raise RuntimeError(msg)
|
| 491 |
+
del _wn
|
| 492 |
+
del w
|
| 493 |
+
del _mac_os_check
|
| 494 |
+
|
| 495 |
+
def hugepage_setup():
|
| 496 |
+
"""
|
| 497 |
+
We usually use madvise hugepages support, but on some old kernels it
|
| 498 |
+
is slow and thus better avoided. Specifically kernel version 4.6
|
| 499 |
+
had a bug fix which probably fixed this:
|
| 500 |
+
https://github.com/torvalds/linux/commit/7cf91a98e607c2f935dbcc177d70011e95b8faff
|
| 501 |
+
"""
|
| 502 |
+
use_hugepage = os.environ.get("NUMPY_MADVISE_HUGEPAGE", None)
|
| 503 |
+
if sys.platform == "linux" and use_hugepage is None:
|
| 504 |
+
# If there is an issue with parsing the kernel version,
|
| 505 |
+
# set use_hugepage to 0. Usage of LooseVersion will handle
|
| 506 |
+
# the kernel version parsing better, but avoided since it
|
| 507 |
+
# will increase the import time.
|
| 508 |
+
# See: #16679 for related discussion.
|
| 509 |
+
try:
|
| 510 |
+
use_hugepage = 1
|
| 511 |
+
kernel_version = os.uname().release.split(".")[:2]
|
| 512 |
+
kernel_version = tuple(int(v) for v in kernel_version)
|
| 513 |
+
if kernel_version < (4, 6):
|
| 514 |
+
use_hugepage = 0
|
| 515 |
+
except ValueError:
|
| 516 |
+
use_hugepage = 0
|
| 517 |
+
elif use_hugepage is None:
|
| 518 |
+
# This is not Linux, so it should not matter, just enable anyway
|
| 519 |
+
use_hugepage = 1
|
| 520 |
+
else:
|
| 521 |
+
use_hugepage = int(use_hugepage)
|
| 522 |
+
return use_hugepage
|
| 523 |
+
|
| 524 |
+
# Note that this will currently only make a difference on Linux
|
| 525 |
+
_core.multiarray._set_madvise_hugepage(hugepage_setup())
|
| 526 |
+
del hugepage_setup
|
| 527 |
+
|
| 528 |
+
# Give a warning if NumPy is reloaded or imported on a sub-interpreter
|
| 529 |
+
# We do this from python, since the C-module may not be reloaded and
|
| 530 |
+
# it is tidier organized.
|
| 531 |
+
_core.multiarray._multiarray_umath._reload_guard()
|
| 532 |
+
|
| 533 |
+
# TODO: Remove the environment variable entirely now that it is "weak"
|
| 534 |
+
if (os.environ.get("NPY_PROMOTION_STATE", "weak") != "weak"):
|
| 535 |
+
warnings.warn(
|
| 536 |
+
"NPY_PROMOTION_STATE was a temporary feature for NumPy 2.0 "
|
| 537 |
+
"transition and is ignored after NumPy 2.2.",
|
| 538 |
+
UserWarning, stacklevel=2)
|
| 539 |
+
|
| 540 |
+
# Tell PyInstaller where to find hook-numpy.py
|
| 541 |
+
def _pyinstaller_hooks_dir():
|
| 542 |
+
from pathlib import Path
|
| 543 |
+
return [str(Path(__file__).with_name("_pyinstaller").resolve())]
|
| 544 |
+
|
| 545 |
+
|
| 546 |
+
# Remove symbols imported for internal use
|
| 547 |
+
del os, sys, warnings
|
.venv/lib/python3.10/site-packages/numpy/__init__.pyi
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
.venv/lib/python3.10/site-packages/numpy/__pycache__/__config__.cpython-310.pyc
ADDED
|
Binary file (3.89 kB). View file
|
|
|
.venv/lib/python3.10/site-packages/numpy/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (22.5 kB). View file
|
|
|
.venv/lib/python3.10/site-packages/numpy/__pycache__/_array_api_info.cpython-310.pyc
ADDED
|
Binary file (9.24 kB). View file
|
|
|
.venv/lib/python3.10/site-packages/numpy/__pycache__/_distributor_init.cpython-310.pyc
ADDED
|
Binary file (646 Bytes). View file
|
|
|
.venv/lib/python3.10/site-packages/numpy/__pycache__/_expired_attrs_2_0.cpython-310.pyc
ADDED
|
Binary file (3.81 kB). View file
|
|
|
.venv/lib/python3.10/site-packages/numpy/__pycache__/_globals.cpython-310.pyc
ADDED
|
Binary file (3.52 kB). View file
|
|
|
.venv/lib/python3.10/site-packages/numpy/__pycache__/_pytesttester.cpython-310.pyc
ADDED
|
Binary file (5.74 kB). View file
|
|
|
.venv/lib/python3.10/site-packages/numpy/__pycache__/dtypes.cpython-310.pyc
ADDED
|
Binary file (1.33 kB). View file
|
|
|
.venv/lib/python3.10/site-packages/numpy/__pycache__/exceptions.cpython-310.pyc
ADDED
|
Binary file (8.25 kB). View file
|
|
|
.venv/lib/python3.10/site-packages/numpy/__pycache__/version.cpython-310.pyc
ADDED
|
Binary file (484 Bytes). View file
|
|
|
.venv/lib/python3.10/site-packages/numpy/_array_api_info.py
ADDED
|
@@ -0,0 +1,346 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Array API Inspection namespace
|
| 3 |
+
|
| 4 |
+
This is the namespace for inspection functions as defined by the array API
|
| 5 |
+
standard. See
|
| 6 |
+
https://data-apis.org/array-api/latest/API_specification/inspection.html for
|
| 7 |
+
more details.
|
| 8 |
+
|
| 9 |
+
"""
|
| 10 |
+
from numpy._core import (
|
| 11 |
+
dtype,
|
| 12 |
+
bool,
|
| 13 |
+
intp,
|
| 14 |
+
int8,
|
| 15 |
+
int16,
|
| 16 |
+
int32,
|
| 17 |
+
int64,
|
| 18 |
+
uint8,
|
| 19 |
+
uint16,
|
| 20 |
+
uint32,
|
| 21 |
+
uint64,
|
| 22 |
+
float32,
|
| 23 |
+
float64,
|
| 24 |
+
complex64,
|
| 25 |
+
complex128,
|
| 26 |
+
)
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
class __array_namespace_info__:
|
| 30 |
+
"""
|
| 31 |
+
Get the array API inspection namespace for NumPy.
|
| 32 |
+
|
| 33 |
+
The array API inspection namespace defines the following functions:
|
| 34 |
+
|
| 35 |
+
- capabilities()
|
| 36 |
+
- default_device()
|
| 37 |
+
- default_dtypes()
|
| 38 |
+
- dtypes()
|
| 39 |
+
- devices()
|
| 40 |
+
|
| 41 |
+
See
|
| 42 |
+
https://data-apis.org/array-api/latest/API_specification/inspection.html
|
| 43 |
+
for more details.
|
| 44 |
+
|
| 45 |
+
Returns
|
| 46 |
+
-------
|
| 47 |
+
info : ModuleType
|
| 48 |
+
The array API inspection namespace for NumPy.
|
| 49 |
+
|
| 50 |
+
Examples
|
| 51 |
+
--------
|
| 52 |
+
>>> info = np.__array_namespace_info__()
|
| 53 |
+
>>> info.default_dtypes()
|
| 54 |
+
{'real floating': numpy.float64,
|
| 55 |
+
'complex floating': numpy.complex128,
|
| 56 |
+
'integral': numpy.int64,
|
| 57 |
+
'indexing': numpy.int64}
|
| 58 |
+
|
| 59 |
+
"""
|
| 60 |
+
|
| 61 |
+
__module__ = 'numpy'
|
| 62 |
+
|
| 63 |
+
def capabilities(self):
|
| 64 |
+
"""
|
| 65 |
+
Return a dictionary of array API library capabilities.
|
| 66 |
+
|
| 67 |
+
The resulting dictionary has the following keys:
|
| 68 |
+
|
| 69 |
+
- **"boolean indexing"**: boolean indicating whether an array library
|
| 70 |
+
supports boolean indexing. Always ``True`` for NumPy.
|
| 71 |
+
|
| 72 |
+
- **"data-dependent shapes"**: boolean indicating whether an array
|
| 73 |
+
library supports data-dependent output shapes. Always ``True`` for
|
| 74 |
+
NumPy.
|
| 75 |
+
|
| 76 |
+
See
|
| 77 |
+
https://data-apis.org/array-api/latest/API_specification/generated/array_api.info.capabilities.html
|
| 78 |
+
for more details.
|
| 79 |
+
|
| 80 |
+
See Also
|
| 81 |
+
--------
|
| 82 |
+
__array_namespace_info__.default_device,
|
| 83 |
+
__array_namespace_info__.default_dtypes,
|
| 84 |
+
__array_namespace_info__.dtypes,
|
| 85 |
+
__array_namespace_info__.devices
|
| 86 |
+
|
| 87 |
+
Returns
|
| 88 |
+
-------
|
| 89 |
+
capabilities : dict
|
| 90 |
+
A dictionary of array API library capabilities.
|
| 91 |
+
|
| 92 |
+
Examples
|
| 93 |
+
--------
|
| 94 |
+
>>> info = np.__array_namespace_info__()
|
| 95 |
+
>>> info.capabilities()
|
| 96 |
+
{'boolean indexing': True,
|
| 97 |
+
'data-dependent shapes': True}
|
| 98 |
+
|
| 99 |
+
"""
|
| 100 |
+
return {
|
| 101 |
+
"boolean indexing": True,
|
| 102 |
+
"data-dependent shapes": True,
|
| 103 |
+
# 'max rank' will be part of the 2024.12 standard
|
| 104 |
+
# "max rank": 64,
|
| 105 |
+
}
|
| 106 |
+
|
| 107 |
+
def default_device(self):
|
| 108 |
+
"""
|
| 109 |
+
The default device used for new NumPy arrays.
|
| 110 |
+
|
| 111 |
+
For NumPy, this always returns ``'cpu'``.
|
| 112 |
+
|
| 113 |
+
See Also
|
| 114 |
+
--------
|
| 115 |
+
__array_namespace_info__.capabilities,
|
| 116 |
+
__array_namespace_info__.default_dtypes,
|
| 117 |
+
__array_namespace_info__.dtypes,
|
| 118 |
+
__array_namespace_info__.devices
|
| 119 |
+
|
| 120 |
+
Returns
|
| 121 |
+
-------
|
| 122 |
+
device : str
|
| 123 |
+
The default device used for new NumPy arrays.
|
| 124 |
+
|
| 125 |
+
Examples
|
| 126 |
+
--------
|
| 127 |
+
>>> info = np.__array_namespace_info__()
|
| 128 |
+
>>> info.default_device()
|
| 129 |
+
'cpu'
|
| 130 |
+
|
| 131 |
+
"""
|
| 132 |
+
return "cpu"
|
| 133 |
+
|
| 134 |
+
def default_dtypes(self, *, device=None):
|
| 135 |
+
"""
|
| 136 |
+
The default data types used for new NumPy arrays.
|
| 137 |
+
|
| 138 |
+
For NumPy, this always returns the following dictionary:
|
| 139 |
+
|
| 140 |
+
- **"real floating"**: ``numpy.float64``
|
| 141 |
+
- **"complex floating"**: ``numpy.complex128``
|
| 142 |
+
- **"integral"**: ``numpy.intp``
|
| 143 |
+
- **"indexing"**: ``numpy.intp``
|
| 144 |
+
|
| 145 |
+
Parameters
|
| 146 |
+
----------
|
| 147 |
+
device : str, optional
|
| 148 |
+
The device to get the default data types for. For NumPy, only
|
| 149 |
+
``'cpu'`` is allowed.
|
| 150 |
+
|
| 151 |
+
Returns
|
| 152 |
+
-------
|
| 153 |
+
dtypes : dict
|
| 154 |
+
A dictionary describing the default data types used for new NumPy
|
| 155 |
+
arrays.
|
| 156 |
+
|
| 157 |
+
See Also
|
| 158 |
+
--------
|
| 159 |
+
__array_namespace_info__.capabilities,
|
| 160 |
+
__array_namespace_info__.default_device,
|
| 161 |
+
__array_namespace_info__.dtypes,
|
| 162 |
+
__array_namespace_info__.devices
|
| 163 |
+
|
| 164 |
+
Examples
|
| 165 |
+
--------
|
| 166 |
+
>>> info = np.__array_namespace_info__()
|
| 167 |
+
>>> info.default_dtypes()
|
| 168 |
+
{'real floating': numpy.float64,
|
| 169 |
+
'complex floating': numpy.complex128,
|
| 170 |
+
'integral': numpy.int64,
|
| 171 |
+
'indexing': numpy.int64}
|
| 172 |
+
|
| 173 |
+
"""
|
| 174 |
+
if device not in ["cpu", None]:
|
| 175 |
+
raise ValueError(
|
| 176 |
+
'Device not understood. Only "cpu" is allowed, but received:'
|
| 177 |
+
f' {device}'
|
| 178 |
+
)
|
| 179 |
+
return {
|
| 180 |
+
"real floating": dtype(float64),
|
| 181 |
+
"complex floating": dtype(complex128),
|
| 182 |
+
"integral": dtype(intp),
|
| 183 |
+
"indexing": dtype(intp),
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
def dtypes(self, *, device=None, kind=None):
|
| 187 |
+
"""
|
| 188 |
+
The array API data types supported by NumPy.
|
| 189 |
+
|
| 190 |
+
Note that this function only returns data types that are defined by
|
| 191 |
+
the array API.
|
| 192 |
+
|
| 193 |
+
Parameters
|
| 194 |
+
----------
|
| 195 |
+
device : str, optional
|
| 196 |
+
The device to get the data types for. For NumPy, only ``'cpu'`` is
|
| 197 |
+
allowed.
|
| 198 |
+
kind : str or tuple of str, optional
|
| 199 |
+
The kind of data types to return. If ``None``, all data types are
|
| 200 |
+
returned. If a string, only data types of that kind are returned.
|
| 201 |
+
If a tuple, a dictionary containing the union of the given kinds
|
| 202 |
+
is returned. The following kinds are supported:
|
| 203 |
+
|
| 204 |
+
- ``'bool'``: boolean data types (i.e., ``bool``).
|
| 205 |
+
- ``'signed integer'``: signed integer data types (i.e., ``int8``,
|
| 206 |
+
``int16``, ``int32``, ``int64``).
|
| 207 |
+
- ``'unsigned integer'``: unsigned integer data types (i.e.,
|
| 208 |
+
``uint8``, ``uint16``, ``uint32``, ``uint64``).
|
| 209 |
+
- ``'integral'``: integer data types. Shorthand for ``('signed
|
| 210 |
+
integer', 'unsigned integer')``.
|
| 211 |
+
- ``'real floating'``: real-valued floating-point data types
|
| 212 |
+
(i.e., ``float32``, ``float64``).
|
| 213 |
+
- ``'complex floating'``: complex floating-point data types (i.e.,
|
| 214 |
+
``complex64``, ``complex128``).
|
| 215 |
+
- ``'numeric'``: numeric data types. Shorthand for ``('integral',
|
| 216 |
+
'real floating', 'complex floating')``.
|
| 217 |
+
|
| 218 |
+
Returns
|
| 219 |
+
-------
|
| 220 |
+
dtypes : dict
|
| 221 |
+
A dictionary mapping the names of data types to the corresponding
|
| 222 |
+
NumPy data types.
|
| 223 |
+
|
| 224 |
+
See Also
|
| 225 |
+
--------
|
| 226 |
+
__array_namespace_info__.capabilities,
|
| 227 |
+
__array_namespace_info__.default_device,
|
| 228 |
+
__array_namespace_info__.default_dtypes,
|
| 229 |
+
__array_namespace_info__.devices
|
| 230 |
+
|
| 231 |
+
Examples
|
| 232 |
+
--------
|
| 233 |
+
>>> info = np.__array_namespace_info__()
|
| 234 |
+
>>> info.dtypes(kind='signed integer')
|
| 235 |
+
{'int8': numpy.int8,
|
| 236 |
+
'int16': numpy.int16,
|
| 237 |
+
'int32': numpy.int32,
|
| 238 |
+
'int64': numpy.int64}
|
| 239 |
+
|
| 240 |
+
"""
|
| 241 |
+
if device not in ["cpu", None]:
|
| 242 |
+
raise ValueError(
|
| 243 |
+
'Device not understood. Only "cpu" is allowed, but received:'
|
| 244 |
+
f' {device}'
|
| 245 |
+
)
|
| 246 |
+
if kind is None:
|
| 247 |
+
return {
|
| 248 |
+
"bool": dtype(bool),
|
| 249 |
+
"int8": dtype(int8),
|
| 250 |
+
"int16": dtype(int16),
|
| 251 |
+
"int32": dtype(int32),
|
| 252 |
+
"int64": dtype(int64),
|
| 253 |
+
"uint8": dtype(uint8),
|
| 254 |
+
"uint16": dtype(uint16),
|
| 255 |
+
"uint32": dtype(uint32),
|
| 256 |
+
"uint64": dtype(uint64),
|
| 257 |
+
"float32": dtype(float32),
|
| 258 |
+
"float64": dtype(float64),
|
| 259 |
+
"complex64": dtype(complex64),
|
| 260 |
+
"complex128": dtype(complex128),
|
| 261 |
+
}
|
| 262 |
+
if kind == "bool":
|
| 263 |
+
return {"bool": bool}
|
| 264 |
+
if kind == "signed integer":
|
| 265 |
+
return {
|
| 266 |
+
"int8": dtype(int8),
|
| 267 |
+
"int16": dtype(int16),
|
| 268 |
+
"int32": dtype(int32),
|
| 269 |
+
"int64": dtype(int64),
|
| 270 |
+
}
|
| 271 |
+
if kind == "unsigned integer":
|
| 272 |
+
return {
|
| 273 |
+
"uint8": dtype(uint8),
|
| 274 |
+
"uint16": dtype(uint16),
|
| 275 |
+
"uint32": dtype(uint32),
|
| 276 |
+
"uint64": dtype(uint64),
|
| 277 |
+
}
|
| 278 |
+
if kind == "integral":
|
| 279 |
+
return {
|
| 280 |
+
"int8": dtype(int8),
|
| 281 |
+
"int16": dtype(int16),
|
| 282 |
+
"int32": dtype(int32),
|
| 283 |
+
"int64": dtype(int64),
|
| 284 |
+
"uint8": dtype(uint8),
|
| 285 |
+
"uint16": dtype(uint16),
|
| 286 |
+
"uint32": dtype(uint32),
|
| 287 |
+
"uint64": dtype(uint64),
|
| 288 |
+
}
|
| 289 |
+
if kind == "real floating":
|
| 290 |
+
return {
|
| 291 |
+
"float32": dtype(float32),
|
| 292 |
+
"float64": dtype(float64),
|
| 293 |
+
}
|
| 294 |
+
if kind == "complex floating":
|
| 295 |
+
return {
|
| 296 |
+
"complex64": dtype(complex64),
|
| 297 |
+
"complex128": dtype(complex128),
|
| 298 |
+
}
|
| 299 |
+
if kind == "numeric":
|
| 300 |
+
return {
|
| 301 |
+
"int8": dtype(int8),
|
| 302 |
+
"int16": dtype(int16),
|
| 303 |
+
"int32": dtype(int32),
|
| 304 |
+
"int64": dtype(int64),
|
| 305 |
+
"uint8": dtype(uint8),
|
| 306 |
+
"uint16": dtype(uint16),
|
| 307 |
+
"uint32": dtype(uint32),
|
| 308 |
+
"uint64": dtype(uint64),
|
| 309 |
+
"float32": dtype(float32),
|
| 310 |
+
"float64": dtype(float64),
|
| 311 |
+
"complex64": dtype(complex64),
|
| 312 |
+
"complex128": dtype(complex128),
|
| 313 |
+
}
|
| 314 |
+
if isinstance(kind, tuple):
|
| 315 |
+
res = {}
|
| 316 |
+
for k in kind:
|
| 317 |
+
res.update(self.dtypes(kind=k))
|
| 318 |
+
return res
|
| 319 |
+
raise ValueError(f"unsupported kind: {kind!r}")
|
| 320 |
+
|
| 321 |
+
def devices(self):
|
| 322 |
+
"""
|
| 323 |
+
The devices supported by NumPy.
|
| 324 |
+
|
| 325 |
+
For NumPy, this always returns ``['cpu']``.
|
| 326 |
+
|
| 327 |
+
Returns
|
| 328 |
+
-------
|
| 329 |
+
devices : list of str
|
| 330 |
+
The devices supported by NumPy.
|
| 331 |
+
|
| 332 |
+
See Also
|
| 333 |
+
--------
|
| 334 |
+
__array_namespace_info__.capabilities,
|
| 335 |
+
__array_namespace_info__.default_device,
|
| 336 |
+
__array_namespace_info__.default_dtypes,
|
| 337 |
+
__array_namespace_info__.dtypes
|
| 338 |
+
|
| 339 |
+
Examples
|
| 340 |
+
--------
|
| 341 |
+
>>> info = np.__array_namespace_info__()
|
| 342 |
+
>>> info.devices()
|
| 343 |
+
['cpu']
|
| 344 |
+
|
| 345 |
+
"""
|
| 346 |
+
return ["cpu"]
|
.venv/lib/python3.10/site-packages/numpy/_array_api_info.pyi
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from typing import (
|
| 2 |
+
ClassVar,
|
| 3 |
+
Literal,
|
| 4 |
+
TypeAlias,
|
| 5 |
+
TypedDict,
|
| 6 |
+
TypeVar,
|
| 7 |
+
final,
|
| 8 |
+
overload,
|
| 9 |
+
type_check_only,
|
| 10 |
+
)
|
| 11 |
+
from typing_extensions import Never
|
| 12 |
+
|
| 13 |
+
import numpy as np
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
_Device: TypeAlias = Literal["cpu"]
|
| 17 |
+
_DeviceLike: TypeAlias = None | _Device
|
| 18 |
+
|
| 19 |
+
_Capabilities = TypedDict(
|
| 20 |
+
"_Capabilities",
|
| 21 |
+
{
|
| 22 |
+
"boolean indexing": Literal[True],
|
| 23 |
+
"data-dependent shapes": Literal[True],
|
| 24 |
+
},
|
| 25 |
+
)
|
| 26 |
+
|
| 27 |
+
_DefaultDTypes = TypedDict(
|
| 28 |
+
"_DefaultDTypes",
|
| 29 |
+
{
|
| 30 |
+
"real floating": np.dtype[np.float64],
|
| 31 |
+
"complex floating": np.dtype[np.complex128],
|
| 32 |
+
"integral": np.dtype[np.intp],
|
| 33 |
+
"indexing": np.dtype[np.intp],
|
| 34 |
+
},
|
| 35 |
+
)
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
_KindBool: TypeAlias = Literal["bool"]
|
| 39 |
+
_KindInt: TypeAlias = Literal["signed integer"]
|
| 40 |
+
_KindUInt: TypeAlias = Literal["unsigned integer"]
|
| 41 |
+
_KindInteger: TypeAlias = Literal["integral"]
|
| 42 |
+
_KindFloat: TypeAlias = Literal["real floating"]
|
| 43 |
+
_KindComplex: TypeAlias = Literal["complex floating"]
|
| 44 |
+
_KindNumber: TypeAlias = Literal["numeric"]
|
| 45 |
+
_Kind: TypeAlias = (
|
| 46 |
+
_KindBool
|
| 47 |
+
| _KindInt
|
| 48 |
+
| _KindUInt
|
| 49 |
+
| _KindInteger
|
| 50 |
+
| _KindFloat
|
| 51 |
+
| _KindComplex
|
| 52 |
+
| _KindNumber
|
| 53 |
+
)
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
_T1 = TypeVar("_T1")
|
| 57 |
+
_T2 = TypeVar("_T2")
|
| 58 |
+
_T3 = TypeVar("_T3")
|
| 59 |
+
_Permute1: TypeAlias = _T1 | tuple[_T1]
|
| 60 |
+
_Permute2: TypeAlias = tuple[_T1, _T2] | tuple[_T2, _T1]
|
| 61 |
+
_Permute3: TypeAlias = (
|
| 62 |
+
tuple[_T1, _T2, _T3] | tuple[_T1, _T3, _T2]
|
| 63 |
+
| tuple[_T2, _T1, _T3] | tuple[_T2, _T3, _T1]
|
| 64 |
+
| tuple[_T3, _T1, _T2] | tuple[_T3, _T2, _T1]
|
| 65 |
+
)
|
| 66 |
+
|
| 67 |
+
@type_check_only
|
| 68 |
+
class _DTypesBool(TypedDict):
|
| 69 |
+
bool: np.dtype[np.bool]
|
| 70 |
+
|
| 71 |
+
@type_check_only
|
| 72 |
+
class _DTypesInt(TypedDict):
|
| 73 |
+
int8: np.dtype[np.int8]
|
| 74 |
+
int16: np.dtype[np.int16]
|
| 75 |
+
int32: np.dtype[np.int32]
|
| 76 |
+
int64: np.dtype[np.int64]
|
| 77 |
+
|
| 78 |
+
@type_check_only
|
| 79 |
+
class _DTypesUInt(TypedDict):
|
| 80 |
+
uint8: np.dtype[np.uint8]
|
| 81 |
+
uint16: np.dtype[np.uint16]
|
| 82 |
+
uint32: np.dtype[np.uint32]
|
| 83 |
+
uint64: np.dtype[np.uint64]
|
| 84 |
+
|
| 85 |
+
@type_check_only
|
| 86 |
+
class _DTypesInteger(_DTypesInt, _DTypesUInt): ...
|
| 87 |
+
|
| 88 |
+
@type_check_only
|
| 89 |
+
class _DTypesFloat(TypedDict):
|
| 90 |
+
float32: np.dtype[np.float32]
|
| 91 |
+
float64: np.dtype[np.float64]
|
| 92 |
+
|
| 93 |
+
@type_check_only
|
| 94 |
+
class _DTypesComplex(TypedDict):
|
| 95 |
+
complex64: np.dtype[np.complex64]
|
| 96 |
+
complex128: np.dtype[np.complex128]
|
| 97 |
+
|
| 98 |
+
@type_check_only
|
| 99 |
+
class _DTypesNumber(_DTypesInteger, _DTypesFloat, _DTypesComplex): ...
|
| 100 |
+
|
| 101 |
+
@type_check_only
|
| 102 |
+
class _DTypes(_DTypesBool, _DTypesNumber): ...
|
| 103 |
+
|
| 104 |
+
@type_check_only
|
| 105 |
+
class _DTypesUnion(TypedDict, total=False):
|
| 106 |
+
bool: np.dtype[np.bool]
|
| 107 |
+
int8: np.dtype[np.int8]
|
| 108 |
+
int16: np.dtype[np.int16]
|
| 109 |
+
int32: np.dtype[np.int32]
|
| 110 |
+
int64: np.dtype[np.int64]
|
| 111 |
+
uint8: np.dtype[np.uint8]
|
| 112 |
+
uint16: np.dtype[np.uint16]
|
| 113 |
+
uint32: np.dtype[np.uint32]
|
| 114 |
+
uint64: np.dtype[np.uint64]
|
| 115 |
+
float32: np.dtype[np.float32]
|
| 116 |
+
float64: np.dtype[np.float64]
|
| 117 |
+
complex64: np.dtype[np.complex64]
|
| 118 |
+
complex128: np.dtype[np.complex128]
|
| 119 |
+
|
| 120 |
+
_EmptyDict: TypeAlias = dict[Never, Never]
|
| 121 |
+
|
| 122 |
+
@final
|
| 123 |
+
class __array_namespace_info__:
|
| 124 |
+
__module__: ClassVar[Literal['numpy']]
|
| 125 |
+
|
| 126 |
+
def capabilities(self) -> _Capabilities: ...
|
| 127 |
+
def default_device(self) -> _Device: ...
|
| 128 |
+
def default_dtypes(
|
| 129 |
+
self,
|
| 130 |
+
*,
|
| 131 |
+
device: _DeviceLike = ...,
|
| 132 |
+
) -> _DefaultDTypes: ...
|
| 133 |
+
def devices(self) -> list[_Device]: ...
|
| 134 |
+
|
| 135 |
+
@overload
|
| 136 |
+
def dtypes(
|
| 137 |
+
self,
|
| 138 |
+
*,
|
| 139 |
+
device: _DeviceLike = ...,
|
| 140 |
+
kind: None = ...,
|
| 141 |
+
) -> _DTypes: ...
|
| 142 |
+
@overload
|
| 143 |
+
def dtypes(
|
| 144 |
+
self,
|
| 145 |
+
*,
|
| 146 |
+
device: _DeviceLike = ...,
|
| 147 |
+
kind: _Permute1[_KindBool],
|
| 148 |
+
) -> _DTypesBool: ...
|
| 149 |
+
@overload
|
| 150 |
+
def dtypes(
|
| 151 |
+
self,
|
| 152 |
+
*,
|
| 153 |
+
device: _DeviceLike = ...,
|
| 154 |
+
kind: _Permute1[_KindInt],
|
| 155 |
+
) -> _DTypesInt: ...
|
| 156 |
+
@overload
|
| 157 |
+
def dtypes(
|
| 158 |
+
self,
|
| 159 |
+
*,
|
| 160 |
+
device: _DeviceLike = ...,
|
| 161 |
+
kind: _Permute1[_KindUInt],
|
| 162 |
+
) -> _DTypesUInt: ...
|
| 163 |
+
@overload
|
| 164 |
+
def dtypes(
|
| 165 |
+
self,
|
| 166 |
+
*,
|
| 167 |
+
device: _DeviceLike = ...,
|
| 168 |
+
kind: _Permute1[_KindFloat],
|
| 169 |
+
) -> _DTypesFloat: ...
|
| 170 |
+
@overload
|
| 171 |
+
def dtypes(
|
| 172 |
+
self,
|
| 173 |
+
*,
|
| 174 |
+
device: _DeviceLike = ...,
|
| 175 |
+
kind: _Permute1[_KindComplex],
|
| 176 |
+
) -> _DTypesComplex: ...
|
| 177 |
+
@overload
|
| 178 |
+
def dtypes(
|
| 179 |
+
self,
|
| 180 |
+
*,
|
| 181 |
+
device: _DeviceLike = ...,
|
| 182 |
+
kind: (
|
| 183 |
+
_Permute1[_KindInteger]
|
| 184 |
+
| _Permute2[_KindInt, _KindUInt]
|
| 185 |
+
),
|
| 186 |
+
) -> _DTypesInteger: ...
|
| 187 |
+
@overload
|
| 188 |
+
def dtypes(
|
| 189 |
+
self,
|
| 190 |
+
*,
|
| 191 |
+
device: _DeviceLike = ...,
|
| 192 |
+
kind: (
|
| 193 |
+
_Permute1[_KindNumber]
|
| 194 |
+
| _Permute3[_KindInteger, _KindFloat, _KindComplex]
|
| 195 |
+
),
|
| 196 |
+
) -> _DTypesNumber: ...
|
| 197 |
+
@overload
|
| 198 |
+
def dtypes(
|
| 199 |
+
self,
|
| 200 |
+
*,
|
| 201 |
+
device: _DeviceLike = ...,
|
| 202 |
+
kind: tuple[()],
|
| 203 |
+
) -> _EmptyDict: ...
|
| 204 |
+
@overload
|
| 205 |
+
def dtypes(
|
| 206 |
+
self,
|
| 207 |
+
*,
|
| 208 |
+
device: _DeviceLike = ...,
|
| 209 |
+
kind: tuple[_Kind, ...],
|
| 210 |
+
) -> _DTypesUnion: ...
|
.venv/lib/python3.10/site-packages/numpy/_configtool.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import argparse
|
| 2 |
+
from pathlib import Path
|
| 3 |
+
import sys
|
| 4 |
+
|
| 5 |
+
from .version import __version__
|
| 6 |
+
from .lib._utils_impl import get_include
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
def main() -> None:
|
| 10 |
+
parser = argparse.ArgumentParser()
|
| 11 |
+
parser.add_argument(
|
| 12 |
+
"--version",
|
| 13 |
+
action="version",
|
| 14 |
+
version=__version__,
|
| 15 |
+
help="Print the version and exit.",
|
| 16 |
+
)
|
| 17 |
+
parser.add_argument(
|
| 18 |
+
"--cflags",
|
| 19 |
+
action="store_true",
|
| 20 |
+
help="Compile flag needed when using the NumPy headers.",
|
| 21 |
+
)
|
| 22 |
+
parser.add_argument(
|
| 23 |
+
"--pkgconfigdir",
|
| 24 |
+
action="store_true",
|
| 25 |
+
help=("Print the pkgconfig directory in which `numpy.pc` is stored "
|
| 26 |
+
"(useful for setting $PKG_CONFIG_PATH)."),
|
| 27 |
+
)
|
| 28 |
+
args = parser.parse_args()
|
| 29 |
+
if not sys.argv[1:]:
|
| 30 |
+
parser.print_help()
|
| 31 |
+
if args.cflags:
|
| 32 |
+
print("-I" + get_include())
|
| 33 |
+
if args.pkgconfigdir:
|
| 34 |
+
_path = Path(get_include()) / '..' / 'lib' / 'pkgconfig'
|
| 35 |
+
print(_path.resolve())
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
if __name__ == "__main__":
|
| 39 |
+
main()
|
.venv/lib/python3.10/site-packages/numpy/_configtool.pyi
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
def main() -> None: ...
|
.venv/lib/python3.10/site-packages/numpy/_core/__init__.py
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Contains the core of NumPy: ndarray, ufuncs, dtypes, etc.
|
| 3 |
+
|
| 4 |
+
Please note that this module is private. All functions and objects
|
| 5 |
+
are available in the main ``numpy`` namespace - use that instead.
|
| 6 |
+
|
| 7 |
+
"""
|
| 8 |
+
|
| 9 |
+
import os
|
| 10 |
+
|
| 11 |
+
from numpy.version import version as __version__
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
# disables OpenBLAS affinity setting of the main thread that limits
|
| 15 |
+
# python threads or processes to one core
|
| 16 |
+
env_added = []
|
| 17 |
+
for envkey in ['OPENBLAS_MAIN_FREE', 'GOTOBLAS_MAIN_FREE']:
|
| 18 |
+
if envkey not in os.environ:
|
| 19 |
+
os.environ[envkey] = '1'
|
| 20 |
+
env_added.append(envkey)
|
| 21 |
+
|
| 22 |
+
try:
|
| 23 |
+
from . import multiarray
|
| 24 |
+
except ImportError as exc:
|
| 25 |
+
import sys
|
| 26 |
+
msg = """
|
| 27 |
+
|
| 28 |
+
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
|
| 29 |
+
|
| 30 |
+
Importing the numpy C-extensions failed. This error can happen for
|
| 31 |
+
many reasons, often due to issues with your setup or how NumPy was
|
| 32 |
+
installed.
|
| 33 |
+
|
| 34 |
+
We have compiled some common reasons and troubleshooting tips at:
|
| 35 |
+
|
| 36 |
+
https://numpy.org/devdocs/user/troubleshooting-importerror.html
|
| 37 |
+
|
| 38 |
+
Please note and check the following:
|
| 39 |
+
|
| 40 |
+
* The Python version is: Python%d.%d from "%s"
|
| 41 |
+
* The NumPy version is: "%s"
|
| 42 |
+
|
| 43 |
+
and make sure that they are the versions you expect.
|
| 44 |
+
Please carefully study the documentation linked above for further help.
|
| 45 |
+
|
| 46 |
+
Original error was: %s
|
| 47 |
+
""" % (sys.version_info[0], sys.version_info[1], sys.executable,
|
| 48 |
+
__version__, exc)
|
| 49 |
+
raise ImportError(msg)
|
| 50 |
+
finally:
|
| 51 |
+
for envkey in env_added:
|
| 52 |
+
del os.environ[envkey]
|
| 53 |
+
del envkey
|
| 54 |
+
del env_added
|
| 55 |
+
del os
|
| 56 |
+
|
| 57 |
+
from . import umath
|
| 58 |
+
|
| 59 |
+
# Check that multiarray,umath are pure python modules wrapping
|
| 60 |
+
# _multiarray_umath and not either of the old c-extension modules
|
| 61 |
+
if not (hasattr(multiarray, '_multiarray_umath') and
|
| 62 |
+
hasattr(umath, '_multiarray_umath')):
|
| 63 |
+
import sys
|
| 64 |
+
path = sys.modules['numpy'].__path__
|
| 65 |
+
msg = ("Something is wrong with the numpy installation. "
|
| 66 |
+
"While importing we detected an older version of "
|
| 67 |
+
"numpy in {}. One method of fixing this is to repeatedly uninstall "
|
| 68 |
+
"numpy until none is found, then reinstall this version.")
|
| 69 |
+
raise ImportError(msg.format(path))
|
| 70 |
+
|
| 71 |
+
from . import numerictypes as nt
|
| 72 |
+
from .numerictypes import sctypes, sctypeDict
|
| 73 |
+
multiarray.set_typeDict(nt.sctypeDict)
|
| 74 |
+
from . import numeric
|
| 75 |
+
from .numeric import *
|
| 76 |
+
from . import fromnumeric
|
| 77 |
+
from .fromnumeric import *
|
| 78 |
+
from .records import record, recarray
|
| 79 |
+
# Note: module name memmap is overwritten by a class with same name
|
| 80 |
+
from .memmap import *
|
| 81 |
+
from . import function_base
|
| 82 |
+
from .function_base import *
|
| 83 |
+
from . import _machar
|
| 84 |
+
from . import getlimits
|
| 85 |
+
from .getlimits import *
|
| 86 |
+
from . import shape_base
|
| 87 |
+
from .shape_base import *
|
| 88 |
+
from . import einsumfunc
|
| 89 |
+
from .einsumfunc import *
|
| 90 |
+
del nt
|
| 91 |
+
|
| 92 |
+
from .numeric import absolute as abs
|
| 93 |
+
|
| 94 |
+
# do this after everything else, to minimize the chance of this misleadingly
|
| 95 |
+
# appearing in an import-time traceback
|
| 96 |
+
from . import _add_newdocs
|
| 97 |
+
from . import _add_newdocs_scalars
|
| 98 |
+
# add these for module-freeze analysis (like PyInstaller)
|
| 99 |
+
from . import _dtype_ctypes
|
| 100 |
+
from . import _internal
|
| 101 |
+
from . import _dtype
|
| 102 |
+
from . import _methods
|
| 103 |
+
|
| 104 |
+
acos = numeric.arccos
|
| 105 |
+
acosh = numeric.arccosh
|
| 106 |
+
asin = numeric.arcsin
|
| 107 |
+
asinh = numeric.arcsinh
|
| 108 |
+
atan = numeric.arctan
|
| 109 |
+
atanh = numeric.arctanh
|
| 110 |
+
atan2 = numeric.arctan2
|
| 111 |
+
concat = numeric.concatenate
|
| 112 |
+
bitwise_left_shift = numeric.left_shift
|
| 113 |
+
bitwise_invert = numeric.invert
|
| 114 |
+
bitwise_right_shift = numeric.right_shift
|
| 115 |
+
permute_dims = numeric.transpose
|
| 116 |
+
pow = numeric.power
|
| 117 |
+
|
| 118 |
+
__all__ = [
|
| 119 |
+
"abs", "acos", "acosh", "asin", "asinh", "atan", "atanh", "atan2",
|
| 120 |
+
"bitwise_invert", "bitwise_left_shift", "bitwise_right_shift", "concat",
|
| 121 |
+
"pow", "permute_dims", "memmap", "sctypeDict", "record", "recarray"
|
| 122 |
+
]
|
| 123 |
+
__all__ += numeric.__all__
|
| 124 |
+
__all__ += function_base.__all__
|
| 125 |
+
__all__ += getlimits.__all__
|
| 126 |
+
__all__ += shape_base.__all__
|
| 127 |
+
__all__ += einsumfunc.__all__
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
def _ufunc_reduce(func):
|
| 131 |
+
# Report the `__name__`. pickle will try to find the module. Note that
|
| 132 |
+
# pickle supports for this `__name__` to be a `__qualname__`. It may
|
| 133 |
+
# make sense to add a `__qualname__` to ufuncs, to allow this more
|
| 134 |
+
# explicitly (Numba has ufuncs as attributes).
|
| 135 |
+
# See also: https://github.com/dask/distributed/issues/3450
|
| 136 |
+
return func.__name__
|
| 137 |
+
|
| 138 |
+
|
| 139 |
+
def _DType_reconstruct(scalar_type):
|
| 140 |
+
# This is a work-around to pickle type(np.dtype(np.float64)), etc.
|
| 141 |
+
# and it should eventually be replaced with a better solution, e.g. when
|
| 142 |
+
# DTypes become HeapTypes.
|
| 143 |
+
return type(dtype(scalar_type))
|
| 144 |
+
|
| 145 |
+
|
| 146 |
+
def _DType_reduce(DType):
|
| 147 |
+
# As types/classes, most DTypes can simply be pickled by their name:
|
| 148 |
+
if not DType._legacy or DType.__module__ == "numpy.dtypes":
|
| 149 |
+
return DType.__name__
|
| 150 |
+
|
| 151 |
+
# However, user defined legacy dtypes (like rational) do not end up in
|
| 152 |
+
# `numpy.dtypes` as module and do not have a public class at all.
|
| 153 |
+
# For these, we pickle them by reconstructing them from the scalar type:
|
| 154 |
+
scalar_type = DType.type
|
| 155 |
+
return _DType_reconstruct, (scalar_type,)
|
| 156 |
+
|
| 157 |
+
|
| 158 |
+
def __getattr__(name):
|
| 159 |
+
# Deprecated 2022-11-22, NumPy 1.25.
|
| 160 |
+
if name == "MachAr":
|
| 161 |
+
import warnings
|
| 162 |
+
warnings.warn(
|
| 163 |
+
"The `np._core.MachAr` is considered private API (NumPy 1.24)",
|
| 164 |
+
DeprecationWarning, stacklevel=2,
|
| 165 |
+
)
|
| 166 |
+
return _machar.MachAr
|
| 167 |
+
raise AttributeError(f"Module {__name__!r} has no attribute {name!r}")
|
| 168 |
+
|
| 169 |
+
|
| 170 |
+
import copyreg
|
| 171 |
+
|
| 172 |
+
copyreg.pickle(ufunc, _ufunc_reduce)
|
| 173 |
+
copyreg.pickle(type(dtype), _DType_reduce, _DType_reconstruct)
|
| 174 |
+
|
| 175 |
+
# Unclutter namespace (must keep _*_reconstruct for unpickling)
|
| 176 |
+
del copyreg, _ufunc_reduce, _DType_reduce
|
| 177 |
+
|
| 178 |
+
from numpy._pytesttester import PytestTester
|
| 179 |
+
test = PytestTester(__name__)
|
| 180 |
+
del PytestTester
|
.venv/lib/python3.10/site-packages/numpy/_core/__init__.pyi
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# NOTE: The `np._core` namespace is deliberately kept empty due to it
|
| 2 |
+
# being private
|