shreyask commited on
Commit
cea13cd
·
verified ·
1 Parent(s): 7ccb023

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +18 -0
  2. .venv/.gitignore +1 -0
  3. .venv/.lock +0 -0
  4. .venv/CACHEDIR.TAG +1 -0
  5. .venv/bin/activate +130 -0
  6. .venv/bin/activate.bat +71 -0
  7. .venv/bin/activate.csh +76 -0
  8. .venv/bin/activate.fish +124 -0
  9. .venv/bin/activate.nu +102 -0
  10. .venv/bin/activate.ps1 +82 -0
  11. .venv/bin/activate_this.py +59 -0
  12. .venv/bin/deactivate.bat +39 -0
  13. .venv/bin/f2py +10 -0
  14. .venv/bin/numpy-config +10 -0
  15. .venv/bin/pydoc.bat +22 -0
  16. .venv/bin/python +0 -0
  17. .venv/bin/python3 +0 -0
  18. .venv/bin/python3.10 +0 -0
  19. .venv/lib/python3.10/site-packages/__pycache__/_virtualenv.cpython-310.pyc +0 -0
  20. .venv/lib/python3.10/site-packages/_virtualenv.pth +3 -0
  21. .venv/lib/python3.10/site-packages/_virtualenv.py +101 -0
  22. .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/INSTALLER +1 -0
  23. .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/LICENSE.txt +970 -0
  24. .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/METADATA +1091 -0
  25. .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/RECORD +1005 -0
  26. .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/REQUESTED +0 -0
  27. .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/WHEEL +4 -0
  28. .venv/lib/python3.10/site-packages/numpy-2.2.6.dist-info/entry_points.txt +10 -0
  29. .venv/lib/python3.10/site-packages/numpy/__config__.py +170 -0
  30. .venv/lib/python3.10/site-packages/numpy/__config__.pyi +102 -0
  31. .venv/lib/python3.10/site-packages/numpy/__init__.cython-30.pxd +1250 -0
  32. .venv/lib/python3.10/site-packages/numpy/__init__.pxd +1164 -0
  33. .venv/lib/python3.10/site-packages/numpy/__init__.py +547 -0
  34. .venv/lib/python3.10/site-packages/numpy/__init__.pyi +0 -0
  35. .venv/lib/python3.10/site-packages/numpy/__pycache__/__config__.cpython-310.pyc +0 -0
  36. .venv/lib/python3.10/site-packages/numpy/__pycache__/__init__.cpython-310.pyc +0 -0
  37. .venv/lib/python3.10/site-packages/numpy/__pycache__/_array_api_info.cpython-310.pyc +0 -0
  38. .venv/lib/python3.10/site-packages/numpy/__pycache__/_distributor_init.cpython-310.pyc +0 -0
  39. .venv/lib/python3.10/site-packages/numpy/__pycache__/_expired_attrs_2_0.cpython-310.pyc +0 -0
  40. .venv/lib/python3.10/site-packages/numpy/__pycache__/_globals.cpython-310.pyc +0 -0
  41. .venv/lib/python3.10/site-packages/numpy/__pycache__/_pytesttester.cpython-310.pyc +0 -0
  42. .venv/lib/python3.10/site-packages/numpy/__pycache__/dtypes.cpython-310.pyc +0 -0
  43. .venv/lib/python3.10/site-packages/numpy/__pycache__/exceptions.cpython-310.pyc +0 -0
  44. .venv/lib/python3.10/site-packages/numpy/__pycache__/version.cpython-310.pyc +0 -0
  45. .venv/lib/python3.10/site-packages/numpy/_array_api_info.py +346 -0
  46. .venv/lib/python3.10/site-packages/numpy/_array_api_info.pyi +210 -0
  47. .venv/lib/python3.10/site-packages/numpy/_configtool.py +39 -0
  48. .venv/lib/python3.10/site-packages/numpy/_configtool.pyi +1 -0
  49. .venv/lib/python3.10/site-packages/numpy/_core/__init__.py +180 -0
  50. .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
+ [![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](
1013
+ https://numfocus.org)
1014
+ [![PyPI Downloads](https://img.shields.io/pypi/dm/numpy.svg?label=PyPI%20downloads)](
1015
+ https://pypi.org/project/numpy/)
1016
+ [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/numpy.svg?label=Conda%20downloads)](
1017
+ https://anaconda.org/conda-forge/numpy)
1018
+ [![Stack Overflow](https://img.shields.io/badge/stackoverflow-Ask%20questions-blue.svg)](
1019
+ https://stackoverflow.com/questions/tagged/numpy)
1020
+ [![Nature Paper](https://img.shields.io/badge/DOI-10.1038%2Fs41586--020--2649--2-blue)](
1021
+ https://doi.org/10.1038/s41586-020-2649-2)
1022
+ [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/numpy/numpy/badge)](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