Auto-sync: 2026-06-25 22:43:25 (part 9)
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_pytesttester.py +201 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_pytesttester.pyi +18 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/__init__.py +173 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_add_docstring.py +153 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_array_like.py +106 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_char_codes.py +213 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_dtype_like.py +114 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_extended_precision.py +15 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_nbit.py +19 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_nbit_base.py +94 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_nbit_base.pyi +39 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_nested_sequence.py +79 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_scalars.py +20 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_shape.py +8 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_ufunc.py +7 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_ufunc.pyi +975 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/__init__.py +95 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/__init__.pyi +28 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_convertions.py +18 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_convertions.pyi +4 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_inspect.py +192 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_inspect.pyi +70 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_pep440.py +486 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_pep440.pyi +118 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/char/__init__.py +2 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/char/__init__.pyi +111 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/conftest.py +248 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/__init__.py +33 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/__init__.pyi +0 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_dtype.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_dtype.pyi +0 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_dtype_ctypes.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_dtype_ctypes.pyi +0 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_internal.py +27 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_multiarray_umath.py +57 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_utils.py +21 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/arrayprint.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/defchararray.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/einsumfunc.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/fromnumeric.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/function_base.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/getlimits.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/multiarray.py +25 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/numeric.py +12 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/numerictypes.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/overrides.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/overrides.pyi +7 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/records.py +10 -0
- outputs/audit_venv/lib/python3.11/site-packages/numpy/core/shape_base.py +10 -0
.gitattributes
CHANGED
|
@@ -73,3 +73,13 @@ outputs/audit_venv/lib/python3.11/site-packages/networkx/drawing/tests/baseline/
|
|
| 73 |
outputs/audit_venv/lib/python3.11/site-packages/numpy/_core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 74 |
outputs/audit_venv/lib/python3.11/site-packages/numpy/_core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 75 |
outputs/audit_venv/lib/python3.11/site-packages/numpy/_core/_simd.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 73 |
outputs/audit_venv/lib/python3.11/site-packages/numpy/_core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 74 |
outputs/audit_venv/lib/python3.11/site-packages/numpy/_core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 75 |
outputs/audit_venv/lib/python3.11/site-packages/numpy/_core/_simd.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 76 |
+
outputs/audit_venv/lib/python3.11/site-packages/numpy/fft/_pocketfft_umath.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 77 |
+
outputs/audit_venv/lib/python3.11/site-packages/numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 78 |
+
outputs/audit_venv/lib/python3.11/site-packages/numpy/random/_bounded_integers.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 79 |
+
outputs/audit_venv/lib/python3.11/site-packages/numpy/random/_common.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 80 |
+
outputs/audit_venv/lib/python3.11/site-packages/numpy/random/_generator.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 81 |
+
outputs/audit_venv/lib/python3.11/site-packages/numpy/random/_mt19937.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 82 |
+
outputs/audit_venv/lib/python3.11/site-packages/numpy/random/_pcg64.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 83 |
+
outputs/audit_venv/lib/python3.11/site-packages/numpy/random/_philox.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 84 |
+
outputs/audit_venv/lib/python3.11/site-packages/numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 85 |
+
outputs/audit_venv/lib/python3.11/site-packages/numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_pytesttester.py
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Pytest test running.
|
| 3 |
+
|
| 4 |
+
This module implements the ``test()`` function for NumPy modules. The usual
|
| 5 |
+
boiler plate for doing that is to put the following in the module
|
| 6 |
+
``__init__.py`` file::
|
| 7 |
+
|
| 8 |
+
from numpy._pytesttester import PytestTester
|
| 9 |
+
test = PytestTester(__name__)
|
| 10 |
+
del PytestTester
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
Warnings filtering and other runtime settings should be dealt with in the
|
| 14 |
+
``pytest.ini`` file in the numpy repo root. The behavior of the test depends on
|
| 15 |
+
whether or not that file is found as follows:
|
| 16 |
+
|
| 17 |
+
* ``pytest.ini`` is present (develop mode)
|
| 18 |
+
All warnings except those explicitly filtered out are raised as error.
|
| 19 |
+
* ``pytest.ini`` is absent (release mode)
|
| 20 |
+
DeprecationWarnings and PendingDeprecationWarnings are ignored, other
|
| 21 |
+
warnings are passed through.
|
| 22 |
+
|
| 23 |
+
In practice, tests run from the numpy repo are run in development mode with
|
| 24 |
+
``spin``, through the standard ``spin test`` invocation or from an inplace
|
| 25 |
+
build with ``pytest numpy``.
|
| 26 |
+
|
| 27 |
+
This module is imported by every numpy subpackage, so lies at the top level to
|
| 28 |
+
simplify circular import issues. For the same reason, it contains no numpy
|
| 29 |
+
imports at module scope, instead importing numpy within function calls.
|
| 30 |
+
"""
|
| 31 |
+
import os
|
| 32 |
+
import sys
|
| 33 |
+
|
| 34 |
+
__all__ = ['PytestTester']
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
def _show_numpy_info():
|
| 38 |
+
import numpy as np
|
| 39 |
+
|
| 40 |
+
print(f"NumPy version {np.__version__}")
|
| 41 |
+
info = np.lib._utils_impl._opt_info()
|
| 42 |
+
print("NumPy CPU features: ", (info or 'nothing enabled'))
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
class PytestTester:
|
| 46 |
+
"""
|
| 47 |
+
Pytest test runner.
|
| 48 |
+
|
| 49 |
+
A test function is typically added to a package's __init__.py like so::
|
| 50 |
+
|
| 51 |
+
from numpy._pytesttester import PytestTester
|
| 52 |
+
test = PytestTester(__name__).test
|
| 53 |
+
del PytestTester
|
| 54 |
+
|
| 55 |
+
Calling this test function finds and runs all tests associated with the
|
| 56 |
+
module and all its sub-modules.
|
| 57 |
+
|
| 58 |
+
Attributes
|
| 59 |
+
----------
|
| 60 |
+
module_name : str
|
| 61 |
+
Full path to the package to test.
|
| 62 |
+
|
| 63 |
+
Parameters
|
| 64 |
+
----------
|
| 65 |
+
module_name : module name
|
| 66 |
+
The name of the module to test.
|
| 67 |
+
|
| 68 |
+
Notes
|
| 69 |
+
-----
|
| 70 |
+
Unlike the previous ``nose``-based implementation, this class is not
|
| 71 |
+
publicly exposed as it performs some ``numpy``-specific warning
|
| 72 |
+
suppression.
|
| 73 |
+
|
| 74 |
+
"""
|
| 75 |
+
def __init__(self, module_name):
|
| 76 |
+
self.module_name = module_name
|
| 77 |
+
self.__module__ = module_name
|
| 78 |
+
|
| 79 |
+
def __call__(self, label='fast', verbose=1, extra_argv=None,
|
| 80 |
+
doctests=False, coverage=False, durations=-1, tests=None):
|
| 81 |
+
"""
|
| 82 |
+
Run tests for module using pytest.
|
| 83 |
+
|
| 84 |
+
Parameters
|
| 85 |
+
----------
|
| 86 |
+
label : {'fast', 'full'}, optional
|
| 87 |
+
Identifies the tests to run. When set to 'fast', tests decorated
|
| 88 |
+
with `pytest.mark.slow` are skipped, when 'full', the slow marker
|
| 89 |
+
is ignored.
|
| 90 |
+
verbose : int, optional
|
| 91 |
+
Verbosity value for test outputs, in the range 1-3. Default is 1.
|
| 92 |
+
extra_argv : list, optional
|
| 93 |
+
List with any extra arguments to pass to pytests.
|
| 94 |
+
doctests : bool, optional
|
| 95 |
+
.. note:: Not supported
|
| 96 |
+
coverage : bool, optional
|
| 97 |
+
If True, report coverage of NumPy code. Default is False.
|
| 98 |
+
Requires installation of (pip) pytest-cov.
|
| 99 |
+
durations : int, optional
|
| 100 |
+
If < 0, do nothing, If 0, report time of all tests, if > 0,
|
| 101 |
+
report the time of the slowest `timer` tests. Default is -1.
|
| 102 |
+
tests : test or list of tests
|
| 103 |
+
Tests to be executed with pytest '--pyargs'
|
| 104 |
+
|
| 105 |
+
Returns
|
| 106 |
+
-------
|
| 107 |
+
result : bool
|
| 108 |
+
Return True on success, false otherwise.
|
| 109 |
+
|
| 110 |
+
Notes
|
| 111 |
+
-----
|
| 112 |
+
Each NumPy module exposes `test` in its namespace to run all tests for
|
| 113 |
+
it. For example, to run all tests for numpy.lib:
|
| 114 |
+
|
| 115 |
+
>>> np.lib.test() #doctest: +SKIP
|
| 116 |
+
|
| 117 |
+
Examples
|
| 118 |
+
--------
|
| 119 |
+
>>> result = np.lib.test() #doctest: +SKIP
|
| 120 |
+
...
|
| 121 |
+
1023 passed, 2 skipped, 6 deselected, 1 xfailed in 10.39 seconds
|
| 122 |
+
>>> result
|
| 123 |
+
True
|
| 124 |
+
|
| 125 |
+
"""
|
| 126 |
+
import warnings
|
| 127 |
+
|
| 128 |
+
import pytest
|
| 129 |
+
|
| 130 |
+
module = sys.modules[self.module_name]
|
| 131 |
+
module_path = os.path.abspath(module.__path__[0])
|
| 132 |
+
|
| 133 |
+
# setup the pytest arguments
|
| 134 |
+
pytest_args = ["-l"]
|
| 135 |
+
|
| 136 |
+
# offset verbosity. The "-q" cancels a "-v".
|
| 137 |
+
pytest_args += ["-q"]
|
| 138 |
+
|
| 139 |
+
if sys.version_info < (3, 12):
|
| 140 |
+
with warnings.catch_warnings():
|
| 141 |
+
warnings.simplefilter("always")
|
| 142 |
+
# Filter out distutils cpu warnings (could be localized to
|
| 143 |
+
# distutils tests). ASV has problems with top level import,
|
| 144 |
+
# so fetch module for suppression here.
|
| 145 |
+
from numpy.distutils import cpuinfo # noqa: F401
|
| 146 |
+
|
| 147 |
+
# Filter out annoying import messages. Want these in both develop and
|
| 148 |
+
# release mode.
|
| 149 |
+
pytest_args += [
|
| 150 |
+
"-W ignore:Not importing directory",
|
| 151 |
+
"-W ignore:numpy.dtype size changed",
|
| 152 |
+
"-W ignore:numpy.ufunc size changed",
|
| 153 |
+
"-W ignore::UserWarning:cpuinfo",
|
| 154 |
+
]
|
| 155 |
+
|
| 156 |
+
# When testing matrices, ignore their PendingDeprecationWarnings
|
| 157 |
+
pytest_args += [
|
| 158 |
+
"-W ignore:the matrix subclass is not",
|
| 159 |
+
"-W ignore:Importing from numpy.matlib is",
|
| 160 |
+
]
|
| 161 |
+
|
| 162 |
+
if doctests:
|
| 163 |
+
pytest_args += ["--doctest-modules"]
|
| 164 |
+
|
| 165 |
+
if extra_argv:
|
| 166 |
+
pytest_args += list(extra_argv)
|
| 167 |
+
|
| 168 |
+
if verbose > 1:
|
| 169 |
+
pytest_args += ["-" + "v" * (verbose - 1)]
|
| 170 |
+
|
| 171 |
+
if coverage:
|
| 172 |
+
pytest_args += ["--cov=" + module_path]
|
| 173 |
+
|
| 174 |
+
if label == "fast":
|
| 175 |
+
# not importing at the top level to avoid circular import of module
|
| 176 |
+
from numpy.testing import IS_PYPY
|
| 177 |
+
if IS_PYPY:
|
| 178 |
+
pytest_args += ["-m", "not slow and not slow_pypy"]
|
| 179 |
+
else:
|
| 180 |
+
pytest_args += ["-m", "not slow"]
|
| 181 |
+
|
| 182 |
+
elif label != "full":
|
| 183 |
+
pytest_args += ["-m", label]
|
| 184 |
+
|
| 185 |
+
if durations >= 0:
|
| 186 |
+
pytest_args += [f"--durations={durations}"]
|
| 187 |
+
|
| 188 |
+
if tests is None:
|
| 189 |
+
tests = [self.module_name]
|
| 190 |
+
|
| 191 |
+
pytest_args += ["--pyargs"] + list(tests)
|
| 192 |
+
|
| 193 |
+
# run tests.
|
| 194 |
+
_show_numpy_info()
|
| 195 |
+
|
| 196 |
+
try:
|
| 197 |
+
code = pytest.main(pytest_args)
|
| 198 |
+
except SystemExit as exc:
|
| 199 |
+
code = exc.code
|
| 200 |
+
|
| 201 |
+
return code == 0
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_pytesttester.pyi
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from collections.abc import Iterable
|
| 2 |
+
from typing import Literal as L
|
| 3 |
+
|
| 4 |
+
__all__ = ["PytestTester"]
|
| 5 |
+
|
| 6 |
+
class PytestTester:
|
| 7 |
+
module_name: str
|
| 8 |
+
def __init__(self, module_name: str) -> None: ...
|
| 9 |
+
def __call__(
|
| 10 |
+
self,
|
| 11 |
+
label: L["fast", "full"] = "fast",
|
| 12 |
+
verbose: int = 1,
|
| 13 |
+
extra_argv: Iterable[str] | None = None,
|
| 14 |
+
doctests: L[False] = False,
|
| 15 |
+
coverage: bool = False,
|
| 16 |
+
durations: int = -1,
|
| 17 |
+
tests: Iterable[str] | None = None,
|
| 18 |
+
) -> bool: ...
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/__init__.py
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Private counterpart of ``numpy.typing``."""
|
| 2 |
+
|
| 3 |
+
import sys
|
| 4 |
+
|
| 5 |
+
from ._array_like import (
|
| 6 |
+
NDArray as NDArray,
|
| 7 |
+
_ArrayLike as _ArrayLike,
|
| 8 |
+
_ArrayLikeAnyString_co as _ArrayLikeAnyString_co,
|
| 9 |
+
_ArrayLikeBool_co as _ArrayLikeBool_co,
|
| 10 |
+
_ArrayLikeBytes_co as _ArrayLikeBytes_co,
|
| 11 |
+
_ArrayLikeComplex128_co as _ArrayLikeComplex128_co,
|
| 12 |
+
_ArrayLikeComplex_co as _ArrayLikeComplex_co,
|
| 13 |
+
_ArrayLikeDT64_co as _ArrayLikeDT64_co,
|
| 14 |
+
_ArrayLikeFloat64_co as _ArrayLikeFloat64_co,
|
| 15 |
+
_ArrayLikeFloat_co as _ArrayLikeFloat_co,
|
| 16 |
+
_ArrayLikeInt as _ArrayLikeInt,
|
| 17 |
+
_ArrayLikeInt_co as _ArrayLikeInt_co,
|
| 18 |
+
_ArrayLikeNumber_co as _ArrayLikeNumber_co,
|
| 19 |
+
_ArrayLikeObject_co as _ArrayLikeObject_co,
|
| 20 |
+
_ArrayLikeStr_co as _ArrayLikeStr_co,
|
| 21 |
+
_ArrayLikeString_co as _ArrayLikeString_co,
|
| 22 |
+
_ArrayLikeTD64_co as _ArrayLikeTD64_co,
|
| 23 |
+
_ArrayLikeUInt_co as _ArrayLikeUInt_co,
|
| 24 |
+
_ArrayLikeVoid_co as _ArrayLikeVoid_co,
|
| 25 |
+
_FiniteNestedSequence as _FiniteNestedSequence,
|
| 26 |
+
_SupportsArray as _SupportsArray,
|
| 27 |
+
_SupportsArrayFunc as _SupportsArrayFunc,
|
| 28 |
+
)
|
| 29 |
+
|
| 30 |
+
#
|
| 31 |
+
from ._char_codes import (
|
| 32 |
+
_BoolCodes as _BoolCodes,
|
| 33 |
+
_ByteCodes as _ByteCodes,
|
| 34 |
+
_BytesCodes as _BytesCodes,
|
| 35 |
+
_CDoubleCodes as _CDoubleCodes,
|
| 36 |
+
_CharacterCodes as _CharacterCodes,
|
| 37 |
+
_CLongDoubleCodes as _CLongDoubleCodes,
|
| 38 |
+
_Complex64Codes as _Complex64Codes,
|
| 39 |
+
_Complex128Codes as _Complex128Codes,
|
| 40 |
+
_ComplexFloatingCodes as _ComplexFloatingCodes,
|
| 41 |
+
_CSingleCodes as _CSingleCodes,
|
| 42 |
+
_DoubleCodes as _DoubleCodes,
|
| 43 |
+
_DT64Codes as _DT64Codes,
|
| 44 |
+
_FlexibleCodes as _FlexibleCodes,
|
| 45 |
+
_Float16Codes as _Float16Codes,
|
| 46 |
+
_Float32Codes as _Float32Codes,
|
| 47 |
+
_Float64Codes as _Float64Codes,
|
| 48 |
+
_FloatingCodes as _FloatingCodes,
|
| 49 |
+
_GenericCodes as _GenericCodes,
|
| 50 |
+
_HalfCodes as _HalfCodes,
|
| 51 |
+
_InexactCodes as _InexactCodes,
|
| 52 |
+
_Int8Codes as _Int8Codes,
|
| 53 |
+
_Int16Codes as _Int16Codes,
|
| 54 |
+
_Int32Codes as _Int32Codes,
|
| 55 |
+
_Int64Codes as _Int64Codes,
|
| 56 |
+
_IntCCodes as _IntCCodes,
|
| 57 |
+
_IntCodes as _IntCodes,
|
| 58 |
+
_IntegerCodes as _IntegerCodes,
|
| 59 |
+
_IntPCodes as _IntPCodes,
|
| 60 |
+
_LongCodes as _LongCodes,
|
| 61 |
+
_LongDoubleCodes as _LongDoubleCodes,
|
| 62 |
+
_LongLongCodes as _LongLongCodes,
|
| 63 |
+
_NumberCodes as _NumberCodes,
|
| 64 |
+
_ObjectCodes as _ObjectCodes,
|
| 65 |
+
_ShortCodes as _ShortCodes,
|
| 66 |
+
_SignedIntegerCodes as _SignedIntegerCodes,
|
| 67 |
+
_SingleCodes as _SingleCodes,
|
| 68 |
+
_StrCodes as _StrCodes,
|
| 69 |
+
_StringCodes as _StringCodes,
|
| 70 |
+
_TD64Codes as _TD64Codes,
|
| 71 |
+
_UByteCodes as _UByteCodes,
|
| 72 |
+
_UInt8Codes as _UInt8Codes,
|
| 73 |
+
_UInt16Codes as _UInt16Codes,
|
| 74 |
+
_UInt32Codes as _UInt32Codes,
|
| 75 |
+
_UInt64Codes as _UInt64Codes,
|
| 76 |
+
_UIntCCodes as _UIntCCodes,
|
| 77 |
+
_UIntCodes as _UIntCodes,
|
| 78 |
+
_UIntPCodes as _UIntPCodes,
|
| 79 |
+
_ULongCodes as _ULongCodes,
|
| 80 |
+
_ULongLongCodes as _ULongLongCodes,
|
| 81 |
+
_UnsignedIntegerCodes as _UnsignedIntegerCodes,
|
| 82 |
+
_UShortCodes as _UShortCodes,
|
| 83 |
+
_VoidCodes as _VoidCodes,
|
| 84 |
+
)
|
| 85 |
+
|
| 86 |
+
#
|
| 87 |
+
from ._dtype_like import (
|
| 88 |
+
_DTypeLike as _DTypeLike,
|
| 89 |
+
_DTypeLikeBool as _DTypeLikeBool,
|
| 90 |
+
_DTypeLikeBytes as _DTypeLikeBytes,
|
| 91 |
+
_DTypeLikeComplex as _DTypeLikeComplex,
|
| 92 |
+
_DTypeLikeComplex_co as _DTypeLikeComplex_co,
|
| 93 |
+
_DTypeLikeDT64 as _DTypeLikeDT64,
|
| 94 |
+
_DTypeLikeFloat as _DTypeLikeFloat,
|
| 95 |
+
_DTypeLikeInt as _DTypeLikeInt,
|
| 96 |
+
_DTypeLikeObject as _DTypeLikeObject,
|
| 97 |
+
_DTypeLikeStr as _DTypeLikeStr,
|
| 98 |
+
_DTypeLikeTD64 as _DTypeLikeTD64,
|
| 99 |
+
_DTypeLikeUInt as _DTypeLikeUInt,
|
| 100 |
+
_DTypeLikeVoid as _DTypeLikeVoid,
|
| 101 |
+
_HasDType as _HasDType,
|
| 102 |
+
_SupportsDType as _SupportsDType,
|
| 103 |
+
_VoidDTypeLike as _VoidDTypeLike,
|
| 104 |
+
)
|
| 105 |
+
|
| 106 |
+
#
|
| 107 |
+
from ._nbit import (
|
| 108 |
+
_NBitByte as _NBitByte,
|
| 109 |
+
_NBitDouble as _NBitDouble,
|
| 110 |
+
_NBitHalf as _NBitHalf,
|
| 111 |
+
_NBitInt as _NBitInt,
|
| 112 |
+
_NBitIntC as _NBitIntC,
|
| 113 |
+
_NBitIntP as _NBitIntP,
|
| 114 |
+
_NBitLong as _NBitLong,
|
| 115 |
+
_NBitLongDouble as _NBitLongDouble,
|
| 116 |
+
_NBitLongLong as _NBitLongLong,
|
| 117 |
+
_NBitShort as _NBitShort,
|
| 118 |
+
_NBitSingle as _NBitSingle,
|
| 119 |
+
)
|
| 120 |
+
|
| 121 |
+
#
|
| 122 |
+
from ._nbit_base import ( # type: ignore[deprecated]
|
| 123 |
+
NBitBase as NBitBase, # pyright: ignore[reportDeprecated]
|
| 124 |
+
_8Bit as _8Bit,
|
| 125 |
+
_16Bit as _16Bit,
|
| 126 |
+
_32Bit as _32Bit,
|
| 127 |
+
_64Bit as _64Bit,
|
| 128 |
+
_96Bit as _96Bit,
|
| 129 |
+
_128Bit as _128Bit,
|
| 130 |
+
)
|
| 131 |
+
|
| 132 |
+
#
|
| 133 |
+
from ._nested_sequence import _NestedSequence as _NestedSequence
|
| 134 |
+
|
| 135 |
+
#
|
| 136 |
+
from ._scalars import (
|
| 137 |
+
_BoolLike_co as _BoolLike_co,
|
| 138 |
+
_CharLike_co as _CharLike_co,
|
| 139 |
+
_ComplexLike_co as _ComplexLike_co,
|
| 140 |
+
_FloatLike_co as _FloatLike_co,
|
| 141 |
+
_IntLike_co as _IntLike_co,
|
| 142 |
+
_NumberLike_co as _NumberLike_co,
|
| 143 |
+
_ScalarLike_co as _ScalarLike_co,
|
| 144 |
+
_TD64Like_co as _TD64Like_co,
|
| 145 |
+
_UIntLike_co as _UIntLike_co,
|
| 146 |
+
_VoidLike_co as _VoidLike_co,
|
| 147 |
+
)
|
| 148 |
+
|
| 149 |
+
#
|
| 150 |
+
from ._shape import _AnyShape as _AnyShape, _Shape as _Shape, _ShapeLike as _ShapeLike
|
| 151 |
+
|
| 152 |
+
#
|
| 153 |
+
from ._ufunc import (
|
| 154 |
+
_GUFunc_Nin2_Nout1 as _GUFunc_Nin2_Nout1,
|
| 155 |
+
_UFunc_Nin1_Nout1 as _UFunc_Nin1_Nout1,
|
| 156 |
+
_UFunc_Nin1_Nout2 as _UFunc_Nin1_Nout2,
|
| 157 |
+
_UFunc_Nin2_Nout1 as _UFunc_Nin2_Nout1,
|
| 158 |
+
_UFunc_Nin2_Nout2 as _UFunc_Nin2_Nout2,
|
| 159 |
+
)
|
| 160 |
+
|
| 161 |
+
# wrapping the public aliases in `TypeAliasType` helps with introspection readability
|
| 162 |
+
if sys.version_info >= (3, 12):
|
| 163 |
+
from typing import TypeAliasType
|
| 164 |
+
|
| 165 |
+
from ._array_like import ArrayLike as _ArrayLikeAlias
|
| 166 |
+
from ._dtype_like import DTypeLike as _DTypeLikeAlias
|
| 167 |
+
|
| 168 |
+
ArrayLike = TypeAliasType("ArrayLike", _ArrayLikeAlias)
|
| 169 |
+
DTypeLike = TypeAliasType("DTypeLike", _DTypeLikeAlias)
|
| 170 |
+
|
| 171 |
+
else:
|
| 172 |
+
from ._array_like import ArrayLike as ArrayLike
|
| 173 |
+
from ._dtype_like import DTypeLike as DTypeLike
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_add_docstring.py
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""A module for creating docstrings for sphinx ``data`` domains."""
|
| 2 |
+
|
| 3 |
+
import re
|
| 4 |
+
import textwrap
|
| 5 |
+
|
| 6 |
+
from ._array_like import NDArray
|
| 7 |
+
|
| 8 |
+
_docstrings_list = []
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
def add_newdoc(name: str, value: str, doc: str) -> None:
|
| 12 |
+
"""Append ``_docstrings_list`` with a docstring for `name`.
|
| 13 |
+
|
| 14 |
+
Parameters
|
| 15 |
+
----------
|
| 16 |
+
name : str
|
| 17 |
+
The name of the object.
|
| 18 |
+
value : str
|
| 19 |
+
A string-representation of the object.
|
| 20 |
+
doc : str
|
| 21 |
+
The docstring of the object.
|
| 22 |
+
|
| 23 |
+
"""
|
| 24 |
+
_docstrings_list.append((name, value, doc))
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def _parse_docstrings() -> str:
|
| 28 |
+
"""Convert all docstrings in ``_docstrings_list`` into a single
|
| 29 |
+
sphinx-legible text block.
|
| 30 |
+
|
| 31 |
+
"""
|
| 32 |
+
type_list_ret = []
|
| 33 |
+
for name, value, doc in _docstrings_list:
|
| 34 |
+
s = textwrap.dedent(doc).replace("\n", "\n ")
|
| 35 |
+
|
| 36 |
+
# Replace sections by rubrics
|
| 37 |
+
lines = s.split("\n")
|
| 38 |
+
new_lines = []
|
| 39 |
+
indent = ""
|
| 40 |
+
for line in lines:
|
| 41 |
+
m = re.match(r'^(\s+)[-=]+\s*$', line)
|
| 42 |
+
if m and new_lines:
|
| 43 |
+
prev = textwrap.dedent(new_lines.pop())
|
| 44 |
+
if prev == "Examples":
|
| 45 |
+
indent = ""
|
| 46 |
+
new_lines.append(f'{m.group(1)}.. rubric:: {prev}')
|
| 47 |
+
else:
|
| 48 |
+
indent = 4 * " "
|
| 49 |
+
new_lines.append(f'{m.group(1)}.. admonition:: {prev}')
|
| 50 |
+
new_lines.append("")
|
| 51 |
+
else:
|
| 52 |
+
new_lines.append(f"{indent}{line}")
|
| 53 |
+
|
| 54 |
+
s = "\n".join(new_lines)
|
| 55 |
+
s_block = f""".. data:: {name}\n :value: {value}\n {s}"""
|
| 56 |
+
type_list_ret.append(s_block)
|
| 57 |
+
return "\n".join(type_list_ret)
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
add_newdoc('ArrayLike', 'typing.Union[...]',
|
| 61 |
+
"""
|
| 62 |
+
A `~typing.Union` representing objects that can be coerced
|
| 63 |
+
into an `~numpy.ndarray`.
|
| 64 |
+
|
| 65 |
+
Among others this includes the likes of:
|
| 66 |
+
|
| 67 |
+
* Scalars.
|
| 68 |
+
* (Nested) sequences.
|
| 69 |
+
* Objects implementing the `~class.__array__` protocol.
|
| 70 |
+
|
| 71 |
+
.. versionadded:: 1.20
|
| 72 |
+
|
| 73 |
+
See Also
|
| 74 |
+
--------
|
| 75 |
+
:term:`array_like`:
|
| 76 |
+
Any scalar or sequence that can be interpreted as an ndarray.
|
| 77 |
+
|
| 78 |
+
Examples
|
| 79 |
+
--------
|
| 80 |
+
.. code-block:: python
|
| 81 |
+
|
| 82 |
+
>>> import numpy as np
|
| 83 |
+
>>> import numpy.typing as npt
|
| 84 |
+
|
| 85 |
+
>>> def as_array(a: npt.ArrayLike) -> np.ndarray:
|
| 86 |
+
... return np.array(a)
|
| 87 |
+
|
| 88 |
+
""")
|
| 89 |
+
|
| 90 |
+
add_newdoc('DTypeLike', 'typing.Union[...]',
|
| 91 |
+
"""
|
| 92 |
+
A `~typing.Union` representing objects that can be coerced
|
| 93 |
+
into a `~numpy.dtype`.
|
| 94 |
+
|
| 95 |
+
Among others this includes the likes of:
|
| 96 |
+
|
| 97 |
+
* :class:`type` objects.
|
| 98 |
+
* Character codes or the names of :class:`type` objects.
|
| 99 |
+
* Objects with the ``.dtype`` attribute.
|
| 100 |
+
|
| 101 |
+
.. versionadded:: 1.20
|
| 102 |
+
|
| 103 |
+
See Also
|
| 104 |
+
--------
|
| 105 |
+
:ref:`Specifying and constructing data types <arrays.dtypes.constructing>`
|
| 106 |
+
A comprehensive overview of all objects that can be coerced
|
| 107 |
+
into data types.
|
| 108 |
+
|
| 109 |
+
Examples
|
| 110 |
+
--------
|
| 111 |
+
.. code-block:: python
|
| 112 |
+
|
| 113 |
+
>>> import numpy as np
|
| 114 |
+
>>> import numpy.typing as npt
|
| 115 |
+
|
| 116 |
+
>>> def as_dtype(d: npt.DTypeLike) -> np.dtype:
|
| 117 |
+
... return np.dtype(d)
|
| 118 |
+
|
| 119 |
+
""")
|
| 120 |
+
|
| 121 |
+
add_newdoc('NDArray', repr(NDArray),
|
| 122 |
+
"""
|
| 123 |
+
A `np.ndarray[tuple[Any, ...], np.dtype[ScalarT]] <numpy.ndarray>`
|
| 124 |
+
type alias :term:`generic <generic type>` w.r.t. its
|
| 125 |
+
`dtype.type <numpy.dtype.type>`.
|
| 126 |
+
|
| 127 |
+
Can be used during runtime for typing arrays with a given dtype
|
| 128 |
+
and unspecified shape.
|
| 129 |
+
|
| 130 |
+
.. versionadded:: 1.21
|
| 131 |
+
|
| 132 |
+
Examples
|
| 133 |
+
--------
|
| 134 |
+
.. code-block:: python
|
| 135 |
+
|
| 136 |
+
>>> import numpy as np
|
| 137 |
+
>>> import numpy.typing as npt
|
| 138 |
+
|
| 139 |
+
>>> print(npt.NDArray)
|
| 140 |
+
numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[~_ScalarT]]
|
| 141 |
+
|
| 142 |
+
>>> print(npt.NDArray[np.float64])
|
| 143 |
+
numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]]
|
| 144 |
+
|
| 145 |
+
>>> NDArrayInt = npt.NDArray[np.int_]
|
| 146 |
+
>>> a: NDArrayInt = np.arange(10)
|
| 147 |
+
|
| 148 |
+
>>> def func(a: npt.ArrayLike) -> npt.NDArray[Any]:
|
| 149 |
+
... return np.array(a)
|
| 150 |
+
|
| 151 |
+
""")
|
| 152 |
+
|
| 153 |
+
_docstrings = _parse_docstrings()
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_array_like.py
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import sys
|
| 2 |
+
from collections.abc import Callable, Collection, Sequence
|
| 3 |
+
from typing import TYPE_CHECKING, Any, Protocol, TypeAlias, TypeVar, runtime_checkable
|
| 4 |
+
|
| 5 |
+
import numpy as np
|
| 6 |
+
from numpy import dtype
|
| 7 |
+
|
| 8 |
+
from ._nbit_base import _32Bit, _64Bit
|
| 9 |
+
from ._nested_sequence import _NestedSequence
|
| 10 |
+
from ._shape import _AnyShape
|
| 11 |
+
|
| 12 |
+
if TYPE_CHECKING:
|
| 13 |
+
StringDType = np.dtypes.StringDType
|
| 14 |
+
else:
|
| 15 |
+
# at runtime outside of type checking importing this from numpy.dtypes
|
| 16 |
+
# would lead to a circular import
|
| 17 |
+
from numpy._core.multiarray import StringDType
|
| 18 |
+
|
| 19 |
+
_T = TypeVar("_T")
|
| 20 |
+
_ScalarT = TypeVar("_ScalarT", bound=np.generic)
|
| 21 |
+
_DTypeT = TypeVar("_DTypeT", bound=dtype[Any])
|
| 22 |
+
_DTypeT_co = TypeVar("_DTypeT_co", covariant=True, bound=dtype[Any])
|
| 23 |
+
|
| 24 |
+
NDArray: TypeAlias = np.ndarray[_AnyShape, dtype[_ScalarT]]
|
| 25 |
+
|
| 26 |
+
# The `_SupportsArray` protocol only cares about the default dtype
|
| 27 |
+
# (i.e. `dtype=None` or no `dtype` parameter at all) of the to-be returned
|
| 28 |
+
# array.
|
| 29 |
+
# Concrete implementations of the protocol are responsible for adding
|
| 30 |
+
# any and all remaining overloads
|
| 31 |
+
@runtime_checkable
|
| 32 |
+
class _SupportsArray(Protocol[_DTypeT_co]):
|
| 33 |
+
def __array__(self) -> np.ndarray[Any, _DTypeT_co]: ...
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
@runtime_checkable
|
| 37 |
+
class _SupportsArrayFunc(Protocol):
|
| 38 |
+
"""A protocol class representing `~class.__array_function__`."""
|
| 39 |
+
def __array_function__(
|
| 40 |
+
self,
|
| 41 |
+
func: Callable[..., Any],
|
| 42 |
+
types: Collection[type[Any]],
|
| 43 |
+
args: tuple[Any, ...],
|
| 44 |
+
kwargs: dict[str, Any],
|
| 45 |
+
) -> object: ...
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
# TODO: Wait until mypy supports recursive objects in combination with typevars
|
| 49 |
+
_FiniteNestedSequence: TypeAlias = (
|
| 50 |
+
_T
|
| 51 |
+
| Sequence[_T]
|
| 52 |
+
| Sequence[Sequence[_T]]
|
| 53 |
+
| Sequence[Sequence[Sequence[_T]]]
|
| 54 |
+
| Sequence[Sequence[Sequence[Sequence[_T]]]]
|
| 55 |
+
)
|
| 56 |
+
|
| 57 |
+
# A subset of `npt.ArrayLike` that can be parametrized w.r.t. `np.generic`
|
| 58 |
+
_ArrayLike: TypeAlias = (
|
| 59 |
+
_SupportsArray[dtype[_ScalarT]]
|
| 60 |
+
| _NestedSequence[_SupportsArray[dtype[_ScalarT]]]
|
| 61 |
+
)
|
| 62 |
+
|
| 63 |
+
# A union representing array-like objects; consists of two typevars:
|
| 64 |
+
# One representing types that can be parametrized w.r.t. `np.dtype`
|
| 65 |
+
# and another one for the rest
|
| 66 |
+
_DualArrayLike: TypeAlias = (
|
| 67 |
+
_SupportsArray[_DTypeT]
|
| 68 |
+
| _NestedSequence[_SupportsArray[_DTypeT]]
|
| 69 |
+
| _T
|
| 70 |
+
| _NestedSequence[_T]
|
| 71 |
+
)
|
| 72 |
+
|
| 73 |
+
if sys.version_info >= (3, 12):
|
| 74 |
+
from collections.abc import Buffer as _Buffer
|
| 75 |
+
else:
|
| 76 |
+
@runtime_checkable
|
| 77 |
+
class _Buffer(Protocol):
|
| 78 |
+
def __buffer__(self, flags: int, /) -> memoryview: ...
|
| 79 |
+
|
| 80 |
+
ArrayLike: TypeAlias = _Buffer | _DualArrayLike[dtype[Any], complex | bytes | str]
|
| 81 |
+
|
| 82 |
+
# `ArrayLike<X>_co`: array-like objects that can be coerced into `X`
|
| 83 |
+
# given the casting rules `same_kind`
|
| 84 |
+
_ArrayLikeBool_co: TypeAlias = _DualArrayLike[dtype[np.bool], bool]
|
| 85 |
+
_ArrayLikeUInt_co: TypeAlias = _DualArrayLike[dtype[np.bool | np.unsignedinteger], bool]
|
| 86 |
+
_ArrayLikeInt_co: TypeAlias = _DualArrayLike[dtype[np.bool | np.integer], int]
|
| 87 |
+
_ArrayLikeFloat_co: TypeAlias = _DualArrayLike[dtype[np.bool | np.integer | np.floating], float]
|
| 88 |
+
_ArrayLikeComplex_co: TypeAlias = _DualArrayLike[dtype[np.bool | np.number], complex]
|
| 89 |
+
_ArrayLikeNumber_co: TypeAlias = _ArrayLikeComplex_co
|
| 90 |
+
_ArrayLikeTD64_co: TypeAlias = _DualArrayLike[dtype[np.bool | np.integer | np.timedelta64], int]
|
| 91 |
+
_ArrayLikeDT64_co: TypeAlias = _ArrayLike[np.datetime64]
|
| 92 |
+
_ArrayLikeObject_co: TypeAlias = _ArrayLike[np.object_]
|
| 93 |
+
|
| 94 |
+
_ArrayLikeVoid_co: TypeAlias = _ArrayLike[np.void]
|
| 95 |
+
_ArrayLikeBytes_co: TypeAlias = _DualArrayLike[dtype[np.bytes_], bytes]
|
| 96 |
+
_ArrayLikeStr_co: TypeAlias = _DualArrayLike[dtype[np.str_], str]
|
| 97 |
+
_ArrayLikeString_co: TypeAlias = _DualArrayLike[StringDType, str]
|
| 98 |
+
_ArrayLikeAnyString_co: TypeAlias = _DualArrayLike[dtype[np.character] | StringDType, bytes | str]
|
| 99 |
+
|
| 100 |
+
__Float64_co: TypeAlias = np.floating[_64Bit] | np.float32 | np.float16 | np.integer | np.bool
|
| 101 |
+
__Complex128_co: TypeAlias = np.number[_64Bit] | np.number[_32Bit] | np.float16 | np.integer | np.bool
|
| 102 |
+
_ArrayLikeFloat64_co: TypeAlias = _DualArrayLike[dtype[__Float64_co], float]
|
| 103 |
+
_ArrayLikeComplex128_co: TypeAlias = _DualArrayLike[dtype[__Complex128_co], complex]
|
| 104 |
+
|
| 105 |
+
# NOTE: This includes `builtins.bool`, but not `numpy.bool`.
|
| 106 |
+
_ArrayLikeInt: TypeAlias = _DualArrayLike[dtype[np.integer], int]
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_char_codes.py
ADDED
|
@@ -0,0 +1,213 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from typing import Literal
|
| 2 |
+
|
| 3 |
+
_BoolCodes = Literal[
|
| 4 |
+
"bool", "bool_",
|
| 5 |
+
"?", "|?", "=?", "<?", ">?",
|
| 6 |
+
"b1", "|b1", "=b1", "<b1", ">b1",
|
| 7 |
+
] # fmt: skip
|
| 8 |
+
|
| 9 |
+
_UInt8Codes = Literal["uint8", "u1", "|u1", "=u1", "<u1", ">u1"]
|
| 10 |
+
_UInt16Codes = Literal["uint16", "u2", "|u2", "=u2", "<u2", ">u2"]
|
| 11 |
+
_UInt32Codes = Literal["uint32", "u4", "|u4", "=u4", "<u4", ">u4"]
|
| 12 |
+
_UInt64Codes = Literal["uint64", "u8", "|u8", "=u8", "<u8", ">u8"]
|
| 13 |
+
|
| 14 |
+
_Int8Codes = Literal["int8", "i1", "|i1", "=i1", "<i1", ">i1"]
|
| 15 |
+
_Int16Codes = Literal["int16", "i2", "|i2", "=i2", "<i2", ">i2"]
|
| 16 |
+
_Int32Codes = Literal["int32", "i4", "|i4", "=i4", "<i4", ">i4"]
|
| 17 |
+
_Int64Codes = Literal["int64", "i8", "|i8", "=i8", "<i8", ">i8"]
|
| 18 |
+
|
| 19 |
+
_Float16Codes = Literal["float16", "f2", "|f2", "=f2", "<f2", ">f2"]
|
| 20 |
+
_Float32Codes = Literal["float32", "f4", "|f4", "=f4", "<f4", ">f4"]
|
| 21 |
+
_Float64Codes = Literal["float64", "f8", "|f8", "=f8", "<f8", ">f8"]
|
| 22 |
+
|
| 23 |
+
_Complex64Codes = Literal["complex64", "c8", "|c8", "=c8", "<c8", ">c8"]
|
| 24 |
+
_Complex128Codes = Literal["complex128", "c16", "|c16", "=c16", "<c16", ">c16"]
|
| 25 |
+
|
| 26 |
+
_ByteCodes = Literal["byte", "b", "|b", "=b", "<b", ">b"]
|
| 27 |
+
_ShortCodes = Literal["short", "h", "|h", "=h", "<h", ">h"]
|
| 28 |
+
_IntCCodes = Literal["intc", "i", "|i", "=i", "<i", ">i"]
|
| 29 |
+
_IntPCodes = Literal["intp", "int", "int_", "n", "|n", "=n", "<n", ">n"]
|
| 30 |
+
_LongCodes = Literal["long", "l", "|l", "=l", "<l", ">l"]
|
| 31 |
+
_IntCodes = _IntPCodes
|
| 32 |
+
_LongLongCodes = Literal["longlong", "q", "|q", "=q", "<q", ">q"]
|
| 33 |
+
|
| 34 |
+
_UByteCodes = Literal["ubyte", "B", "|B", "=B", "<B", ">B"]
|
| 35 |
+
_UShortCodes = Literal["ushort", "H", "|H", "=H", "<H", ">H"]
|
| 36 |
+
_UIntCCodes = Literal["uintc", "I", "|I", "=I", "<I", ">I"]
|
| 37 |
+
_UIntPCodes = Literal["uintp", "uint", "N", "|N", "=N", "<N", ">N"]
|
| 38 |
+
_ULongCodes = Literal["ulong", "L", "|L", "=L", "<L", ">L"]
|
| 39 |
+
_UIntCodes = _UIntPCodes
|
| 40 |
+
_ULongLongCodes = Literal["ulonglong", "Q", "|Q", "=Q", "<Q", ">Q"]
|
| 41 |
+
|
| 42 |
+
_HalfCodes = Literal["half", "e", "|e", "=e", "<e", ">e"]
|
| 43 |
+
_SingleCodes = Literal["single", "f", "|f", "=f", "<f", ">f"]
|
| 44 |
+
_DoubleCodes = Literal["double", "float", "d", "|d", "=d", "<d", ">d"]
|
| 45 |
+
_LongDoubleCodes = Literal["longdouble", "g", "|g", "=g", "<g", ">g"]
|
| 46 |
+
|
| 47 |
+
_CSingleCodes = Literal["csingle", "F", "|F", "=F", "<F", ">F"]
|
| 48 |
+
_CDoubleCodes = Literal["cdouble", "complex", "D", "|D", "=D", "<D", ">D"]
|
| 49 |
+
_CLongDoubleCodes = Literal["clongdouble", "G", "|G", "=G", "<G", ">G"]
|
| 50 |
+
|
| 51 |
+
_StrCodes = Literal["str", "str_", "unicode", "U", "|U", "=U", "<U", ">U"]
|
| 52 |
+
_BytesCodes = Literal["bytes", "bytes_", "S", "|S", "=S", "<S", ">S"]
|
| 53 |
+
_VoidCodes = Literal["void", "V", "|V", "=V", "<V", ">V"]
|
| 54 |
+
_ObjectCodes = Literal["object", "object_", "O", "|O", "=O", "<O", ">O"]
|
| 55 |
+
|
| 56 |
+
_DT64Codes = Literal[
|
| 57 |
+
"datetime64", "|datetime64", "=datetime64",
|
| 58 |
+
"<datetime64", ">datetime64",
|
| 59 |
+
"datetime64[Y]", "|datetime64[Y]", "=datetime64[Y]",
|
| 60 |
+
"<datetime64[Y]", ">datetime64[Y]",
|
| 61 |
+
"datetime64[M]", "|datetime64[M]", "=datetime64[M]",
|
| 62 |
+
"<datetime64[M]", ">datetime64[M]",
|
| 63 |
+
"datetime64[W]", "|datetime64[W]", "=datetime64[W]",
|
| 64 |
+
"<datetime64[W]", ">datetime64[W]",
|
| 65 |
+
"datetime64[D]", "|datetime64[D]", "=datetime64[D]",
|
| 66 |
+
"<datetime64[D]", ">datetime64[D]",
|
| 67 |
+
"datetime64[h]", "|datetime64[h]", "=datetime64[h]",
|
| 68 |
+
"<datetime64[h]", ">datetime64[h]",
|
| 69 |
+
"datetime64[m]", "|datetime64[m]", "=datetime64[m]",
|
| 70 |
+
"<datetime64[m]", ">datetime64[m]",
|
| 71 |
+
"datetime64[s]", "|datetime64[s]", "=datetime64[s]",
|
| 72 |
+
"<datetime64[s]", ">datetime64[s]",
|
| 73 |
+
"datetime64[ms]", "|datetime64[ms]", "=datetime64[ms]",
|
| 74 |
+
"<datetime64[ms]", ">datetime64[ms]",
|
| 75 |
+
"datetime64[us]", "|datetime64[us]", "=datetime64[us]",
|
| 76 |
+
"<datetime64[us]", ">datetime64[us]",
|
| 77 |
+
"datetime64[ns]", "|datetime64[ns]", "=datetime64[ns]",
|
| 78 |
+
"<datetime64[ns]", ">datetime64[ns]",
|
| 79 |
+
"datetime64[ps]", "|datetime64[ps]", "=datetime64[ps]",
|
| 80 |
+
"<datetime64[ps]", ">datetime64[ps]",
|
| 81 |
+
"datetime64[fs]", "|datetime64[fs]", "=datetime64[fs]",
|
| 82 |
+
"<datetime64[fs]", ">datetime64[fs]",
|
| 83 |
+
"datetime64[as]", "|datetime64[as]", "=datetime64[as]",
|
| 84 |
+
"<datetime64[as]", ">datetime64[as]",
|
| 85 |
+
"M", "|M", "=M", "<M", ">M",
|
| 86 |
+
"M8", "|M8", "=M8", "<M8", ">M8",
|
| 87 |
+
"M8[Y]", "|M8[Y]", "=M8[Y]", "<M8[Y]", ">M8[Y]",
|
| 88 |
+
"M8[M]", "|M8[M]", "=M8[M]", "<M8[M]", ">M8[M]",
|
| 89 |
+
"M8[W]", "|M8[W]", "=M8[W]", "<M8[W]", ">M8[W]",
|
| 90 |
+
"M8[D]", "|M8[D]", "=M8[D]", "<M8[D]", ">M8[D]",
|
| 91 |
+
"M8[h]", "|M8[h]", "=M8[h]", "<M8[h]", ">M8[h]",
|
| 92 |
+
"M8[m]", "|M8[m]", "=M8[m]", "<M8[m]", ">M8[m]",
|
| 93 |
+
"M8[s]", "|M8[s]", "=M8[s]", "<M8[s]", ">M8[s]",
|
| 94 |
+
"M8[ms]", "|M8[ms]", "=M8[ms]", "<M8[ms]", ">M8[ms]",
|
| 95 |
+
"M8[us]", "|M8[us]", "=M8[us]", "<M8[us]", ">M8[us]",
|
| 96 |
+
"M8[ns]", "|M8[ns]", "=M8[ns]", "<M8[ns]", ">M8[ns]",
|
| 97 |
+
"M8[ps]", "|M8[ps]", "=M8[ps]", "<M8[ps]", ">M8[ps]",
|
| 98 |
+
"M8[fs]", "|M8[fs]", "=M8[fs]", "<M8[fs]", ">M8[fs]",
|
| 99 |
+
"M8[as]", "|M8[as]", "=M8[as]", "<M8[as]", ">M8[as]",
|
| 100 |
+
]
|
| 101 |
+
_TD64Codes = Literal[
|
| 102 |
+
"timedelta64", "|timedelta64", "=timedelta64",
|
| 103 |
+
"<timedelta64", ">timedelta64",
|
| 104 |
+
"timedelta64[Y]", "|timedelta64[Y]", "=timedelta64[Y]",
|
| 105 |
+
"<timedelta64[Y]", ">timedelta64[Y]",
|
| 106 |
+
"timedelta64[M]", "|timedelta64[M]", "=timedelta64[M]",
|
| 107 |
+
"<timedelta64[M]", ">timedelta64[M]",
|
| 108 |
+
"timedelta64[W]", "|timedelta64[W]", "=timedelta64[W]",
|
| 109 |
+
"<timedelta64[W]", ">timedelta64[W]",
|
| 110 |
+
"timedelta64[D]", "|timedelta64[D]", "=timedelta64[D]",
|
| 111 |
+
"<timedelta64[D]", ">timedelta64[D]",
|
| 112 |
+
"timedelta64[h]", "|timedelta64[h]", "=timedelta64[h]",
|
| 113 |
+
"<timedelta64[h]", ">timedelta64[h]",
|
| 114 |
+
"timedelta64[m]", "|timedelta64[m]", "=timedelta64[m]",
|
| 115 |
+
"<timedelta64[m]", ">timedelta64[m]",
|
| 116 |
+
"timedelta64[s]", "|timedelta64[s]", "=timedelta64[s]",
|
| 117 |
+
"<timedelta64[s]", ">timedelta64[s]",
|
| 118 |
+
"timedelta64[ms]", "|timedelta64[ms]", "=timedelta64[ms]",
|
| 119 |
+
"<timedelta64[ms]", ">timedelta64[ms]",
|
| 120 |
+
"timedelta64[us]", "|timedelta64[us]", "=timedelta64[us]",
|
| 121 |
+
"<timedelta64[us]", ">timedelta64[us]",
|
| 122 |
+
"timedelta64[ns]", "|timedelta64[ns]", "=timedelta64[ns]",
|
| 123 |
+
"<timedelta64[ns]", ">timedelta64[ns]",
|
| 124 |
+
"timedelta64[ps]", "|timedelta64[ps]", "=timedelta64[ps]",
|
| 125 |
+
"<timedelta64[ps]", ">timedelta64[ps]",
|
| 126 |
+
"timedelta64[fs]", "|timedelta64[fs]", "=timedelta64[fs]",
|
| 127 |
+
"<timedelta64[fs]", ">timedelta64[fs]",
|
| 128 |
+
"timedelta64[as]", "|timedelta64[as]", "=timedelta64[as]",
|
| 129 |
+
"<timedelta64[as]", ">timedelta64[as]",
|
| 130 |
+
"m", "|m", "=m", "<m", ">m",
|
| 131 |
+
"m8", "|m8", "=m8", "<m8", ">m8",
|
| 132 |
+
"m8[Y]", "|m8[Y]", "=m8[Y]", "<m8[Y]", ">m8[Y]",
|
| 133 |
+
"m8[M]", "|m8[M]", "=m8[M]", "<m8[M]", ">m8[M]",
|
| 134 |
+
"m8[W]", "|m8[W]", "=m8[W]", "<m8[W]", ">m8[W]",
|
| 135 |
+
"m8[D]", "|m8[D]", "=m8[D]", "<m8[D]", ">m8[D]",
|
| 136 |
+
"m8[h]", "|m8[h]", "=m8[h]", "<m8[h]", ">m8[h]",
|
| 137 |
+
"m8[m]", "|m8[m]", "=m8[m]", "<m8[m]", ">m8[m]",
|
| 138 |
+
"m8[s]", "|m8[s]", "=m8[s]", "<m8[s]", ">m8[s]",
|
| 139 |
+
"m8[ms]", "|m8[ms]", "=m8[ms]", "<m8[ms]", ">m8[ms]",
|
| 140 |
+
"m8[us]", "|m8[us]", "=m8[us]", "<m8[us]", ">m8[us]",
|
| 141 |
+
"m8[ns]", "|m8[ns]", "=m8[ns]", "<m8[ns]", ">m8[ns]",
|
| 142 |
+
"m8[ps]", "|m8[ps]", "=m8[ps]", "<m8[ps]", ">m8[ps]",
|
| 143 |
+
"m8[fs]", "|m8[fs]", "=m8[fs]", "<m8[fs]", ">m8[fs]",
|
| 144 |
+
"m8[as]", "|m8[as]", "=m8[as]", "<m8[as]", ">m8[as]",
|
| 145 |
+
]
|
| 146 |
+
|
| 147 |
+
# NOTE: `StringDType' has no scalar type, and therefore has no name that can
|
| 148 |
+
# be passed to the `dtype` constructor
|
| 149 |
+
_StringCodes = Literal["T", "|T", "=T", "<T", ">T"]
|
| 150 |
+
|
| 151 |
+
# NOTE: Nested literals get flattened and de-duplicated at runtime, which isn't
|
| 152 |
+
# the case for a `Union` of `Literal`s.
|
| 153 |
+
# So even though they're equivalent when type-checking, they differ at runtime.
|
| 154 |
+
# Another advantage of nesting, is that they always have a "flat"
|
| 155 |
+
# `Literal.__args__`, which is a tuple of *literally* all its literal values.
|
| 156 |
+
|
| 157 |
+
_UnsignedIntegerCodes = Literal[
|
| 158 |
+
_UInt8Codes,
|
| 159 |
+
_UInt16Codes,
|
| 160 |
+
_UInt32Codes,
|
| 161 |
+
_UInt64Codes,
|
| 162 |
+
_UIntCodes,
|
| 163 |
+
_UByteCodes,
|
| 164 |
+
_UShortCodes,
|
| 165 |
+
_UIntCCodes,
|
| 166 |
+
_ULongCodes,
|
| 167 |
+
_ULongLongCodes,
|
| 168 |
+
]
|
| 169 |
+
_SignedIntegerCodes = Literal[
|
| 170 |
+
_Int8Codes,
|
| 171 |
+
_Int16Codes,
|
| 172 |
+
_Int32Codes,
|
| 173 |
+
_Int64Codes,
|
| 174 |
+
_IntCodes,
|
| 175 |
+
_ByteCodes,
|
| 176 |
+
_ShortCodes,
|
| 177 |
+
_IntCCodes,
|
| 178 |
+
_LongCodes,
|
| 179 |
+
_LongLongCodes,
|
| 180 |
+
]
|
| 181 |
+
_FloatingCodes = Literal[
|
| 182 |
+
_Float16Codes,
|
| 183 |
+
_Float32Codes,
|
| 184 |
+
_Float64Codes,
|
| 185 |
+
_HalfCodes,
|
| 186 |
+
_SingleCodes,
|
| 187 |
+
_DoubleCodes,
|
| 188 |
+
_LongDoubleCodes
|
| 189 |
+
]
|
| 190 |
+
_ComplexFloatingCodes = Literal[
|
| 191 |
+
_Complex64Codes,
|
| 192 |
+
_Complex128Codes,
|
| 193 |
+
_CSingleCodes,
|
| 194 |
+
_CDoubleCodes,
|
| 195 |
+
_CLongDoubleCodes,
|
| 196 |
+
]
|
| 197 |
+
_IntegerCodes = Literal[_UnsignedIntegerCodes, _SignedIntegerCodes]
|
| 198 |
+
_InexactCodes = Literal[_FloatingCodes, _ComplexFloatingCodes]
|
| 199 |
+
_NumberCodes = Literal[_IntegerCodes, _InexactCodes]
|
| 200 |
+
|
| 201 |
+
_CharacterCodes = Literal[_StrCodes, _BytesCodes]
|
| 202 |
+
_FlexibleCodes = Literal[_VoidCodes, _CharacterCodes]
|
| 203 |
+
|
| 204 |
+
_GenericCodes = Literal[
|
| 205 |
+
_BoolCodes,
|
| 206 |
+
_NumberCodes,
|
| 207 |
+
_FlexibleCodes,
|
| 208 |
+
_DT64Codes,
|
| 209 |
+
_TD64Codes,
|
| 210 |
+
_ObjectCodes,
|
| 211 |
+
# TODO: add `_StringCodes` once it has a scalar type
|
| 212 |
+
# _StringCodes,
|
| 213 |
+
]
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_dtype_like.py
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from collections.abc import Sequence # noqa: F811
|
| 2 |
+
from typing import Any, Protocol, TypeAlias, TypedDict, TypeVar
|
| 3 |
+
|
| 4 |
+
import numpy as np
|
| 5 |
+
|
| 6 |
+
from ._char_codes import (
|
| 7 |
+
_BoolCodes,
|
| 8 |
+
_BytesCodes,
|
| 9 |
+
_ComplexFloatingCodes,
|
| 10 |
+
_DT64Codes,
|
| 11 |
+
_FloatingCodes,
|
| 12 |
+
_NumberCodes,
|
| 13 |
+
_ObjectCodes,
|
| 14 |
+
_SignedIntegerCodes,
|
| 15 |
+
_StrCodes,
|
| 16 |
+
_TD64Codes,
|
| 17 |
+
_UnsignedIntegerCodes,
|
| 18 |
+
_VoidCodes,
|
| 19 |
+
)
|
| 20 |
+
|
| 21 |
+
_ScalarT = TypeVar("_ScalarT", bound=np.generic)
|
| 22 |
+
_DTypeT = TypeVar("_DTypeT", bound=np.dtype)
|
| 23 |
+
_DTypeT_co = TypeVar("_DTypeT_co", bound=np.dtype, covariant=True)
|
| 24 |
+
|
| 25 |
+
_DTypeLikeNested: TypeAlias = Any # TODO: wait for support for recursive types
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
# Mandatory keys
|
| 29 |
+
class _DTypeDictBase(TypedDict):
|
| 30 |
+
names: Sequence[str]
|
| 31 |
+
formats: Sequence[_DTypeLikeNested]
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
# Mandatory + optional keys
|
| 35 |
+
class _DTypeDict(_DTypeDictBase, total=False):
|
| 36 |
+
# Only `str` elements are usable as indexing aliases,
|
| 37 |
+
# but `titles` can in principle accept any object
|
| 38 |
+
offsets: Sequence[int]
|
| 39 |
+
titles: Sequence[Any]
|
| 40 |
+
itemsize: int
|
| 41 |
+
aligned: bool
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
class _HasDType(Protocol[_DTypeT_co]):
|
| 45 |
+
@property
|
| 46 |
+
def dtype(self) -> _DTypeT_co: ...
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
class _HasNumPyDType(Protocol[_DTypeT_co]):
|
| 50 |
+
@property
|
| 51 |
+
def __numpy_dtype__(self, /) -> _DTypeT_co: ...
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
_SupportsDType: TypeAlias = _HasDType[_DTypeT] | _HasNumPyDType[_DTypeT]
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
# A subset of `npt.DTypeLike` that can be parametrized w.r.t. `np.generic`
|
| 58 |
+
_DTypeLike: TypeAlias = type[_ScalarT] | np.dtype[_ScalarT] | _SupportsDType[np.dtype[_ScalarT]]
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
# Would create a dtype[np.void]
|
| 62 |
+
_VoidDTypeLike: TypeAlias = (
|
| 63 |
+
# If a tuple, then it can be either:
|
| 64 |
+
# - (flexible_dtype, itemsize)
|
| 65 |
+
# - (fixed_dtype, shape)
|
| 66 |
+
# - (base_dtype, new_dtype)
|
| 67 |
+
# But because `_DTypeLikeNested = Any`, the first two cases are redundant
|
| 68 |
+
|
| 69 |
+
# tuple[_DTypeLikeNested, int] | tuple[_DTypeLikeNested, _ShapeLike] |
|
| 70 |
+
tuple[_DTypeLikeNested, _DTypeLikeNested]
|
| 71 |
+
|
| 72 |
+
# [(field_name, field_dtype, field_shape), ...]
|
| 73 |
+
# The type here is quite broad because NumPy accepts quite a wide
|
| 74 |
+
# range of inputs inside the list; see the tests for some examples.
|
| 75 |
+
| list[Any]
|
| 76 |
+
|
| 77 |
+
# {'names': ..., 'formats': ..., 'offsets': ..., 'titles': ..., 'itemsize': ...}
|
| 78 |
+
| _DTypeDict
|
| 79 |
+
)
|
| 80 |
+
|
| 81 |
+
# Aliases for commonly used dtype-like objects.
|
| 82 |
+
# Note that the precision of `np.number` subclasses is ignored herein.
|
| 83 |
+
_DTypeLikeBool: TypeAlias = type[bool] | _DTypeLike[np.bool] | _BoolCodes
|
| 84 |
+
_DTypeLikeInt: TypeAlias = (
|
| 85 |
+
type[int] | _DTypeLike[np.signedinteger] | _SignedIntegerCodes
|
| 86 |
+
)
|
| 87 |
+
_DTypeLikeUInt: TypeAlias = _DTypeLike[np.unsignedinteger] | _UnsignedIntegerCodes
|
| 88 |
+
_DTypeLikeFloat: TypeAlias = type[float] | _DTypeLike[np.floating] | _FloatingCodes
|
| 89 |
+
_DTypeLikeComplex: TypeAlias = (
|
| 90 |
+
type[complex] | _DTypeLike[np.complexfloating] | _ComplexFloatingCodes
|
| 91 |
+
)
|
| 92 |
+
_DTypeLikeComplex_co: TypeAlias = (
|
| 93 |
+
type[complex] | _DTypeLike[np.bool | np.number] | _BoolCodes | _NumberCodes
|
| 94 |
+
)
|
| 95 |
+
_DTypeLikeDT64: TypeAlias = _DTypeLike[np.timedelta64] | _TD64Codes
|
| 96 |
+
_DTypeLikeTD64: TypeAlias = _DTypeLike[np.datetime64] | _DT64Codes
|
| 97 |
+
_DTypeLikeBytes: TypeAlias = type[bytes] | _DTypeLike[np.bytes_] | _BytesCodes
|
| 98 |
+
_DTypeLikeStr: TypeAlias = type[str] | _DTypeLike[np.str_] | _StrCodes
|
| 99 |
+
_DTypeLikeVoid: TypeAlias = (
|
| 100 |
+
type[memoryview] | _DTypeLike[np.void] | _VoidDTypeLike | _VoidCodes
|
| 101 |
+
)
|
| 102 |
+
_DTypeLikeObject: TypeAlias = type[object] | _DTypeLike[np.object_] | _ObjectCodes
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
# Anything that can be coerced into numpy.dtype.
|
| 106 |
+
# Reference: https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html
|
| 107 |
+
DTypeLike: TypeAlias = _DTypeLike[Any] | _VoidDTypeLike | str
|
| 108 |
+
|
| 109 |
+
# NOTE: while it is possible to provide the dtype as a dict of
|
| 110 |
+
# dtype-like objects (e.g. `{'field1': ..., 'field2': ..., ...}`),
|
| 111 |
+
# this syntax is officially discouraged and
|
| 112 |
+
# therefore not included in the type-union defining `DTypeLike`.
|
| 113 |
+
#
|
| 114 |
+
# See https://github.com/numpy/numpy/issues/16891 for more details.
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_extended_precision.py
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""A module with platform-specific extended precision
|
| 2 |
+
`numpy.number` subclasses.
|
| 3 |
+
|
| 4 |
+
The subclasses are defined here (instead of ``__init__.pyi``) such
|
| 5 |
+
that they can be imported conditionally via the numpy's mypy plugin.
|
| 6 |
+
"""
|
| 7 |
+
|
| 8 |
+
import numpy as np
|
| 9 |
+
|
| 10 |
+
from . import _96Bit, _128Bit
|
| 11 |
+
|
| 12 |
+
float96 = np.floating[_96Bit]
|
| 13 |
+
float128 = np.floating[_128Bit]
|
| 14 |
+
complex192 = np.complexfloating[_96Bit, _96Bit]
|
| 15 |
+
complex256 = np.complexfloating[_128Bit, _128Bit]
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_nbit.py
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""A module with the precisions of platform-specific `~numpy.number`s."""
|
| 2 |
+
|
| 3 |
+
from typing import TypeAlias
|
| 4 |
+
|
| 5 |
+
from ._nbit_base import _8Bit, _16Bit, _32Bit, _64Bit, _96Bit, _128Bit
|
| 6 |
+
|
| 7 |
+
# To-be replaced with a `npt.NBitBase` subclass by numpy's mypy plugin
|
| 8 |
+
_NBitByte: TypeAlias = _8Bit
|
| 9 |
+
_NBitShort: TypeAlias = _16Bit
|
| 10 |
+
_NBitIntC: TypeAlias = _32Bit
|
| 11 |
+
_NBitIntP: TypeAlias = _32Bit | _64Bit
|
| 12 |
+
_NBitInt: TypeAlias = _NBitIntP
|
| 13 |
+
_NBitLong: TypeAlias = _32Bit | _64Bit
|
| 14 |
+
_NBitLongLong: TypeAlias = _64Bit
|
| 15 |
+
|
| 16 |
+
_NBitHalf: TypeAlias = _16Bit
|
| 17 |
+
_NBitSingle: TypeAlias = _32Bit
|
| 18 |
+
_NBitDouble: TypeAlias = _64Bit
|
| 19 |
+
_NBitLongDouble: TypeAlias = _64Bit | _96Bit | _128Bit
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_nbit_base.py
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""A module with the precisions of generic `~numpy.number` types."""
|
| 2 |
+
from typing import final
|
| 3 |
+
|
| 4 |
+
from numpy._utils import set_module
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
@final # Disallow the creation of arbitrary `NBitBase` subclasses
|
| 8 |
+
@set_module("numpy.typing")
|
| 9 |
+
class NBitBase:
|
| 10 |
+
"""
|
| 11 |
+
A type representing `numpy.number` precision during static type checking.
|
| 12 |
+
|
| 13 |
+
Used exclusively for the purpose of static type checking, `NBitBase`
|
| 14 |
+
represents the base of a hierarchical set of subclasses.
|
| 15 |
+
Each subsequent subclass is herein used for representing a lower level
|
| 16 |
+
of precision, *e.g.* ``64Bit > 32Bit > 16Bit``.
|
| 17 |
+
|
| 18 |
+
.. versionadded:: 1.20
|
| 19 |
+
|
| 20 |
+
.. deprecated:: 2.3
|
| 21 |
+
Use ``@typing.overload`` or a ``TypeVar`` with a scalar-type as upper
|
| 22 |
+
bound, instead.
|
| 23 |
+
|
| 24 |
+
Examples
|
| 25 |
+
--------
|
| 26 |
+
Below is a typical usage example: `NBitBase` is herein used for annotating
|
| 27 |
+
a function that takes a float and integer of arbitrary precision
|
| 28 |
+
as arguments and returns a new float of whichever precision is largest
|
| 29 |
+
(*e.g.* ``np.float16 + np.int64 -> np.float64``).
|
| 30 |
+
|
| 31 |
+
.. code-block:: python
|
| 32 |
+
|
| 33 |
+
>>> from typing import TypeVar, TYPE_CHECKING
|
| 34 |
+
>>> import numpy as np
|
| 35 |
+
>>> import numpy.typing as npt
|
| 36 |
+
|
| 37 |
+
>>> S = TypeVar("S", bound=npt.NBitBase)
|
| 38 |
+
>>> T = TypeVar("T", bound=npt.NBitBase)
|
| 39 |
+
|
| 40 |
+
>>> def add(a: np.floating[S], b: np.integer[T]) -> np.floating[S | T]:
|
| 41 |
+
... return a + b
|
| 42 |
+
|
| 43 |
+
>>> a = np.float16()
|
| 44 |
+
>>> b = np.int64()
|
| 45 |
+
>>> out = add(a, b)
|
| 46 |
+
|
| 47 |
+
>>> if TYPE_CHECKING:
|
| 48 |
+
... reveal_locals()
|
| 49 |
+
... # note: Revealed local types are:
|
| 50 |
+
... # note: a: numpy.floating[numpy.typing._16Bit*]
|
| 51 |
+
... # note: b: numpy.signedinteger[numpy.typing._64Bit*]
|
| 52 |
+
... # note: out: numpy.floating[numpy.typing._64Bit*]
|
| 53 |
+
|
| 54 |
+
"""
|
| 55 |
+
# Deprecated in NumPy 2.3, 2025-05-01
|
| 56 |
+
|
| 57 |
+
def __init_subclass__(cls) -> None:
|
| 58 |
+
allowed_names = {
|
| 59 |
+
"NBitBase", "_128Bit", "_96Bit", "_64Bit", "_32Bit", "_16Bit", "_8Bit"
|
| 60 |
+
}
|
| 61 |
+
if cls.__name__ not in allowed_names:
|
| 62 |
+
raise TypeError('cannot inherit from final class "NBitBase"')
|
| 63 |
+
super().__init_subclass__()
|
| 64 |
+
|
| 65 |
+
@final
|
| 66 |
+
@set_module("numpy._typing")
|
| 67 |
+
# Silence errors about subclassing a `@final`-decorated class
|
| 68 |
+
class _128Bit(NBitBase): # type: ignore[misc] # pyright: ignore[reportGeneralTypeIssues]
|
| 69 |
+
pass
|
| 70 |
+
|
| 71 |
+
@final
|
| 72 |
+
@set_module("numpy._typing")
|
| 73 |
+
class _96Bit(_128Bit): # type: ignore[misc] # pyright: ignore[reportGeneralTypeIssues]
|
| 74 |
+
pass
|
| 75 |
+
|
| 76 |
+
@final
|
| 77 |
+
@set_module("numpy._typing")
|
| 78 |
+
class _64Bit(_96Bit): # type: ignore[misc] # pyright: ignore[reportGeneralTypeIssues]
|
| 79 |
+
pass
|
| 80 |
+
|
| 81 |
+
@final
|
| 82 |
+
@set_module("numpy._typing")
|
| 83 |
+
class _32Bit(_64Bit): # type: ignore[misc] # pyright: ignore[reportGeneralTypeIssues]
|
| 84 |
+
pass
|
| 85 |
+
|
| 86 |
+
@final
|
| 87 |
+
@set_module("numpy._typing")
|
| 88 |
+
class _16Bit(_32Bit): # type: ignore[misc] # pyright: ignore[reportGeneralTypeIssues]
|
| 89 |
+
pass
|
| 90 |
+
|
| 91 |
+
@final
|
| 92 |
+
@set_module("numpy._typing")
|
| 93 |
+
class _8Bit(_16Bit): # type: ignore[misc] # pyright: ignore[reportGeneralTypeIssues]
|
| 94 |
+
pass
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_nbit_base.pyi
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# pyright: reportDeprecated=false
|
| 2 |
+
# pyright: reportGeneralTypeIssues=false
|
| 3 |
+
# mypy: disable-error-code=misc
|
| 4 |
+
|
| 5 |
+
from typing import final
|
| 6 |
+
from typing_extensions import deprecated
|
| 7 |
+
|
| 8 |
+
# Deprecated in NumPy 2.3, 2025-05-01
|
| 9 |
+
@deprecated(
|
| 10 |
+
"`NBitBase` is deprecated and will be removed from numpy.typing in the "
|
| 11 |
+
"future. Use `@typing.overload` or a `TypeVar` with a scalar-type as upper "
|
| 12 |
+
"bound, instead. (deprecated in NumPy 2.3)",
|
| 13 |
+
)
|
| 14 |
+
@final
|
| 15 |
+
class NBitBase: ...
|
| 16 |
+
|
| 17 |
+
@final
|
| 18 |
+
class _256Bit(NBitBase): ...
|
| 19 |
+
|
| 20 |
+
@final
|
| 21 |
+
class _128Bit(_256Bit): ...
|
| 22 |
+
|
| 23 |
+
@final
|
| 24 |
+
class _96Bit(_128Bit): ...
|
| 25 |
+
|
| 26 |
+
@final
|
| 27 |
+
class _80Bit(_96Bit): ...
|
| 28 |
+
|
| 29 |
+
@final
|
| 30 |
+
class _64Bit(_80Bit): ...
|
| 31 |
+
|
| 32 |
+
@final
|
| 33 |
+
class _32Bit(_64Bit): ...
|
| 34 |
+
|
| 35 |
+
@final
|
| 36 |
+
class _16Bit(_32Bit): ...
|
| 37 |
+
|
| 38 |
+
@final
|
| 39 |
+
class _8Bit(_16Bit): ...
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_nested_sequence.py
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""A module containing the `_NestedSequence` protocol."""
|
| 2 |
+
|
| 3 |
+
from typing import TYPE_CHECKING, Any, Protocol, TypeVar, runtime_checkable
|
| 4 |
+
|
| 5 |
+
if TYPE_CHECKING:
|
| 6 |
+
from collections.abc import Iterator
|
| 7 |
+
|
| 8 |
+
__all__ = ["_NestedSequence"]
|
| 9 |
+
|
| 10 |
+
_T_co = TypeVar("_T_co", covariant=True)
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
@runtime_checkable
|
| 14 |
+
class _NestedSequence(Protocol[_T_co]):
|
| 15 |
+
"""A protocol for representing nested sequences.
|
| 16 |
+
|
| 17 |
+
Warning
|
| 18 |
+
-------
|
| 19 |
+
`_NestedSequence` currently does not work in combination with typevars,
|
| 20 |
+
*e.g.* ``def func(a: _NestedSequnce[T]) -> T: ...``.
|
| 21 |
+
|
| 22 |
+
See Also
|
| 23 |
+
--------
|
| 24 |
+
collections.abc.Sequence
|
| 25 |
+
ABCs for read-only and mutable :term:`sequences`.
|
| 26 |
+
|
| 27 |
+
Examples
|
| 28 |
+
--------
|
| 29 |
+
.. code-block:: python
|
| 30 |
+
|
| 31 |
+
>>> from typing import TYPE_CHECKING
|
| 32 |
+
>>> import numpy as np
|
| 33 |
+
>>> from numpy._typing import _NestedSequence
|
| 34 |
+
|
| 35 |
+
>>> def get_dtype(seq: _NestedSequence[float]) -> np.dtype[np.float64]:
|
| 36 |
+
... return np.asarray(seq).dtype
|
| 37 |
+
|
| 38 |
+
>>> a = get_dtype([1.0])
|
| 39 |
+
>>> b = get_dtype([[1.0]])
|
| 40 |
+
>>> c = get_dtype([[[1.0]]])
|
| 41 |
+
>>> d = get_dtype([[[[1.0]]]])
|
| 42 |
+
|
| 43 |
+
>>> if TYPE_CHECKING:
|
| 44 |
+
... reveal_locals()
|
| 45 |
+
... # note: Revealed local types are:
|
| 46 |
+
... # note: a: numpy.dtype[numpy.floating[numpy._typing._64Bit]]
|
| 47 |
+
... # note: b: numpy.dtype[numpy.floating[numpy._typing._64Bit]]
|
| 48 |
+
... # note: c: numpy.dtype[numpy.floating[numpy._typing._64Bit]]
|
| 49 |
+
... # note: d: numpy.dtype[numpy.floating[numpy._typing._64Bit]]
|
| 50 |
+
|
| 51 |
+
"""
|
| 52 |
+
|
| 53 |
+
def __len__(self, /) -> int:
|
| 54 |
+
"""Implement ``len(self)``."""
|
| 55 |
+
raise NotImplementedError
|
| 56 |
+
|
| 57 |
+
def __getitem__(self, index: int, /) -> "_T_co | _NestedSequence[_T_co]":
|
| 58 |
+
"""Implement ``self[x]``."""
|
| 59 |
+
raise NotImplementedError
|
| 60 |
+
|
| 61 |
+
def __contains__(self, x: object, /) -> bool:
|
| 62 |
+
"""Implement ``x in self``."""
|
| 63 |
+
raise NotImplementedError
|
| 64 |
+
|
| 65 |
+
def __iter__(self, /) -> "Iterator[_T_co | _NestedSequence[_T_co]]":
|
| 66 |
+
"""Implement ``iter(self)``."""
|
| 67 |
+
raise NotImplementedError
|
| 68 |
+
|
| 69 |
+
def __reversed__(self, /) -> "Iterator[_T_co | _NestedSequence[_T_co]]":
|
| 70 |
+
"""Implement ``reversed(self)``."""
|
| 71 |
+
raise NotImplementedError
|
| 72 |
+
|
| 73 |
+
def count(self, value: Any, /) -> int:
|
| 74 |
+
"""Return the number of occurrences of `value`."""
|
| 75 |
+
raise NotImplementedError
|
| 76 |
+
|
| 77 |
+
def index(self, value: Any, /) -> int:
|
| 78 |
+
"""Return the first index of `value`."""
|
| 79 |
+
raise NotImplementedError
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_scalars.py
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from typing import Any, TypeAlias
|
| 2 |
+
|
| 3 |
+
import numpy as np
|
| 4 |
+
|
| 5 |
+
# NOTE: `_StrLike_co` and `_BytesLike_co` are pointless, as `np.str_` and
|
| 6 |
+
# `np.bytes_` are already subclasses of their builtin counterpart
|
| 7 |
+
_CharLike_co: TypeAlias = str | bytes
|
| 8 |
+
|
| 9 |
+
# The `<X>Like_co` type-aliases below represent all scalars that can be
|
| 10 |
+
# coerced into `<X>` (with the casting rule `same_kind`)
|
| 11 |
+
_BoolLike_co: TypeAlias = bool | np.bool
|
| 12 |
+
_UIntLike_co: TypeAlias = bool | np.unsignedinteger | np.bool
|
| 13 |
+
_IntLike_co: TypeAlias = int | np.integer | np.bool
|
| 14 |
+
_FloatLike_co: TypeAlias = float | np.floating | np.integer | np.bool
|
| 15 |
+
_ComplexLike_co: TypeAlias = complex | np.number | np.bool
|
| 16 |
+
_NumberLike_co: TypeAlias = _ComplexLike_co
|
| 17 |
+
_TD64Like_co: TypeAlias = int | np.timedelta64 | np.integer | np.bool
|
| 18 |
+
# `_VoidLike_co` is technically not a scalar, but it's close enough
|
| 19 |
+
_VoidLike_co: TypeAlias = tuple[Any, ...] | np.void
|
| 20 |
+
_ScalarLike_co: TypeAlias = complex | str | bytes | np.generic
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_shape.py
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from collections.abc import Sequence
|
| 2 |
+
from typing import Any, SupportsIndex, TypeAlias
|
| 3 |
+
|
| 4 |
+
_Shape: TypeAlias = tuple[int, ...]
|
| 5 |
+
_AnyShape: TypeAlias = tuple[Any, ...]
|
| 6 |
+
|
| 7 |
+
# Anything that can be coerced to a shape tuple
|
| 8 |
+
_ShapeLike: TypeAlias = SupportsIndex | Sequence[SupportsIndex]
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_ufunc.py
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from numpy import ufunc
|
| 2 |
+
|
| 3 |
+
_UFunc_Nin1_Nout1 = ufunc
|
| 4 |
+
_UFunc_Nin2_Nout1 = ufunc
|
| 5 |
+
_UFunc_Nin1_Nout2 = ufunc
|
| 6 |
+
_UFunc_Nin2_Nout2 = ufunc
|
| 7 |
+
_GUFunc_Nin2_Nout1 = ufunc
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_typing/_ufunc.pyi
ADDED
|
@@ -0,0 +1,975 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""A module with private type-check-only `numpy.ufunc` subclasses.
|
| 2 |
+
|
| 3 |
+
The signatures of the ufuncs are too varied to reasonably type
|
| 4 |
+
with a single class. So instead, `ufunc` has been expanded into
|
| 5 |
+
four private subclasses, one for each combination of
|
| 6 |
+
`~ufunc.nin` and `~ufunc.nout`.
|
| 7 |
+
""" # noqa: PYI021
|
| 8 |
+
|
| 9 |
+
from _typeshed import Incomplete
|
| 10 |
+
from types import EllipsisType
|
| 11 |
+
from typing import (
|
| 12 |
+
Any,
|
| 13 |
+
Generic,
|
| 14 |
+
Literal,
|
| 15 |
+
LiteralString,
|
| 16 |
+
Never,
|
| 17 |
+
NoReturn,
|
| 18 |
+
Protocol,
|
| 19 |
+
SupportsIndex,
|
| 20 |
+
TypeAlias,
|
| 21 |
+
TypedDict,
|
| 22 |
+
TypeVar,
|
| 23 |
+
Unpack,
|
| 24 |
+
overload,
|
| 25 |
+
type_check_only,
|
| 26 |
+
)
|
| 27 |
+
|
| 28 |
+
import numpy as np
|
| 29 |
+
from numpy import _CastingKind, _OrderKACF, ufunc
|
| 30 |
+
from numpy.typing import NDArray
|
| 31 |
+
|
| 32 |
+
from ._array_like import ArrayLike, _ArrayLikeBool_co, _ArrayLikeInt_co
|
| 33 |
+
from ._dtype_like import DTypeLike
|
| 34 |
+
from ._scalars import _ScalarLike_co
|
| 35 |
+
from ._shape import _ShapeLike
|
| 36 |
+
|
| 37 |
+
_T = TypeVar("_T")
|
| 38 |
+
_2Tuple: TypeAlias = tuple[_T, _T]
|
| 39 |
+
_3Tuple: TypeAlias = tuple[_T, _T, _T]
|
| 40 |
+
_4Tuple: TypeAlias = tuple[_T, _T, _T, _T]
|
| 41 |
+
|
| 42 |
+
_2PTuple: TypeAlias = tuple[_T, _T, *tuple[_T, ...]]
|
| 43 |
+
_3PTuple: TypeAlias = tuple[_T, _T, _T, *tuple[_T, ...]]
|
| 44 |
+
_4PTuple: TypeAlias = tuple[_T, _T, _T, _T, *tuple[_T, ...]]
|
| 45 |
+
|
| 46 |
+
_NTypes = TypeVar("_NTypes", bound=int, covariant=True)
|
| 47 |
+
_IDType = TypeVar("_IDType", covariant=True)
|
| 48 |
+
_NameType = TypeVar("_NameType", bound=LiteralString, covariant=True)
|
| 49 |
+
_Signature = TypeVar("_Signature", bound=LiteralString, covariant=True)
|
| 50 |
+
|
| 51 |
+
_NIn = TypeVar("_NIn", bound=int, covariant=True)
|
| 52 |
+
_NOut = TypeVar("_NOut", bound=int, covariant=True)
|
| 53 |
+
_ReturnType_co = TypeVar("_ReturnType_co", covariant=True)
|
| 54 |
+
_ArrayT = TypeVar("_ArrayT", bound=np.ndarray)
|
| 55 |
+
|
| 56 |
+
@type_check_only
|
| 57 |
+
class _SupportsArrayUFunc(Protocol):
|
| 58 |
+
def __array_ufunc__(
|
| 59 |
+
self,
|
| 60 |
+
ufunc: ufunc,
|
| 61 |
+
method: Literal["__call__", "reduce", "reduceat", "accumulate", "outer", "at"],
|
| 62 |
+
*inputs: Any,
|
| 63 |
+
**kwargs: Any,
|
| 64 |
+
) -> Any: ...
|
| 65 |
+
|
| 66 |
+
@type_check_only
|
| 67 |
+
class _UFunc3Kwargs(TypedDict, total=False):
|
| 68 |
+
where: _ArrayLikeBool_co | None
|
| 69 |
+
casting: _CastingKind
|
| 70 |
+
order: _OrderKACF
|
| 71 |
+
subok: bool
|
| 72 |
+
signature: _3Tuple[str | None] | str | None
|
| 73 |
+
|
| 74 |
+
@type_check_only
|
| 75 |
+
class _ReduceKwargs(TypedDict, total=False):
|
| 76 |
+
initial: Incomplete # = <no value>
|
| 77 |
+
where: _ArrayLikeBool_co | None # = True
|
| 78 |
+
|
| 79 |
+
# NOTE: `reduce`, `accumulate`, `reduceat` and `outer` raise a ValueError for
|
| 80 |
+
# ufuncs that don't accept two input arguments and return one output argument.
|
| 81 |
+
# In such cases the respective methods return `NoReturn`
|
| 82 |
+
|
| 83 |
+
# NOTE: Similarly, `at` won't be defined for ufuncs that return
|
| 84 |
+
# multiple outputs; in such cases `at` is typed to return `NoReturn`
|
| 85 |
+
|
| 86 |
+
# NOTE: If 2 output types are returned then `out` must be a
|
| 87 |
+
# 2-tuple of arrays. Otherwise `None` or a plain array are also acceptable
|
| 88 |
+
|
| 89 |
+
# pyright: reportIncompatibleMethodOverride=false
|
| 90 |
+
|
| 91 |
+
@type_check_only
|
| 92 |
+
class _UFunc_Nin1_Nout1(ufunc, Generic[_NameType, _NTypes, _IDType]): # type: ignore[misc]
|
| 93 |
+
@property
|
| 94 |
+
def __name__(self) -> _NameType: ...
|
| 95 |
+
@property
|
| 96 |
+
def __qualname__(self) -> _NameType: ... # pyright: ignore[reportIncompatibleVariableOverride]
|
| 97 |
+
@property
|
| 98 |
+
def ntypes(self) -> _NTypes: ...
|
| 99 |
+
@property
|
| 100 |
+
def identity(self) -> _IDType: ...
|
| 101 |
+
@property
|
| 102 |
+
def nin(self) -> Literal[1]: ...
|
| 103 |
+
@property
|
| 104 |
+
def nout(self) -> Literal[1]: ...
|
| 105 |
+
@property
|
| 106 |
+
def nargs(self) -> Literal[2]: ...
|
| 107 |
+
@property
|
| 108 |
+
def signature(self) -> None: ...
|
| 109 |
+
|
| 110 |
+
@overload
|
| 111 |
+
def __call__(
|
| 112 |
+
self,
|
| 113 |
+
x1: _ScalarLike_co,
|
| 114 |
+
/,
|
| 115 |
+
out: None = None,
|
| 116 |
+
*,
|
| 117 |
+
dtype: DTypeLike | None = None,
|
| 118 |
+
where: _ArrayLikeBool_co | None = True,
|
| 119 |
+
casting: _CastingKind = ...,
|
| 120 |
+
order: _OrderKACF = ...,
|
| 121 |
+
subok: bool = ...,
|
| 122 |
+
signature: str | _2Tuple[str | None] = ...,
|
| 123 |
+
) -> Incomplete: ...
|
| 124 |
+
@overload
|
| 125 |
+
def __call__(
|
| 126 |
+
self,
|
| 127 |
+
x1: ArrayLike,
|
| 128 |
+
/,
|
| 129 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 130 |
+
*,
|
| 131 |
+
dtype: DTypeLike | None = None,
|
| 132 |
+
where: _ArrayLikeBool_co | None = True,
|
| 133 |
+
casting: _CastingKind = ...,
|
| 134 |
+
order: _OrderKACF = ...,
|
| 135 |
+
subok: bool = ...,
|
| 136 |
+
signature: str | _2Tuple[str | None] = ...,
|
| 137 |
+
) -> NDArray[Incomplete]: ...
|
| 138 |
+
@overload
|
| 139 |
+
def __call__(
|
| 140 |
+
self,
|
| 141 |
+
x1: _SupportsArrayUFunc,
|
| 142 |
+
/,
|
| 143 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 144 |
+
*,
|
| 145 |
+
dtype: DTypeLike | None = None,
|
| 146 |
+
where: _ArrayLikeBool_co | None = True,
|
| 147 |
+
casting: _CastingKind = ...,
|
| 148 |
+
order: _OrderKACF = ...,
|
| 149 |
+
subok: bool = ...,
|
| 150 |
+
signature: str | _2Tuple[str | None] = ...,
|
| 151 |
+
) -> Incomplete: ...
|
| 152 |
+
|
| 153 |
+
def accumulate(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 154 |
+
def reduce(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 155 |
+
def reduceat(self, array: Never, /, indices: Never) -> NoReturn: ... # type: ignore[override]
|
| 156 |
+
def outer(self, A: Never, B: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 157 |
+
|
| 158 |
+
def at(self, a: np.ndarray | _SupportsArrayUFunc, indices: _ArrayLikeInt_co, /) -> None: ... # type: ignore[override]
|
| 159 |
+
|
| 160 |
+
@type_check_only
|
| 161 |
+
class _UFunc_Nin2_Nout1(ufunc, Generic[_NameType, _NTypes, _IDType]): # type: ignore[misc]
|
| 162 |
+
@property
|
| 163 |
+
def __name__(self) -> _NameType: ...
|
| 164 |
+
@property
|
| 165 |
+
def __qualname__(self) -> _NameType: ... # pyright: ignore[reportIncompatibleVariableOverride]
|
| 166 |
+
@property
|
| 167 |
+
def ntypes(self) -> _NTypes: ...
|
| 168 |
+
@property
|
| 169 |
+
def identity(self) -> _IDType: ...
|
| 170 |
+
@property
|
| 171 |
+
def nin(self) -> Literal[2]: ...
|
| 172 |
+
@property
|
| 173 |
+
def nout(self) -> Literal[1]: ...
|
| 174 |
+
@property
|
| 175 |
+
def nargs(self) -> Literal[3]: ...
|
| 176 |
+
@property
|
| 177 |
+
def signature(self) -> None: ...
|
| 178 |
+
|
| 179 |
+
@overload # (scalar, scalar) -> scalar
|
| 180 |
+
def __call__(
|
| 181 |
+
self,
|
| 182 |
+
x1: _ScalarLike_co,
|
| 183 |
+
x2: _ScalarLike_co,
|
| 184 |
+
/,
|
| 185 |
+
out: EllipsisType | None = None,
|
| 186 |
+
*,
|
| 187 |
+
dtype: DTypeLike | None = None,
|
| 188 |
+
**kwds: Unpack[_UFunc3Kwargs],
|
| 189 |
+
) -> Incomplete: ...
|
| 190 |
+
@overload # (array-like, array) -> array
|
| 191 |
+
def __call__(
|
| 192 |
+
self,
|
| 193 |
+
x1: ArrayLike,
|
| 194 |
+
x2: np.ndarray,
|
| 195 |
+
/,
|
| 196 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 197 |
+
*,
|
| 198 |
+
dtype: DTypeLike | None = None,
|
| 199 |
+
**kwds: Unpack[_UFunc3Kwargs],
|
| 200 |
+
) -> NDArray[Incomplete]: ...
|
| 201 |
+
@overload # (array, array-like) -> array
|
| 202 |
+
def __call__(
|
| 203 |
+
self,
|
| 204 |
+
x1: np.ndarray,
|
| 205 |
+
x2: ArrayLike,
|
| 206 |
+
/,
|
| 207 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 208 |
+
*,
|
| 209 |
+
dtype: DTypeLike | None = None,
|
| 210 |
+
**kwds: Unpack[_UFunc3Kwargs],
|
| 211 |
+
) -> NDArray[Incomplete]: ...
|
| 212 |
+
@overload # (array-like, array-like, out=array) -> array
|
| 213 |
+
def __call__(
|
| 214 |
+
self,
|
| 215 |
+
x1: ArrayLike,
|
| 216 |
+
x2: ArrayLike,
|
| 217 |
+
/,
|
| 218 |
+
out: np.ndarray | tuple[np.ndarray],
|
| 219 |
+
*,
|
| 220 |
+
dtype: DTypeLike | None = None,
|
| 221 |
+
**kwds: Unpack[_UFunc3Kwargs],
|
| 222 |
+
) -> NDArray[Incomplete]: ...
|
| 223 |
+
@overload # (array-like, array-like) -> array | scalar
|
| 224 |
+
def __call__(
|
| 225 |
+
self,
|
| 226 |
+
x1: ArrayLike,
|
| 227 |
+
x2: ArrayLike,
|
| 228 |
+
/,
|
| 229 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 230 |
+
*,
|
| 231 |
+
dtype: DTypeLike | None = None,
|
| 232 |
+
**kwds: Unpack[_UFunc3Kwargs],
|
| 233 |
+
) -> NDArray[Incomplete] | Incomplete: ...
|
| 234 |
+
|
| 235 |
+
def accumulate(
|
| 236 |
+
self,
|
| 237 |
+
array: ArrayLike,
|
| 238 |
+
/,
|
| 239 |
+
axis: SupportsIndex = 0,
|
| 240 |
+
dtype: DTypeLike | None = None,
|
| 241 |
+
out: np.ndarray | EllipsisType | None = None,
|
| 242 |
+
) -> NDArray[Incomplete]: ...
|
| 243 |
+
|
| 244 |
+
@overload # type: ignore[override]
|
| 245 |
+
def reduce( # out=None (default), keepdims=False (default)
|
| 246 |
+
self,
|
| 247 |
+
array: ArrayLike,
|
| 248 |
+
/,
|
| 249 |
+
axis: _ShapeLike | None = 0,
|
| 250 |
+
dtype: DTypeLike | None = None,
|
| 251 |
+
out: None = None,
|
| 252 |
+
*,
|
| 253 |
+
keepdims: Literal[False] = False,
|
| 254 |
+
**kwargs: Unpack[_ReduceKwargs],
|
| 255 |
+
) -> Incomplete: ...
|
| 256 |
+
@overload # out=ndarray or out=...
|
| 257 |
+
def reduce(
|
| 258 |
+
self,
|
| 259 |
+
array: ArrayLike,
|
| 260 |
+
/,
|
| 261 |
+
axis: _ShapeLike | None = 0,
|
| 262 |
+
dtype: DTypeLike | None = None,
|
| 263 |
+
*,
|
| 264 |
+
out: np.ndarray | EllipsisType,
|
| 265 |
+
keepdims: bool = False,
|
| 266 |
+
**kwargs: Unpack[_ReduceKwargs],
|
| 267 |
+
) -> NDArray[Incomplete]: ...
|
| 268 |
+
@overload # keepdims=True
|
| 269 |
+
def reduce(
|
| 270 |
+
self,
|
| 271 |
+
array: ArrayLike,
|
| 272 |
+
/,
|
| 273 |
+
axis: _ShapeLike | None = 0,
|
| 274 |
+
dtype: DTypeLike | None = None,
|
| 275 |
+
out: np.ndarray | EllipsisType | None = None,
|
| 276 |
+
*,
|
| 277 |
+
keepdims: Literal[True],
|
| 278 |
+
**kwargs: Unpack[_ReduceKwargs],
|
| 279 |
+
) -> NDArray[Incomplete]: ...
|
| 280 |
+
|
| 281 |
+
def reduceat(
|
| 282 |
+
self,
|
| 283 |
+
array: ArrayLike,
|
| 284 |
+
/,
|
| 285 |
+
indices: _ArrayLikeInt_co,
|
| 286 |
+
axis: SupportsIndex = 0,
|
| 287 |
+
dtype: DTypeLike | None = None,
|
| 288 |
+
out: np.ndarray | EllipsisType | None = None,
|
| 289 |
+
) -> NDArray[Incomplete]: ...
|
| 290 |
+
|
| 291 |
+
@overload # type: ignore[override]
|
| 292 |
+
def outer( # (scalar, scalar) -> scalar
|
| 293 |
+
self,
|
| 294 |
+
A: _ScalarLike_co,
|
| 295 |
+
B: _ScalarLike_co,
|
| 296 |
+
/,
|
| 297 |
+
*,
|
| 298 |
+
out: None = None,
|
| 299 |
+
dtype: DTypeLike | None = None,
|
| 300 |
+
**kwds: Unpack[_UFunc3Kwargs],
|
| 301 |
+
) -> Incomplete: ...
|
| 302 |
+
@overload # (array-like, array) -> array
|
| 303 |
+
def outer(
|
| 304 |
+
self,
|
| 305 |
+
A: ArrayLike,
|
| 306 |
+
B: np.ndarray,
|
| 307 |
+
/,
|
| 308 |
+
*,
|
| 309 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 310 |
+
dtype: DTypeLike | None = None,
|
| 311 |
+
**kwds: Unpack[_UFunc3Kwargs],
|
| 312 |
+
) -> NDArray[Incomplete]: ...
|
| 313 |
+
@overload # (array, array-like) -> array
|
| 314 |
+
def outer(
|
| 315 |
+
self,
|
| 316 |
+
A: np.ndarray,
|
| 317 |
+
B: ArrayLike,
|
| 318 |
+
/,
|
| 319 |
+
*,
|
| 320 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 321 |
+
dtype: DTypeLike | None = None,
|
| 322 |
+
**kwds: Unpack[_UFunc3Kwargs],
|
| 323 |
+
) -> NDArray[Incomplete]: ...
|
| 324 |
+
@overload # (array-like, array-like, out=array) -> array
|
| 325 |
+
def outer(
|
| 326 |
+
self,
|
| 327 |
+
A: ArrayLike,
|
| 328 |
+
B: ArrayLike,
|
| 329 |
+
/,
|
| 330 |
+
*,
|
| 331 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType,
|
| 332 |
+
dtype: DTypeLike | None = None,
|
| 333 |
+
**kwds: Unpack[_UFunc3Kwargs],
|
| 334 |
+
) -> NDArray[Incomplete]: ...
|
| 335 |
+
@overload # (array-like, array-like) -> array | scalar
|
| 336 |
+
def outer(
|
| 337 |
+
self,
|
| 338 |
+
A: ArrayLike,
|
| 339 |
+
B: ArrayLike,
|
| 340 |
+
/,
|
| 341 |
+
*,
|
| 342 |
+
out: None = None,
|
| 343 |
+
dtype: DTypeLike | None = None,
|
| 344 |
+
**kwds: Unpack[_UFunc3Kwargs],
|
| 345 |
+
) -> NDArray[Incomplete] | Incomplete: ...
|
| 346 |
+
|
| 347 |
+
def at( # type: ignore[override]
|
| 348 |
+
self,
|
| 349 |
+
a: np.ndarray | _SupportsArrayUFunc,
|
| 350 |
+
indices: _ArrayLikeInt_co,
|
| 351 |
+
b: ArrayLike,
|
| 352 |
+
/,
|
| 353 |
+
) -> None: ...
|
| 354 |
+
|
| 355 |
+
@type_check_only
|
| 356 |
+
class _UFunc_Nin1_Nout2(ufunc, Generic[_NameType, _NTypes, _IDType]): # type: ignore[misc]
|
| 357 |
+
@property
|
| 358 |
+
def __name__(self) -> _NameType: ...
|
| 359 |
+
@property
|
| 360 |
+
def __qualname__(self) -> _NameType: ... # pyright: ignore[reportIncompatibleVariableOverride]
|
| 361 |
+
@property
|
| 362 |
+
def ntypes(self) -> _NTypes: ...
|
| 363 |
+
@property
|
| 364 |
+
def identity(self) -> _IDType: ...
|
| 365 |
+
@property
|
| 366 |
+
def nin(self) -> Literal[1]: ...
|
| 367 |
+
@property
|
| 368 |
+
def nout(self) -> Literal[2]: ...
|
| 369 |
+
@property
|
| 370 |
+
def nargs(self) -> Literal[3]: ...
|
| 371 |
+
@property
|
| 372 |
+
def signature(self) -> None: ...
|
| 373 |
+
|
| 374 |
+
@overload
|
| 375 |
+
def __call__(
|
| 376 |
+
self,
|
| 377 |
+
x1: _ScalarLike_co,
|
| 378 |
+
out1: EllipsisType | None = ...,
|
| 379 |
+
out2: None = None,
|
| 380 |
+
/,
|
| 381 |
+
*,
|
| 382 |
+
out: EllipsisType | None = ...,
|
| 383 |
+
dtype: DTypeLike | None = None,
|
| 384 |
+
where: _ArrayLikeBool_co | None = True,
|
| 385 |
+
casting: _CastingKind = ...,
|
| 386 |
+
order: _OrderKACF = ...,
|
| 387 |
+
subok: bool = ...,
|
| 388 |
+
signature: str | _3Tuple[str | None] = ...,
|
| 389 |
+
) -> _2Tuple[Incomplete]: ...
|
| 390 |
+
@overload
|
| 391 |
+
def __call__(
|
| 392 |
+
self,
|
| 393 |
+
x1: ArrayLike,
|
| 394 |
+
out1: np.ndarray | EllipsisType | None = ...,
|
| 395 |
+
out2: np.ndarray | None = ...,
|
| 396 |
+
/,
|
| 397 |
+
*,
|
| 398 |
+
out: _2Tuple[np.ndarray] | EllipsisType = ...,
|
| 399 |
+
dtype: DTypeLike | None = None,
|
| 400 |
+
where: _ArrayLikeBool_co | None = True,
|
| 401 |
+
casting: _CastingKind = ...,
|
| 402 |
+
order: _OrderKACF = ...,
|
| 403 |
+
subok: bool = ...,
|
| 404 |
+
signature: str | _3Tuple[str | None] = ...,
|
| 405 |
+
) -> _2Tuple[NDArray[Incomplete]]: ...
|
| 406 |
+
@overload
|
| 407 |
+
def __call__(
|
| 408 |
+
self,
|
| 409 |
+
x1: _SupportsArrayUFunc,
|
| 410 |
+
out1: np.ndarray | EllipsisType | None = ...,
|
| 411 |
+
out2: np.ndarray | None = ...,
|
| 412 |
+
/,
|
| 413 |
+
*,
|
| 414 |
+
out: _2Tuple[np.ndarray] | EllipsisType = ...,
|
| 415 |
+
dtype: DTypeLike | None = None,
|
| 416 |
+
where: _ArrayLikeBool_co | None = True,
|
| 417 |
+
casting: _CastingKind = ...,
|
| 418 |
+
order: _OrderKACF = ...,
|
| 419 |
+
subok: bool = ...,
|
| 420 |
+
signature: str | _3Tuple[str | None] = ...,
|
| 421 |
+
) -> _2Tuple[Incomplete]: ...
|
| 422 |
+
|
| 423 |
+
def accumulate(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 424 |
+
def reduce(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 425 |
+
def reduceat(self, array: Never, /, indices: Never) -> NoReturn: ... # type: ignore[override]
|
| 426 |
+
def outer(self, A: Never, B: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 427 |
+
def at(self, a: Never, indices: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 428 |
+
|
| 429 |
+
@type_check_only
|
| 430 |
+
class _UFunc_Nin2_Nout2(ufunc, Generic[_NameType, _NTypes, _IDType]): # type: ignore[misc]
|
| 431 |
+
@property
|
| 432 |
+
def __name__(self) -> _NameType: ...
|
| 433 |
+
@property
|
| 434 |
+
def __qualname__(self) -> _NameType: ... # pyright: ignore[reportIncompatibleVariableOverride]
|
| 435 |
+
@property
|
| 436 |
+
def ntypes(self) -> _NTypes: ...
|
| 437 |
+
@property
|
| 438 |
+
def identity(self) -> _IDType: ...
|
| 439 |
+
@property
|
| 440 |
+
def nin(self) -> Literal[2]: ...
|
| 441 |
+
@property
|
| 442 |
+
def nout(self) -> Literal[2]: ...
|
| 443 |
+
@property
|
| 444 |
+
def nargs(self) -> Literal[4]: ...
|
| 445 |
+
@property
|
| 446 |
+
def signature(self) -> None: ...
|
| 447 |
+
|
| 448 |
+
@overload
|
| 449 |
+
def __call__(
|
| 450 |
+
self,
|
| 451 |
+
x1: _ScalarLike_co,
|
| 452 |
+
x2: _ScalarLike_co,
|
| 453 |
+
out1: EllipsisType | None = ...,
|
| 454 |
+
out2: None = None,
|
| 455 |
+
/,
|
| 456 |
+
*,
|
| 457 |
+
out: EllipsisType | None = ...,
|
| 458 |
+
dtype: DTypeLike | None = None,
|
| 459 |
+
where: _ArrayLikeBool_co | None = True,
|
| 460 |
+
casting: _CastingKind = ...,
|
| 461 |
+
order: _OrderKACF = ...,
|
| 462 |
+
subok: bool = ...,
|
| 463 |
+
signature: str | _4Tuple[str | None] = ...,
|
| 464 |
+
) -> _2Tuple[Incomplete]: ...
|
| 465 |
+
@overload
|
| 466 |
+
def __call__(
|
| 467 |
+
self,
|
| 468 |
+
x1: ArrayLike,
|
| 469 |
+
x2: ArrayLike,
|
| 470 |
+
out1: np.ndarray | EllipsisType | None = ...,
|
| 471 |
+
out2: np.ndarray | None = ...,
|
| 472 |
+
/,
|
| 473 |
+
*,
|
| 474 |
+
out: _2Tuple[np.ndarray] | EllipsisType = ...,
|
| 475 |
+
dtype: DTypeLike | None = None,
|
| 476 |
+
where: _ArrayLikeBool_co | None = True,
|
| 477 |
+
casting: _CastingKind = ...,
|
| 478 |
+
order: _OrderKACF = ...,
|
| 479 |
+
subok: bool = ...,
|
| 480 |
+
signature: str | _4Tuple[str | None] = ...,
|
| 481 |
+
) -> _2Tuple[NDArray[Incomplete]]: ...
|
| 482 |
+
|
| 483 |
+
def accumulate(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 484 |
+
def reduce(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 485 |
+
def reduceat(self, array: Never, /, indices: Never) -> NoReturn: ... # type: ignore[override]
|
| 486 |
+
def outer(self, A: Never, B: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 487 |
+
def at(self, a: Never, indices: Never, b: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 488 |
+
|
| 489 |
+
@type_check_only
|
| 490 |
+
class _GUFunc_Nin2_Nout1(ufunc, Generic[_NameType, _NTypes, _IDType, _Signature]): # type: ignore[misc]
|
| 491 |
+
@property
|
| 492 |
+
def __name__(self) -> _NameType: ...
|
| 493 |
+
@property
|
| 494 |
+
def __qualname__(self) -> _NameType: ... # pyright: ignore[reportIncompatibleVariableOverride]
|
| 495 |
+
@property
|
| 496 |
+
def ntypes(self) -> _NTypes: ...
|
| 497 |
+
@property
|
| 498 |
+
def identity(self) -> _IDType: ...
|
| 499 |
+
@property
|
| 500 |
+
def nin(self) -> Literal[2]: ...
|
| 501 |
+
@property
|
| 502 |
+
def nout(self) -> Literal[1]: ...
|
| 503 |
+
@property
|
| 504 |
+
def nargs(self) -> Literal[3]: ...
|
| 505 |
+
@property
|
| 506 |
+
def signature(self) -> _Signature: ...
|
| 507 |
+
|
| 508 |
+
# Scalar for 1D array-likes; ndarray otherwise
|
| 509 |
+
@overload
|
| 510 |
+
def __call__(
|
| 511 |
+
self,
|
| 512 |
+
x1: ArrayLike,
|
| 513 |
+
x2: ArrayLike,
|
| 514 |
+
/,
|
| 515 |
+
out: EllipsisType | None = None,
|
| 516 |
+
*,
|
| 517 |
+
dtype: DTypeLike | None = None,
|
| 518 |
+
casting: _CastingKind = ...,
|
| 519 |
+
order: _OrderKACF = ...,
|
| 520 |
+
subok: bool = ...,
|
| 521 |
+
signature: str | _3Tuple[str | None] = ...,
|
| 522 |
+
axes: list[_2Tuple[SupportsIndex]] = ...,
|
| 523 |
+
) -> Incomplete: ...
|
| 524 |
+
@overload
|
| 525 |
+
def __call__(
|
| 526 |
+
self,
|
| 527 |
+
x1: ArrayLike,
|
| 528 |
+
x2: ArrayLike,
|
| 529 |
+
/,
|
| 530 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType,
|
| 531 |
+
*,
|
| 532 |
+
dtype: DTypeLike | None = None,
|
| 533 |
+
casting: _CastingKind = ...,
|
| 534 |
+
order: _OrderKACF = ...,
|
| 535 |
+
subok: bool = ...,
|
| 536 |
+
signature: str | _3Tuple[str | None] = ...,
|
| 537 |
+
axes: list[_2Tuple[SupportsIndex]] = ...,
|
| 538 |
+
) -> NDArray[Incomplete]: ...
|
| 539 |
+
|
| 540 |
+
def accumulate(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 541 |
+
def reduce(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 542 |
+
def reduceat(self, array: Never, /, indices: Never) -> NoReturn: ... # type: ignore[override]
|
| 543 |
+
def outer(self, A: Never, B: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 544 |
+
def at(self, a: Never, indices: Never, b: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 545 |
+
|
| 546 |
+
@type_check_only
|
| 547 |
+
class _PyFunc_Kwargs_Nargs2(TypedDict, total=False):
|
| 548 |
+
where: _ArrayLikeBool_co | None
|
| 549 |
+
casting: _CastingKind
|
| 550 |
+
order: _OrderKACF
|
| 551 |
+
dtype: DTypeLike
|
| 552 |
+
subok: bool
|
| 553 |
+
signature: str | tuple[DTypeLike, DTypeLike]
|
| 554 |
+
|
| 555 |
+
@type_check_only
|
| 556 |
+
class _PyFunc_Kwargs_Nargs3(TypedDict, total=False):
|
| 557 |
+
where: _ArrayLikeBool_co | None
|
| 558 |
+
casting: _CastingKind
|
| 559 |
+
order: _OrderKACF
|
| 560 |
+
dtype: DTypeLike
|
| 561 |
+
subok: bool
|
| 562 |
+
signature: str | tuple[DTypeLike, DTypeLike, DTypeLike]
|
| 563 |
+
|
| 564 |
+
@type_check_only
|
| 565 |
+
class _PyFunc_Kwargs_Nargs3P(TypedDict, total=False):
|
| 566 |
+
where: _ArrayLikeBool_co | None
|
| 567 |
+
casting: _CastingKind
|
| 568 |
+
order: _OrderKACF
|
| 569 |
+
dtype: DTypeLike
|
| 570 |
+
subok: bool
|
| 571 |
+
signature: str | _3PTuple[DTypeLike]
|
| 572 |
+
|
| 573 |
+
@type_check_only
|
| 574 |
+
class _PyFunc_Kwargs_Nargs4P(TypedDict, total=False):
|
| 575 |
+
where: _ArrayLikeBool_co | None
|
| 576 |
+
casting: _CastingKind
|
| 577 |
+
order: _OrderKACF
|
| 578 |
+
dtype: DTypeLike
|
| 579 |
+
subok: bool
|
| 580 |
+
signature: str | _4PTuple[DTypeLike]
|
| 581 |
+
|
| 582 |
+
@type_check_only
|
| 583 |
+
class _PyFunc_Nin1_Nout1(ufunc, Generic[_ReturnType_co, _IDType]): # type: ignore[misc]
|
| 584 |
+
@property
|
| 585 |
+
def identity(self) -> _IDType: ...
|
| 586 |
+
@property
|
| 587 |
+
def nin(self) -> Literal[1]: ...
|
| 588 |
+
@property
|
| 589 |
+
def nout(self) -> Literal[1]: ...
|
| 590 |
+
@property
|
| 591 |
+
def nargs(self) -> Literal[2]: ...
|
| 592 |
+
@property
|
| 593 |
+
def ntypes(self) -> Literal[1]: ...
|
| 594 |
+
@property
|
| 595 |
+
def signature(self) -> None: ...
|
| 596 |
+
|
| 597 |
+
@overload
|
| 598 |
+
def __call__(
|
| 599 |
+
self,
|
| 600 |
+
x1: _ScalarLike_co,
|
| 601 |
+
/,
|
| 602 |
+
out: EllipsisType | None = None,
|
| 603 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs2],
|
| 604 |
+
) -> _ReturnType_co: ...
|
| 605 |
+
@overload
|
| 606 |
+
def __call__(
|
| 607 |
+
self,
|
| 608 |
+
x1: ArrayLike,
|
| 609 |
+
/,
|
| 610 |
+
out: EllipsisType | None = None,
|
| 611 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs2],
|
| 612 |
+
) -> _ReturnType_co | NDArray[np.object_]: ...
|
| 613 |
+
@overload
|
| 614 |
+
def __call__(
|
| 615 |
+
self,
|
| 616 |
+
x1: ArrayLike,
|
| 617 |
+
/,
|
| 618 |
+
out: _ArrayT | tuple[_ArrayT],
|
| 619 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs2],
|
| 620 |
+
) -> _ArrayT: ...
|
| 621 |
+
@overload
|
| 622 |
+
def __call__(
|
| 623 |
+
self,
|
| 624 |
+
x1: _SupportsArrayUFunc,
|
| 625 |
+
/,
|
| 626 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 627 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs2],
|
| 628 |
+
) -> Incomplete: ...
|
| 629 |
+
|
| 630 |
+
def accumulate(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 631 |
+
def reduce(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 632 |
+
def reduceat(self, array: Never, /, indices: Never) -> NoReturn: ... # type: ignore[override]
|
| 633 |
+
def outer(self, A: Never, B: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 634 |
+
|
| 635 |
+
def at(self, a: np.ndarray | _SupportsArrayUFunc, indices: _ArrayLikeInt_co, /) -> None: ... # type: ignore[override]
|
| 636 |
+
|
| 637 |
+
@type_check_only
|
| 638 |
+
class _PyFunc_Nin2_Nout1(ufunc, Generic[_ReturnType_co, _IDType]): # type: ignore[misc]
|
| 639 |
+
@property
|
| 640 |
+
def identity(self) -> _IDType: ...
|
| 641 |
+
@property
|
| 642 |
+
def nin(self) -> Literal[2]: ...
|
| 643 |
+
@property
|
| 644 |
+
def nout(self) -> Literal[1]: ...
|
| 645 |
+
@property
|
| 646 |
+
def nargs(self) -> Literal[3]: ...
|
| 647 |
+
@property
|
| 648 |
+
def ntypes(self) -> Literal[1]: ...
|
| 649 |
+
@property
|
| 650 |
+
def signature(self) -> None: ...
|
| 651 |
+
|
| 652 |
+
@overload
|
| 653 |
+
def __call__(
|
| 654 |
+
self,
|
| 655 |
+
x1: _ScalarLike_co,
|
| 656 |
+
x2: _ScalarLike_co,
|
| 657 |
+
/,
|
| 658 |
+
out: EllipsisType | None = None,
|
| 659 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
|
| 660 |
+
) -> _ReturnType_co: ...
|
| 661 |
+
@overload
|
| 662 |
+
def __call__(
|
| 663 |
+
self,
|
| 664 |
+
x1: ArrayLike,
|
| 665 |
+
x2: ArrayLike,
|
| 666 |
+
/,
|
| 667 |
+
out: EllipsisType | None = ...,
|
| 668 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
|
| 669 |
+
) -> _ReturnType_co | NDArray[np.object_]: ...
|
| 670 |
+
@overload
|
| 671 |
+
def __call__(
|
| 672 |
+
self,
|
| 673 |
+
x1: ArrayLike,
|
| 674 |
+
x2: ArrayLike,
|
| 675 |
+
/,
|
| 676 |
+
out: _ArrayT | tuple[_ArrayT],
|
| 677 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
|
| 678 |
+
) -> _ArrayT: ...
|
| 679 |
+
@overload
|
| 680 |
+
def __call__(
|
| 681 |
+
self,
|
| 682 |
+
x1: _SupportsArrayUFunc,
|
| 683 |
+
x2: _SupportsArrayUFunc | ArrayLike,
|
| 684 |
+
/,
|
| 685 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 686 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
|
| 687 |
+
) -> Incomplete: ...
|
| 688 |
+
@overload
|
| 689 |
+
def __call__(
|
| 690 |
+
self,
|
| 691 |
+
x1: ArrayLike,
|
| 692 |
+
x2: _SupportsArrayUFunc,
|
| 693 |
+
/,
|
| 694 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 695 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
|
| 696 |
+
) -> Incomplete: ...
|
| 697 |
+
|
| 698 |
+
@overload # type: ignore[override]
|
| 699 |
+
def accumulate(
|
| 700 |
+
self,
|
| 701 |
+
array: ArrayLike,
|
| 702 |
+
/,
|
| 703 |
+
axis: SupportsIndex = 0,
|
| 704 |
+
dtype: DTypeLike | None = None,
|
| 705 |
+
out: EllipsisType | None = None,
|
| 706 |
+
) -> NDArray[np.object_]: ...
|
| 707 |
+
@overload
|
| 708 |
+
def accumulate(
|
| 709 |
+
self,
|
| 710 |
+
array: ArrayLike,
|
| 711 |
+
/,
|
| 712 |
+
axis: SupportsIndex = 0,
|
| 713 |
+
dtype: DTypeLike | None = None,
|
| 714 |
+
*,
|
| 715 |
+
out: _ArrayT,
|
| 716 |
+
) -> _ArrayT: ...
|
| 717 |
+
|
| 718 |
+
@overload # type: ignore[override]
|
| 719 |
+
def reduce( # out=array
|
| 720 |
+
self,
|
| 721 |
+
array: ArrayLike,
|
| 722 |
+
/,
|
| 723 |
+
axis: _ShapeLike | None = 0,
|
| 724 |
+
dtype: DTypeLike | None = None,
|
| 725 |
+
*,
|
| 726 |
+
out: _ArrayT | tuple[_ArrayT],
|
| 727 |
+
keepdims: bool = False,
|
| 728 |
+
**kwargs: Unpack[_ReduceKwargs],
|
| 729 |
+
) -> _ArrayT: ...
|
| 730 |
+
@overload # out=...
|
| 731 |
+
def reduce(
|
| 732 |
+
self,
|
| 733 |
+
array: ArrayLike,
|
| 734 |
+
/,
|
| 735 |
+
axis: _ShapeLike | None = 0,
|
| 736 |
+
dtype: DTypeLike | None = None,
|
| 737 |
+
*,
|
| 738 |
+
out: EllipsisType,
|
| 739 |
+
keepdims: bool = False,
|
| 740 |
+
**kwargs: Unpack[_ReduceKwargs],
|
| 741 |
+
) -> NDArray[np.object_]: ...
|
| 742 |
+
@overload # keepdims=True
|
| 743 |
+
def reduce(
|
| 744 |
+
self,
|
| 745 |
+
array: ArrayLike,
|
| 746 |
+
/,
|
| 747 |
+
axis: _ShapeLike | None = 0,
|
| 748 |
+
dtype: DTypeLike | None = None,
|
| 749 |
+
out: EllipsisType | None = None,
|
| 750 |
+
*,
|
| 751 |
+
keepdims: Literal[True],
|
| 752 |
+
**kwargs: Unpack[_ReduceKwargs],
|
| 753 |
+
) -> NDArray[np.object_]: ...
|
| 754 |
+
@overload
|
| 755 |
+
def reduce(
|
| 756 |
+
self,
|
| 757 |
+
array: ArrayLike,
|
| 758 |
+
/,
|
| 759 |
+
axis: _ShapeLike | None = 0,
|
| 760 |
+
dtype: DTypeLike | None = None,
|
| 761 |
+
out: EllipsisType | None = None,
|
| 762 |
+
keepdims: bool = False,
|
| 763 |
+
**kwargs: Unpack[_ReduceKwargs],
|
| 764 |
+
) -> _ReturnType_co | NDArray[np.object_]: ...
|
| 765 |
+
|
| 766 |
+
@overload # type: ignore[override]
|
| 767 |
+
def reduceat(
|
| 768 |
+
self,
|
| 769 |
+
array: ArrayLike,
|
| 770 |
+
/,
|
| 771 |
+
indices: _ArrayLikeInt_co,
|
| 772 |
+
axis: SupportsIndex = 0,
|
| 773 |
+
dtype: DTypeLike | None = None,
|
| 774 |
+
*,
|
| 775 |
+
out: _ArrayT | tuple[_ArrayT],
|
| 776 |
+
) -> _ArrayT: ...
|
| 777 |
+
@overload
|
| 778 |
+
def reduceat(
|
| 779 |
+
self,
|
| 780 |
+
array: ArrayLike,
|
| 781 |
+
/,
|
| 782 |
+
indices: _ArrayLikeInt_co,
|
| 783 |
+
axis: SupportsIndex = 0,
|
| 784 |
+
dtype: DTypeLike | None = None,
|
| 785 |
+
out: EllipsisType | None = None,
|
| 786 |
+
) -> NDArray[np.object_]: ...
|
| 787 |
+
@overload
|
| 788 |
+
def reduceat(
|
| 789 |
+
self,
|
| 790 |
+
array: _SupportsArrayUFunc,
|
| 791 |
+
/,
|
| 792 |
+
indices: _ArrayLikeInt_co,
|
| 793 |
+
axis: SupportsIndex = 0,
|
| 794 |
+
dtype: DTypeLike | None = None,
|
| 795 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = None,
|
| 796 |
+
) -> Incomplete: ...
|
| 797 |
+
|
| 798 |
+
@overload # type: ignore[override]
|
| 799 |
+
def outer(
|
| 800 |
+
self,
|
| 801 |
+
A: _ScalarLike_co,
|
| 802 |
+
B: _ScalarLike_co,
|
| 803 |
+
/,
|
| 804 |
+
*,
|
| 805 |
+
out: EllipsisType | None = None,
|
| 806 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
|
| 807 |
+
) -> _ReturnType_co: ...
|
| 808 |
+
@overload
|
| 809 |
+
def outer(
|
| 810 |
+
self,
|
| 811 |
+
A: ArrayLike,
|
| 812 |
+
B: ArrayLike,
|
| 813 |
+
/,
|
| 814 |
+
*,
|
| 815 |
+
out: EllipsisType | None = None,
|
| 816 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
|
| 817 |
+
) -> _ReturnType_co | NDArray[np.object_]: ...
|
| 818 |
+
@overload
|
| 819 |
+
def outer(
|
| 820 |
+
self,
|
| 821 |
+
A: ArrayLike,
|
| 822 |
+
B: ArrayLike,
|
| 823 |
+
/,
|
| 824 |
+
*,
|
| 825 |
+
out: _ArrayT,
|
| 826 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
|
| 827 |
+
) -> _ArrayT: ...
|
| 828 |
+
@overload
|
| 829 |
+
def outer(
|
| 830 |
+
self,
|
| 831 |
+
A: _SupportsArrayUFunc,
|
| 832 |
+
B: _SupportsArrayUFunc | ArrayLike,
|
| 833 |
+
/,
|
| 834 |
+
*,
|
| 835 |
+
out: EllipsisType | None = None,
|
| 836 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
|
| 837 |
+
) -> Incomplete: ...
|
| 838 |
+
@overload
|
| 839 |
+
def outer(
|
| 840 |
+
self,
|
| 841 |
+
A: _ScalarLike_co,
|
| 842 |
+
B: _SupportsArrayUFunc | ArrayLike,
|
| 843 |
+
/,
|
| 844 |
+
*,
|
| 845 |
+
out: EllipsisType | None = None,
|
| 846 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
|
| 847 |
+
) -> Incomplete: ...
|
| 848 |
+
|
| 849 |
+
def at( # type: ignore[override]
|
| 850 |
+
self,
|
| 851 |
+
a: np.ndarray | _SupportsArrayUFunc,
|
| 852 |
+
indices: _ArrayLikeInt_co,
|
| 853 |
+
b: ArrayLike,
|
| 854 |
+
/,
|
| 855 |
+
) -> None: ...
|
| 856 |
+
|
| 857 |
+
@type_check_only
|
| 858 |
+
class _PyFunc_Nin3P_Nout1(ufunc, Generic[_ReturnType_co, _IDType, _NIn]): # type: ignore[misc]
|
| 859 |
+
@property
|
| 860 |
+
def identity(self) -> _IDType: ...
|
| 861 |
+
@property
|
| 862 |
+
def nin(self) -> _NIn: ...
|
| 863 |
+
@property
|
| 864 |
+
def nout(self) -> Literal[1]: ...
|
| 865 |
+
@property
|
| 866 |
+
def ntypes(self) -> Literal[1]: ...
|
| 867 |
+
@property
|
| 868 |
+
def signature(self) -> None: ...
|
| 869 |
+
|
| 870 |
+
@overload
|
| 871 |
+
def __call__(
|
| 872 |
+
self,
|
| 873 |
+
x1: _ScalarLike_co,
|
| 874 |
+
x2: _ScalarLike_co,
|
| 875 |
+
x3: _ScalarLike_co,
|
| 876 |
+
/,
|
| 877 |
+
*xs: _ScalarLike_co,
|
| 878 |
+
out: EllipsisType | None = ...,
|
| 879 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs4P],
|
| 880 |
+
) -> _ReturnType_co: ...
|
| 881 |
+
@overload
|
| 882 |
+
def __call__(
|
| 883 |
+
self,
|
| 884 |
+
x1: ArrayLike,
|
| 885 |
+
x2: ArrayLike,
|
| 886 |
+
x3: ArrayLike,
|
| 887 |
+
/,
|
| 888 |
+
*xs: ArrayLike,
|
| 889 |
+
out: EllipsisType | None = ...,
|
| 890 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs4P],
|
| 891 |
+
) -> _ReturnType_co | NDArray[np.object_]: ...
|
| 892 |
+
@overload
|
| 893 |
+
def __call__(
|
| 894 |
+
self,
|
| 895 |
+
x1: ArrayLike,
|
| 896 |
+
x2: ArrayLike,
|
| 897 |
+
x3: ArrayLike,
|
| 898 |
+
/,
|
| 899 |
+
*xs: ArrayLike,
|
| 900 |
+
out: _ArrayT | tuple[_ArrayT],
|
| 901 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs4P],
|
| 902 |
+
) -> _ArrayT: ...
|
| 903 |
+
@overload
|
| 904 |
+
def __call__(
|
| 905 |
+
self,
|
| 906 |
+
x1: _SupportsArrayUFunc | ArrayLike,
|
| 907 |
+
x2: _SupportsArrayUFunc | ArrayLike,
|
| 908 |
+
x3: _SupportsArrayUFunc | ArrayLike,
|
| 909 |
+
/,
|
| 910 |
+
*xs: _SupportsArrayUFunc | ArrayLike,
|
| 911 |
+
out: np.ndarray | tuple[np.ndarray] | EllipsisType | None = ...,
|
| 912 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs4P],
|
| 913 |
+
) -> Incomplete: ...
|
| 914 |
+
|
| 915 |
+
def accumulate(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 916 |
+
def reduce(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 917 |
+
def reduceat(self, array: Never, /, indices: Never) -> NoReturn: ... # type: ignore[override]
|
| 918 |
+
def outer(self, A: Never, B: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 919 |
+
def at(self, a: Never, indices: Never, /, *args: Never) -> NoReturn: ... # type: ignore[override]
|
| 920 |
+
|
| 921 |
+
@type_check_only
|
| 922 |
+
class _PyFunc_Nin1P_Nout2P(ufunc, Generic[_ReturnType_co, _IDType, _NIn, _NOut]): # type: ignore[misc]
|
| 923 |
+
@property
|
| 924 |
+
def identity(self) -> _IDType: ...
|
| 925 |
+
@property
|
| 926 |
+
def nin(self) -> _NIn: ...
|
| 927 |
+
@property
|
| 928 |
+
def nout(self) -> _NOut: ...
|
| 929 |
+
@property
|
| 930 |
+
def ntypes(self) -> Literal[1]: ...
|
| 931 |
+
@property
|
| 932 |
+
def signature(self) -> None: ...
|
| 933 |
+
|
| 934 |
+
@overload
|
| 935 |
+
def __call__(
|
| 936 |
+
self,
|
| 937 |
+
x1: _ScalarLike_co,
|
| 938 |
+
/,
|
| 939 |
+
*xs: _ScalarLike_co,
|
| 940 |
+
out: EllipsisType | None = ...,
|
| 941 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3P],
|
| 942 |
+
) -> _2PTuple[_ReturnType_co]: ...
|
| 943 |
+
@overload
|
| 944 |
+
def __call__(
|
| 945 |
+
self,
|
| 946 |
+
x1: ArrayLike,
|
| 947 |
+
/,
|
| 948 |
+
*xs: ArrayLike,
|
| 949 |
+
out: EllipsisType | None = ...,
|
| 950 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3P],
|
| 951 |
+
) -> _2PTuple[_ReturnType_co | NDArray[np.object_]]: ...
|
| 952 |
+
@overload
|
| 953 |
+
def __call__(
|
| 954 |
+
self,
|
| 955 |
+
x1: ArrayLike,
|
| 956 |
+
/,
|
| 957 |
+
*xs: ArrayLike,
|
| 958 |
+
out: _2PTuple[_ArrayT],
|
| 959 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3P],
|
| 960 |
+
) -> _2PTuple[_ArrayT]: ...
|
| 961 |
+
@overload
|
| 962 |
+
def __call__(
|
| 963 |
+
self,
|
| 964 |
+
x1: _SupportsArrayUFunc | ArrayLike,
|
| 965 |
+
/,
|
| 966 |
+
*xs: _SupportsArrayUFunc | ArrayLike,
|
| 967 |
+
out: _2PTuple[np.ndarray] | EllipsisType | None = ...,
|
| 968 |
+
**kwargs: Unpack[_PyFunc_Kwargs_Nargs3P],
|
| 969 |
+
) -> Incomplete: ...
|
| 970 |
+
|
| 971 |
+
def accumulate(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 972 |
+
def reduce(self, array: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 973 |
+
def reduceat(self, array: Never, /, indices: Never) -> NoReturn: ... # type: ignore[override]
|
| 974 |
+
def outer(self, A: Never, B: Never, /) -> NoReturn: ... # type: ignore[override]
|
| 975 |
+
def at(self, a: Never, indices: Never, /, *args: Never) -> NoReturn: ... # type: ignore[override]
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/__init__.py
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
This is a module for defining private helpers which do not depend on the
|
| 3 |
+
rest of NumPy.
|
| 4 |
+
|
| 5 |
+
Everything in here must be self-contained so that it can be
|
| 6 |
+
imported anywhere else without creating circular imports.
|
| 7 |
+
If a utility requires the import of NumPy, it probably belongs
|
| 8 |
+
in ``numpy._core``.
|
| 9 |
+
"""
|
| 10 |
+
|
| 11 |
+
import functools
|
| 12 |
+
import warnings
|
| 13 |
+
|
| 14 |
+
from ._convertions import asbytes, asunicode
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
def set_module(module):
|
| 18 |
+
"""Private decorator for overriding __module__ on a function or class.
|
| 19 |
+
|
| 20 |
+
Example usage::
|
| 21 |
+
|
| 22 |
+
@set_module('numpy')
|
| 23 |
+
def example():
|
| 24 |
+
pass
|
| 25 |
+
|
| 26 |
+
assert example.__module__ == 'numpy'
|
| 27 |
+
"""
|
| 28 |
+
def decorator(func):
|
| 29 |
+
if module is not None:
|
| 30 |
+
if isinstance(func, type):
|
| 31 |
+
try:
|
| 32 |
+
func._module_source = func.__module__
|
| 33 |
+
except (AttributeError):
|
| 34 |
+
pass
|
| 35 |
+
|
| 36 |
+
func.__module__ = module
|
| 37 |
+
return func
|
| 38 |
+
return decorator
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
def _rename_parameter(old_names, new_names, dep_version=None):
|
| 42 |
+
"""
|
| 43 |
+
Generate decorator for backward-compatible keyword renaming.
|
| 44 |
+
|
| 45 |
+
Apply the decorator generated by `_rename_parameter` to functions with a
|
| 46 |
+
renamed parameter to maintain backward-compatibility.
|
| 47 |
+
|
| 48 |
+
After decoration, the function behaves as follows:
|
| 49 |
+
If only the new parameter is passed into the function, behave as usual.
|
| 50 |
+
If only the old parameter is passed into the function (as a keyword), raise
|
| 51 |
+
a DeprecationWarning if `dep_version` is provided, and behave as usual
|
| 52 |
+
otherwise.
|
| 53 |
+
If both old and new parameters are passed into the function, raise a
|
| 54 |
+
DeprecationWarning if `dep_version` is provided, and raise the appropriate
|
| 55 |
+
TypeError (function got multiple values for argument).
|
| 56 |
+
|
| 57 |
+
Parameters
|
| 58 |
+
----------
|
| 59 |
+
old_names : list of str
|
| 60 |
+
Old names of parameters
|
| 61 |
+
new_name : list of str
|
| 62 |
+
New names of parameters
|
| 63 |
+
dep_version : str, optional
|
| 64 |
+
Version of NumPy in which old parameter was deprecated in the format
|
| 65 |
+
'X.Y.Z'. If supplied, the deprecation message will indicate that
|
| 66 |
+
support for the old parameter will be removed in version 'X.Y+2.Z'
|
| 67 |
+
|
| 68 |
+
Notes
|
| 69 |
+
-----
|
| 70 |
+
Untested with functions that accept *args. Probably won't work as written.
|
| 71 |
+
|
| 72 |
+
"""
|
| 73 |
+
def decorator(fun):
|
| 74 |
+
@functools.wraps(fun)
|
| 75 |
+
def wrapper(*args, **kwargs):
|
| 76 |
+
__tracebackhide__ = True # Hide traceback for py.test
|
| 77 |
+
for old_name, new_name in zip(old_names, new_names):
|
| 78 |
+
if old_name in kwargs:
|
| 79 |
+
if dep_version:
|
| 80 |
+
end_version = dep_version.split('.')
|
| 81 |
+
end_version[1] = str(int(end_version[1]) + 2)
|
| 82 |
+
end_version = '.'.join(end_version)
|
| 83 |
+
msg = (f"Use of keyword argument `{old_name}` is "
|
| 84 |
+
f"deprecated and replaced by `{new_name}`. "
|
| 85 |
+
f"Support for `{old_name}` will be removed "
|
| 86 |
+
f"in NumPy {end_version}.")
|
| 87 |
+
warnings.warn(msg, DeprecationWarning, stacklevel=2)
|
| 88 |
+
if new_name in kwargs:
|
| 89 |
+
msg = (f"{fun.__name__}() got multiple values for "
|
| 90 |
+
f"argument now known as `{new_name}`")
|
| 91 |
+
raise TypeError(msg)
|
| 92 |
+
kwargs[new_name] = kwargs.pop(old_name)
|
| 93 |
+
return fun(*args, **kwargs)
|
| 94 |
+
return wrapper
|
| 95 |
+
return decorator
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/__init__.pyi
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from _typeshed import IdentityFunction
|
| 2 |
+
from collections.abc import Callable, Iterable
|
| 3 |
+
from typing import Protocol, TypeVar, overload, type_check_only
|
| 4 |
+
|
| 5 |
+
from ._convertions import asbytes as asbytes, asunicode as asunicode
|
| 6 |
+
|
| 7 |
+
###
|
| 8 |
+
|
| 9 |
+
_T = TypeVar("_T")
|
| 10 |
+
_HasModuleT = TypeVar("_HasModuleT", bound=_HasModule)
|
| 11 |
+
|
| 12 |
+
@type_check_only
|
| 13 |
+
class _HasModule(Protocol):
|
| 14 |
+
__module__: str
|
| 15 |
+
|
| 16 |
+
###
|
| 17 |
+
|
| 18 |
+
@overload
|
| 19 |
+
def set_module(module: None) -> IdentityFunction: ...
|
| 20 |
+
@overload
|
| 21 |
+
def set_module(module: str) -> Callable[[_HasModuleT], _HasModuleT]: ...
|
| 22 |
+
|
| 23 |
+
#
|
| 24 |
+
def _rename_parameter(
|
| 25 |
+
old_names: Iterable[str],
|
| 26 |
+
new_names: Iterable[str],
|
| 27 |
+
dep_version: str | None = None,
|
| 28 |
+
) -> Callable[[Callable[..., _T]], Callable[..., _T]]: ...
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_convertions.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
A set of methods retained from np.compat module that
|
| 3 |
+
are still used across codebase.
|
| 4 |
+
"""
|
| 5 |
+
|
| 6 |
+
__all__ = ["asunicode", "asbytes"]
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
def asunicode(s):
|
| 10 |
+
if isinstance(s, bytes):
|
| 11 |
+
return s.decode('latin1')
|
| 12 |
+
return str(s)
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
def asbytes(s):
|
| 16 |
+
if isinstance(s, bytes):
|
| 17 |
+
return s
|
| 18 |
+
return str(s).encode('latin1')
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_convertions.pyi
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
__all__ = ["asbytes", "asunicode"]
|
| 2 |
+
|
| 3 |
+
def asunicode(s: bytes | str) -> str: ...
|
| 4 |
+
def asbytes(s: bytes | str) -> str: ...
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_inspect.py
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Subset of inspect module from upstream python
|
| 2 |
+
|
| 3 |
+
We use this instead of upstream because upstream inspect is slow to import, and
|
| 4 |
+
significantly contributes to numpy import times. Importing this copy has almost
|
| 5 |
+
no overhead.
|
| 6 |
+
|
| 7 |
+
"""
|
| 8 |
+
import types
|
| 9 |
+
|
| 10 |
+
__all__ = ['getargspec', 'formatargspec']
|
| 11 |
+
|
| 12 |
+
# ----------------------------------------------------------- type-checking
|
| 13 |
+
def ismethod(object):
|
| 14 |
+
"""Return true if the object is an instance method.
|
| 15 |
+
|
| 16 |
+
Instance method objects provide these attributes:
|
| 17 |
+
__doc__ documentation string
|
| 18 |
+
__name__ name with which this method was defined
|
| 19 |
+
im_class class object in which this method belongs
|
| 20 |
+
im_func function object containing implementation of method
|
| 21 |
+
im_self instance to which this method is bound, or None
|
| 22 |
+
|
| 23 |
+
"""
|
| 24 |
+
return isinstance(object, types.MethodType)
|
| 25 |
+
|
| 26 |
+
def isfunction(object):
|
| 27 |
+
"""Return true if the object is a user-defined function.
|
| 28 |
+
|
| 29 |
+
Function objects provide these attributes:
|
| 30 |
+
__doc__ documentation string
|
| 31 |
+
__name__ name with which this function was defined
|
| 32 |
+
func_code code object containing compiled function bytecode
|
| 33 |
+
func_defaults tuple of any default values for arguments
|
| 34 |
+
func_doc (same as __doc__)
|
| 35 |
+
func_globals global namespace in which this function was defined
|
| 36 |
+
func_name (same as __name__)
|
| 37 |
+
|
| 38 |
+
"""
|
| 39 |
+
return isinstance(object, types.FunctionType)
|
| 40 |
+
|
| 41 |
+
def iscode(object):
|
| 42 |
+
"""Return true if the object is a code object.
|
| 43 |
+
|
| 44 |
+
Code objects provide these attributes:
|
| 45 |
+
co_argcount number of arguments (not including * or ** args)
|
| 46 |
+
co_code string of raw compiled bytecode
|
| 47 |
+
co_consts tuple of constants used in the bytecode
|
| 48 |
+
co_filename name of file in which this code object was created
|
| 49 |
+
co_firstlineno number of first line in Python source code
|
| 50 |
+
co_flags bitmap: 1=optimized | 2=newlocals | 4=*arg | 8=**arg
|
| 51 |
+
co_lnotab encoded mapping of line numbers to bytecode indices
|
| 52 |
+
co_name name with which this code object was defined
|
| 53 |
+
co_names tuple of names of local variables
|
| 54 |
+
co_nlocals number of local variables
|
| 55 |
+
co_stacksize virtual machine stack space required
|
| 56 |
+
co_varnames tuple of names of arguments and local variables
|
| 57 |
+
|
| 58 |
+
"""
|
| 59 |
+
return isinstance(object, types.CodeType)
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
# ------------------------------------------------ argument list extraction
|
| 63 |
+
# These constants are from Python's compile.h.
|
| 64 |
+
CO_OPTIMIZED, CO_NEWLOCALS, CO_VARARGS, CO_VARKEYWORDS = 1, 2, 4, 8
|
| 65 |
+
|
| 66 |
+
def getargs(co):
|
| 67 |
+
"""Get information about the arguments accepted by a code object.
|
| 68 |
+
|
| 69 |
+
Three things are returned: (args, varargs, varkw), where 'args' is
|
| 70 |
+
a list of argument names (possibly containing nested lists), and
|
| 71 |
+
'varargs' and 'varkw' are the names of the * and ** arguments or None.
|
| 72 |
+
|
| 73 |
+
"""
|
| 74 |
+
|
| 75 |
+
if not iscode(co):
|
| 76 |
+
raise TypeError('arg is not a code object')
|
| 77 |
+
|
| 78 |
+
nargs = co.co_argcount
|
| 79 |
+
names = co.co_varnames
|
| 80 |
+
args = list(names[:nargs])
|
| 81 |
+
|
| 82 |
+
# The following acrobatics are for anonymous (tuple) arguments.
|
| 83 |
+
# Which we do not need to support, so remove to avoid importing
|
| 84 |
+
# the dis module.
|
| 85 |
+
for i in range(nargs):
|
| 86 |
+
if args[i][:1] in ['', '.']:
|
| 87 |
+
raise TypeError("tuple function arguments are not supported")
|
| 88 |
+
varargs = None
|
| 89 |
+
if co.co_flags & CO_VARARGS:
|
| 90 |
+
varargs = co.co_varnames[nargs]
|
| 91 |
+
nargs = nargs + 1
|
| 92 |
+
varkw = None
|
| 93 |
+
if co.co_flags & CO_VARKEYWORDS:
|
| 94 |
+
varkw = co.co_varnames[nargs]
|
| 95 |
+
return args, varargs, varkw
|
| 96 |
+
|
| 97 |
+
def getargspec(func):
|
| 98 |
+
"""Get the names and default values of a function's arguments.
|
| 99 |
+
|
| 100 |
+
A tuple of four things is returned: (args, varargs, varkw, defaults).
|
| 101 |
+
'args' is a list of the argument names (it may contain nested lists).
|
| 102 |
+
'varargs' and 'varkw' are the names of the * and ** arguments or None.
|
| 103 |
+
'defaults' is an n-tuple of the default values of the last n arguments.
|
| 104 |
+
|
| 105 |
+
"""
|
| 106 |
+
|
| 107 |
+
if ismethod(func):
|
| 108 |
+
func = func.__func__
|
| 109 |
+
if not isfunction(func):
|
| 110 |
+
raise TypeError('arg is not a Python function')
|
| 111 |
+
args, varargs, varkw = getargs(func.__code__)
|
| 112 |
+
return args, varargs, varkw, func.__defaults__
|
| 113 |
+
|
| 114 |
+
def getargvalues(frame):
|
| 115 |
+
"""Get information about arguments passed into a particular frame.
|
| 116 |
+
|
| 117 |
+
A tuple of four things is returned: (args, varargs, varkw, locals).
|
| 118 |
+
'args' is a list of the argument names (it may contain nested lists).
|
| 119 |
+
'varargs' and 'varkw' are the names of the * and ** arguments or None.
|
| 120 |
+
'locals' is the locals dictionary of the given frame.
|
| 121 |
+
|
| 122 |
+
"""
|
| 123 |
+
args, varargs, varkw = getargs(frame.f_code)
|
| 124 |
+
return args, varargs, varkw, frame.f_locals
|
| 125 |
+
|
| 126 |
+
def joinseq(seq):
|
| 127 |
+
if len(seq) == 1:
|
| 128 |
+
return '(' + seq[0] + ',)'
|
| 129 |
+
else:
|
| 130 |
+
return '(' + ', '.join(seq) + ')'
|
| 131 |
+
|
| 132 |
+
def strseq(object, convert, join=joinseq):
|
| 133 |
+
"""Recursively walk a sequence, stringifying each element.
|
| 134 |
+
|
| 135 |
+
"""
|
| 136 |
+
if type(object) in [list, tuple]:
|
| 137 |
+
return join([strseq(_o, convert, join) for _o in object])
|
| 138 |
+
else:
|
| 139 |
+
return convert(object)
|
| 140 |
+
|
| 141 |
+
def formatargspec(args, varargs=None, varkw=None, defaults=None,
|
| 142 |
+
formatarg=str,
|
| 143 |
+
formatvarargs=lambda name: '*' + name,
|
| 144 |
+
formatvarkw=lambda name: '**' + name,
|
| 145 |
+
formatvalue=lambda value: '=' + repr(value),
|
| 146 |
+
join=joinseq):
|
| 147 |
+
"""Format an argument spec from the 4 values returned by getargspec.
|
| 148 |
+
|
| 149 |
+
The first four arguments are (args, varargs, varkw, defaults). The
|
| 150 |
+
other four arguments are the corresponding optional formatting functions
|
| 151 |
+
that are called to turn names and values into strings. The ninth
|
| 152 |
+
argument is an optional function to format the sequence of arguments.
|
| 153 |
+
|
| 154 |
+
"""
|
| 155 |
+
specs = []
|
| 156 |
+
if defaults:
|
| 157 |
+
firstdefault = len(args) - len(defaults)
|
| 158 |
+
for i in range(len(args)):
|
| 159 |
+
spec = strseq(args[i], formatarg, join)
|
| 160 |
+
if defaults and i >= firstdefault:
|
| 161 |
+
spec = spec + formatvalue(defaults[i - firstdefault])
|
| 162 |
+
specs.append(spec)
|
| 163 |
+
if varargs is not None:
|
| 164 |
+
specs.append(formatvarargs(varargs))
|
| 165 |
+
if varkw is not None:
|
| 166 |
+
specs.append(formatvarkw(varkw))
|
| 167 |
+
return '(' + ', '.join(specs) + ')'
|
| 168 |
+
|
| 169 |
+
def formatargvalues(args, varargs, varkw, locals,
|
| 170 |
+
formatarg=str,
|
| 171 |
+
formatvarargs=lambda name: '*' + name,
|
| 172 |
+
formatvarkw=lambda name: '**' + name,
|
| 173 |
+
formatvalue=lambda value: '=' + repr(value),
|
| 174 |
+
join=joinseq):
|
| 175 |
+
"""Format an argument spec from the 4 values returned by getargvalues.
|
| 176 |
+
|
| 177 |
+
The first four arguments are (args, varargs, varkw, locals). The
|
| 178 |
+
next four arguments are the corresponding optional formatting functions
|
| 179 |
+
that are called to turn names and values into strings. The ninth
|
| 180 |
+
argument is an optional function to format the sequence of arguments.
|
| 181 |
+
|
| 182 |
+
"""
|
| 183 |
+
def convert(name, locals=locals,
|
| 184 |
+
formatarg=formatarg, formatvalue=formatvalue):
|
| 185 |
+
return formatarg(name) + formatvalue(locals[name])
|
| 186 |
+
specs = [strseq(arg, convert, join) for arg in args]
|
| 187 |
+
|
| 188 |
+
if varargs:
|
| 189 |
+
specs.append(formatvarargs(varargs) + formatvalue(locals[varargs]))
|
| 190 |
+
if varkw:
|
| 191 |
+
specs.append(formatvarkw(varkw) + formatvalue(locals[varkw]))
|
| 192 |
+
return '(' + ', '.join(specs) + ')'
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_inspect.pyi
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import types
|
| 2 |
+
from _typeshed import SupportsLenAndGetItem
|
| 3 |
+
from collections.abc import Callable, Mapping
|
| 4 |
+
from typing import Any, Final, TypeAlias, TypeVar, overload
|
| 5 |
+
from typing_extensions import TypeIs
|
| 6 |
+
|
| 7 |
+
__all__ = ["formatargspec", "getargspec"]
|
| 8 |
+
|
| 9 |
+
###
|
| 10 |
+
|
| 11 |
+
_T = TypeVar("_T")
|
| 12 |
+
_RT = TypeVar("_RT")
|
| 13 |
+
|
| 14 |
+
_StrSeq: TypeAlias = SupportsLenAndGetItem[str]
|
| 15 |
+
_NestedSeq: TypeAlias = list[_T | _NestedSeq[_T]] | tuple[_T | _NestedSeq[_T], ...]
|
| 16 |
+
|
| 17 |
+
_JoinFunc: TypeAlias = Callable[[list[_T]], _T]
|
| 18 |
+
_FormatFunc: TypeAlias = Callable[[_T], str]
|
| 19 |
+
|
| 20 |
+
###
|
| 21 |
+
|
| 22 |
+
CO_OPTIMIZED: Final = 1
|
| 23 |
+
CO_NEWLOCALS: Final = 2
|
| 24 |
+
CO_VARARGS: Final = 4
|
| 25 |
+
CO_VARKEYWORDS: Final = 8
|
| 26 |
+
|
| 27 |
+
###
|
| 28 |
+
|
| 29 |
+
def ismethod(object: object) -> TypeIs[types.MethodType]: ...
|
| 30 |
+
def isfunction(object: object) -> TypeIs[types.FunctionType]: ...
|
| 31 |
+
def iscode(object: object) -> TypeIs[types.CodeType]: ...
|
| 32 |
+
|
| 33 |
+
###
|
| 34 |
+
|
| 35 |
+
def getargs(co: types.CodeType) -> tuple[list[str], str | None, str | None]: ...
|
| 36 |
+
def getargspec(func: types.MethodType | types.FunctionType) -> tuple[list[str], str | None, str | None, tuple[Any, ...]]: ...
|
| 37 |
+
def getargvalues(frame: types.FrameType) -> tuple[list[str], str | None, str | None, dict[str, Any]]: ...
|
| 38 |
+
|
| 39 |
+
#
|
| 40 |
+
def joinseq(seq: _StrSeq) -> str: ...
|
| 41 |
+
|
| 42 |
+
#
|
| 43 |
+
@overload
|
| 44 |
+
def strseq(object: _NestedSeq[str], convert: Callable[[Any], Any], join: _JoinFunc[str] = ...) -> str: ...
|
| 45 |
+
@overload
|
| 46 |
+
def strseq(object: _NestedSeq[_T], convert: Callable[[_T], _RT], join: _JoinFunc[_RT]) -> _RT: ...
|
| 47 |
+
|
| 48 |
+
#
|
| 49 |
+
def formatargspec(
|
| 50 |
+
args: _StrSeq,
|
| 51 |
+
varargs: str | None = None,
|
| 52 |
+
varkw: str | None = None,
|
| 53 |
+
defaults: SupportsLenAndGetItem[object] | None = None,
|
| 54 |
+
formatarg: _FormatFunc[str] = ..., # str
|
| 55 |
+
formatvarargs: _FormatFunc[str] = ..., # "*{}".format
|
| 56 |
+
formatvarkw: _FormatFunc[str] = ..., # "**{}".format
|
| 57 |
+
formatvalue: _FormatFunc[object] = ..., # "={!r}".format
|
| 58 |
+
join: _JoinFunc[str] = ..., # joinseq
|
| 59 |
+
) -> str: ...
|
| 60 |
+
def formatargvalues(
|
| 61 |
+
args: _StrSeq,
|
| 62 |
+
varargs: str | None,
|
| 63 |
+
varkw: str | None,
|
| 64 |
+
locals: Mapping[str, object] | None,
|
| 65 |
+
formatarg: _FormatFunc[str] = ..., # str
|
| 66 |
+
formatvarargs: _FormatFunc[str] = ..., # "*{}".format
|
| 67 |
+
formatvarkw: _FormatFunc[str] = ..., # "**{}".format
|
| 68 |
+
formatvalue: _FormatFunc[object] = ..., # "={!r}".format
|
| 69 |
+
join: _JoinFunc[str] = ..., # joinseq
|
| 70 |
+
) -> str: ...
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_pep440.py
ADDED
|
@@ -0,0 +1,486 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Utility to compare pep440 compatible version strings.
|
| 2 |
+
|
| 3 |
+
The LooseVersion and StrictVersion classes that distutils provides don't
|
| 4 |
+
work; they don't recognize anything like alpha/beta/rc/dev versions.
|
| 5 |
+
"""
|
| 6 |
+
|
| 7 |
+
# Copyright (c) Donald Stufft and individual contributors.
|
| 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 met:
|
| 12 |
+
|
| 13 |
+
# 1. Redistributions of source code must retain the above copyright notice,
|
| 14 |
+
# this list of conditions and the following disclaimer.
|
| 15 |
+
|
| 16 |
+
# 2. Redistributions in binary form must reproduce the above copyright
|
| 17 |
+
# notice, this list of conditions and the following disclaimer in the
|
| 18 |
+
# documentation and/or other materials provided with the distribution.
|
| 19 |
+
|
| 20 |
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| 21 |
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| 22 |
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| 23 |
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
| 24 |
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| 25 |
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| 26 |
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| 27 |
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
| 28 |
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| 29 |
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
| 30 |
+
# POSSIBILITY OF SUCH DAMAGE.
|
| 31 |
+
|
| 32 |
+
import collections
|
| 33 |
+
import itertools
|
| 34 |
+
import re
|
| 35 |
+
|
| 36 |
+
__all__ = [
|
| 37 |
+
"parse", "Version", "LegacyVersion", "InvalidVersion", "VERSION_PATTERN",
|
| 38 |
+
]
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
# BEGIN packaging/_structures.py
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
class Infinity:
|
| 45 |
+
def __repr__(self):
|
| 46 |
+
return "Infinity"
|
| 47 |
+
|
| 48 |
+
def __hash__(self):
|
| 49 |
+
return hash(repr(self))
|
| 50 |
+
|
| 51 |
+
def __lt__(self, other):
|
| 52 |
+
return False
|
| 53 |
+
|
| 54 |
+
def __le__(self, other):
|
| 55 |
+
return False
|
| 56 |
+
|
| 57 |
+
def __eq__(self, other):
|
| 58 |
+
return isinstance(other, self.__class__)
|
| 59 |
+
|
| 60 |
+
def __ne__(self, other):
|
| 61 |
+
return not isinstance(other, self.__class__)
|
| 62 |
+
|
| 63 |
+
def __gt__(self, other):
|
| 64 |
+
return True
|
| 65 |
+
|
| 66 |
+
def __ge__(self, other):
|
| 67 |
+
return True
|
| 68 |
+
|
| 69 |
+
def __neg__(self):
|
| 70 |
+
return NegativeInfinity
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
Infinity = Infinity()
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
class NegativeInfinity:
|
| 77 |
+
def __repr__(self):
|
| 78 |
+
return "-Infinity"
|
| 79 |
+
|
| 80 |
+
def __hash__(self):
|
| 81 |
+
return hash(repr(self))
|
| 82 |
+
|
| 83 |
+
def __lt__(self, other):
|
| 84 |
+
return True
|
| 85 |
+
|
| 86 |
+
def __le__(self, other):
|
| 87 |
+
return True
|
| 88 |
+
|
| 89 |
+
def __eq__(self, other):
|
| 90 |
+
return isinstance(other, self.__class__)
|
| 91 |
+
|
| 92 |
+
def __ne__(self, other):
|
| 93 |
+
return not isinstance(other, self.__class__)
|
| 94 |
+
|
| 95 |
+
def __gt__(self, other):
|
| 96 |
+
return False
|
| 97 |
+
|
| 98 |
+
def __ge__(self, other):
|
| 99 |
+
return False
|
| 100 |
+
|
| 101 |
+
def __neg__(self):
|
| 102 |
+
return Infinity
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
# BEGIN packaging/version.py
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
NegativeInfinity = NegativeInfinity()
|
| 109 |
+
|
| 110 |
+
_Version = collections.namedtuple(
|
| 111 |
+
"_Version",
|
| 112 |
+
["epoch", "release", "dev", "pre", "post", "local"],
|
| 113 |
+
)
|
| 114 |
+
|
| 115 |
+
|
| 116 |
+
def parse(version):
|
| 117 |
+
"""
|
| 118 |
+
Parse the given version string and return either a :class:`Version` object
|
| 119 |
+
or a :class:`LegacyVersion` object depending on if the given version is
|
| 120 |
+
a valid PEP 440 version or a legacy version.
|
| 121 |
+
"""
|
| 122 |
+
try:
|
| 123 |
+
return Version(version)
|
| 124 |
+
except InvalidVersion:
|
| 125 |
+
return LegacyVersion(version)
|
| 126 |
+
|
| 127 |
+
|
| 128 |
+
class InvalidVersion(ValueError):
|
| 129 |
+
"""
|
| 130 |
+
An invalid version was found, users should refer to PEP 440.
|
| 131 |
+
"""
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
class _BaseVersion:
|
| 135 |
+
|
| 136 |
+
def __hash__(self):
|
| 137 |
+
return hash(self._key)
|
| 138 |
+
|
| 139 |
+
def __lt__(self, other):
|
| 140 |
+
return self._compare(other, lambda s, o: s < o)
|
| 141 |
+
|
| 142 |
+
def __le__(self, other):
|
| 143 |
+
return self._compare(other, lambda s, o: s <= o)
|
| 144 |
+
|
| 145 |
+
def __eq__(self, other):
|
| 146 |
+
return self._compare(other, lambda s, o: s == o)
|
| 147 |
+
|
| 148 |
+
def __ge__(self, other):
|
| 149 |
+
return self._compare(other, lambda s, o: s >= o)
|
| 150 |
+
|
| 151 |
+
def __gt__(self, other):
|
| 152 |
+
return self._compare(other, lambda s, o: s > o)
|
| 153 |
+
|
| 154 |
+
def __ne__(self, other):
|
| 155 |
+
return self._compare(other, lambda s, o: s != o)
|
| 156 |
+
|
| 157 |
+
def _compare(self, other, method):
|
| 158 |
+
if not isinstance(other, _BaseVersion):
|
| 159 |
+
return NotImplemented
|
| 160 |
+
|
| 161 |
+
return method(self._key, other._key)
|
| 162 |
+
|
| 163 |
+
|
| 164 |
+
class LegacyVersion(_BaseVersion):
|
| 165 |
+
|
| 166 |
+
def __init__(self, version):
|
| 167 |
+
self._version = str(version)
|
| 168 |
+
self._key = _legacy_cmpkey(self._version)
|
| 169 |
+
|
| 170 |
+
def __str__(self):
|
| 171 |
+
return self._version
|
| 172 |
+
|
| 173 |
+
def __repr__(self):
|
| 174 |
+
return f"<LegacyVersion({str(self)!r})>"
|
| 175 |
+
|
| 176 |
+
@property
|
| 177 |
+
def public(self):
|
| 178 |
+
return self._version
|
| 179 |
+
|
| 180 |
+
@property
|
| 181 |
+
def base_version(self):
|
| 182 |
+
return self._version
|
| 183 |
+
|
| 184 |
+
@property
|
| 185 |
+
def local(self):
|
| 186 |
+
return None
|
| 187 |
+
|
| 188 |
+
@property
|
| 189 |
+
def is_prerelease(self):
|
| 190 |
+
return False
|
| 191 |
+
|
| 192 |
+
@property
|
| 193 |
+
def is_postrelease(self):
|
| 194 |
+
return False
|
| 195 |
+
|
| 196 |
+
|
| 197 |
+
_legacy_version_component_re = re.compile(
|
| 198 |
+
r"(\d+ | [a-z]+ | \.| -)", re.VERBOSE,
|
| 199 |
+
)
|
| 200 |
+
|
| 201 |
+
_legacy_version_replacement_map = {
|
| 202 |
+
"pre": "c", "preview": "c", "-": "final-", "rc": "c", "dev": "@",
|
| 203 |
+
}
|
| 204 |
+
|
| 205 |
+
|
| 206 |
+
def _parse_version_parts(s):
|
| 207 |
+
for part in _legacy_version_component_re.split(s):
|
| 208 |
+
part = _legacy_version_replacement_map.get(part, part)
|
| 209 |
+
|
| 210 |
+
if not part or part == ".":
|
| 211 |
+
continue
|
| 212 |
+
|
| 213 |
+
if part[:1] in "0123456789":
|
| 214 |
+
# pad for numeric comparison
|
| 215 |
+
yield part.zfill(8)
|
| 216 |
+
else:
|
| 217 |
+
yield "*" + part
|
| 218 |
+
|
| 219 |
+
# ensure that alpha/beta/candidate are before final
|
| 220 |
+
yield "*final"
|
| 221 |
+
|
| 222 |
+
|
| 223 |
+
def _legacy_cmpkey(version):
|
| 224 |
+
# We hardcode an epoch of -1 here. A PEP 440 version can only have an epoch
|
| 225 |
+
# greater than or equal to 0. This will effectively put the LegacyVersion,
|
| 226 |
+
# which uses the defacto standard originally implemented by setuptools,
|
| 227 |
+
# as before all PEP 440 versions.
|
| 228 |
+
epoch = -1
|
| 229 |
+
|
| 230 |
+
# This scheme is taken from pkg_resources.parse_version setuptools prior to
|
| 231 |
+
# its adoption of the packaging library.
|
| 232 |
+
parts = []
|
| 233 |
+
for part in _parse_version_parts(version.lower()):
|
| 234 |
+
if part.startswith("*"):
|
| 235 |
+
# remove "-" before a prerelease tag
|
| 236 |
+
if part < "*final":
|
| 237 |
+
while parts and parts[-1] == "*final-":
|
| 238 |
+
parts.pop()
|
| 239 |
+
|
| 240 |
+
# remove trailing zeros from each series of numeric parts
|
| 241 |
+
while parts and parts[-1] == "00000000":
|
| 242 |
+
parts.pop()
|
| 243 |
+
|
| 244 |
+
parts.append(part)
|
| 245 |
+
parts = tuple(parts)
|
| 246 |
+
|
| 247 |
+
return epoch, parts
|
| 248 |
+
|
| 249 |
+
|
| 250 |
+
# Deliberately not anchored to the start and end of the string, to make it
|
| 251 |
+
# easier for 3rd party code to reuse
|
| 252 |
+
VERSION_PATTERN = r"""
|
| 253 |
+
v?
|
| 254 |
+
(?:
|
| 255 |
+
(?:(?P<epoch>[0-9]+)!)? # epoch
|
| 256 |
+
(?P<release>[0-9]+(?:\.[0-9]+)*) # release segment
|
| 257 |
+
(?P<pre> # pre-release
|
| 258 |
+
[-_\.]?
|
| 259 |
+
(?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
|
| 260 |
+
[-_\.]?
|
| 261 |
+
(?P<pre_n>[0-9]+)?
|
| 262 |
+
)?
|
| 263 |
+
(?P<post> # post release
|
| 264 |
+
(?:-(?P<post_n1>[0-9]+))
|
| 265 |
+
|
|
| 266 |
+
(?:
|
| 267 |
+
[-_\.]?
|
| 268 |
+
(?P<post_l>post|rev|r)
|
| 269 |
+
[-_\.]?
|
| 270 |
+
(?P<post_n2>[0-9]+)?
|
| 271 |
+
)
|
| 272 |
+
)?
|
| 273 |
+
(?P<dev> # dev release
|
| 274 |
+
[-_\.]?
|
| 275 |
+
(?P<dev_l>dev)
|
| 276 |
+
[-_\.]?
|
| 277 |
+
(?P<dev_n>[0-9]+)?
|
| 278 |
+
)?
|
| 279 |
+
)
|
| 280 |
+
(?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version
|
| 281 |
+
"""
|
| 282 |
+
|
| 283 |
+
|
| 284 |
+
class Version(_BaseVersion):
|
| 285 |
+
|
| 286 |
+
_regex = re.compile(
|
| 287 |
+
r"^\s*" + VERSION_PATTERN + r"\s*$",
|
| 288 |
+
re.VERBOSE | re.IGNORECASE,
|
| 289 |
+
)
|
| 290 |
+
|
| 291 |
+
def __init__(self, version):
|
| 292 |
+
# Validate the version and parse it into pieces
|
| 293 |
+
match = self._regex.search(version)
|
| 294 |
+
if not match:
|
| 295 |
+
raise InvalidVersion(f"Invalid version: '{version}'")
|
| 296 |
+
|
| 297 |
+
# Store the parsed out pieces of the version
|
| 298 |
+
self._version = _Version(
|
| 299 |
+
epoch=int(match.group("epoch")) if match.group("epoch") else 0,
|
| 300 |
+
release=tuple(int(i) for i in match.group("release").split(".")),
|
| 301 |
+
pre=_parse_letter_version(
|
| 302 |
+
match.group("pre_l"),
|
| 303 |
+
match.group("pre_n"),
|
| 304 |
+
),
|
| 305 |
+
post=_parse_letter_version(
|
| 306 |
+
match.group("post_l"),
|
| 307 |
+
match.group("post_n1") or match.group("post_n2"),
|
| 308 |
+
),
|
| 309 |
+
dev=_parse_letter_version(
|
| 310 |
+
match.group("dev_l"),
|
| 311 |
+
match.group("dev_n"),
|
| 312 |
+
),
|
| 313 |
+
local=_parse_local_version(match.group("local")),
|
| 314 |
+
)
|
| 315 |
+
|
| 316 |
+
# Generate a key which will be used for sorting
|
| 317 |
+
self._key = _cmpkey(
|
| 318 |
+
self._version.epoch,
|
| 319 |
+
self._version.release,
|
| 320 |
+
self._version.pre,
|
| 321 |
+
self._version.post,
|
| 322 |
+
self._version.dev,
|
| 323 |
+
self._version.local,
|
| 324 |
+
)
|
| 325 |
+
|
| 326 |
+
def __repr__(self):
|
| 327 |
+
return f"<Version({str(self)!r})>"
|
| 328 |
+
|
| 329 |
+
def __str__(self):
|
| 330 |
+
parts = []
|
| 331 |
+
|
| 332 |
+
# Epoch
|
| 333 |
+
if self._version.epoch != 0:
|
| 334 |
+
parts.append(f"{self._version.epoch}!")
|
| 335 |
+
|
| 336 |
+
# Release segment
|
| 337 |
+
parts.append(".".join(str(x) for x in self._version.release))
|
| 338 |
+
|
| 339 |
+
# Pre-release
|
| 340 |
+
if self._version.pre is not None:
|
| 341 |
+
parts.append("".join(str(x) for x in self._version.pre))
|
| 342 |
+
|
| 343 |
+
# Post-release
|
| 344 |
+
if self._version.post is not None:
|
| 345 |
+
parts.append(f".post{self._version.post[1]}")
|
| 346 |
+
|
| 347 |
+
# Development release
|
| 348 |
+
if self._version.dev is not None:
|
| 349 |
+
parts.append(f".dev{self._version.dev[1]}")
|
| 350 |
+
|
| 351 |
+
# Local version segment
|
| 352 |
+
if self._version.local is not None:
|
| 353 |
+
parts.append(
|
| 354 |
+
f"+{'.'.join(str(x) for x in self._version.local)}"
|
| 355 |
+
)
|
| 356 |
+
|
| 357 |
+
return "".join(parts)
|
| 358 |
+
|
| 359 |
+
@property
|
| 360 |
+
def public(self):
|
| 361 |
+
return str(self).split("+", 1)[0]
|
| 362 |
+
|
| 363 |
+
@property
|
| 364 |
+
def base_version(self):
|
| 365 |
+
parts = []
|
| 366 |
+
|
| 367 |
+
# Epoch
|
| 368 |
+
if self._version.epoch != 0:
|
| 369 |
+
parts.append(f"{self._version.epoch}!")
|
| 370 |
+
|
| 371 |
+
# Release segment
|
| 372 |
+
parts.append(".".join(str(x) for x in self._version.release))
|
| 373 |
+
|
| 374 |
+
return "".join(parts)
|
| 375 |
+
|
| 376 |
+
@property
|
| 377 |
+
def local(self):
|
| 378 |
+
version_string = str(self)
|
| 379 |
+
if "+" in version_string:
|
| 380 |
+
return version_string.split("+", 1)[1]
|
| 381 |
+
|
| 382 |
+
@property
|
| 383 |
+
def is_prerelease(self):
|
| 384 |
+
return bool(self._version.dev or self._version.pre)
|
| 385 |
+
|
| 386 |
+
@property
|
| 387 |
+
def is_postrelease(self):
|
| 388 |
+
return bool(self._version.post)
|
| 389 |
+
|
| 390 |
+
|
| 391 |
+
def _parse_letter_version(letter, number):
|
| 392 |
+
if letter:
|
| 393 |
+
# We assume there is an implicit 0 in a pre-release if there is
|
| 394 |
+
# no numeral associated with it.
|
| 395 |
+
if number is None:
|
| 396 |
+
number = 0
|
| 397 |
+
|
| 398 |
+
# We normalize any letters to their lower-case form
|
| 399 |
+
letter = letter.lower()
|
| 400 |
+
|
| 401 |
+
# We consider some words to be alternate spellings of other words and
|
| 402 |
+
# in those cases we want to normalize the spellings to our preferred
|
| 403 |
+
# spelling.
|
| 404 |
+
if letter == "alpha":
|
| 405 |
+
letter = "a"
|
| 406 |
+
elif letter == "beta":
|
| 407 |
+
letter = "b"
|
| 408 |
+
elif letter in ["c", "pre", "preview"]:
|
| 409 |
+
letter = "rc"
|
| 410 |
+
elif letter in ["rev", "r"]:
|
| 411 |
+
letter = "post"
|
| 412 |
+
|
| 413 |
+
return letter, int(number)
|
| 414 |
+
if not letter and number:
|
| 415 |
+
# We assume that if we are given a number but not given a letter,
|
| 416 |
+
# then this is using the implicit post release syntax (e.g., 1.0-1)
|
| 417 |
+
letter = "post"
|
| 418 |
+
|
| 419 |
+
return letter, int(number)
|
| 420 |
+
|
| 421 |
+
|
| 422 |
+
_local_version_seperators = re.compile(r"[\._-]")
|
| 423 |
+
|
| 424 |
+
|
| 425 |
+
def _parse_local_version(local):
|
| 426 |
+
"""
|
| 427 |
+
Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
|
| 428 |
+
"""
|
| 429 |
+
if local is not None:
|
| 430 |
+
return tuple(
|
| 431 |
+
part.lower() if not part.isdigit() else int(part)
|
| 432 |
+
for part in _local_version_seperators.split(local)
|
| 433 |
+
)
|
| 434 |
+
|
| 435 |
+
|
| 436 |
+
def _cmpkey(epoch, release, pre, post, dev, local):
|
| 437 |
+
# When we compare a release version, we want to compare it with all of the
|
| 438 |
+
# trailing zeros removed. So we'll use a reverse the list, drop all the now
|
| 439 |
+
# leading zeros until we come to something non-zero, then take the rest,
|
| 440 |
+
# re-reverse it back into the correct order, and make it a tuple and use
|
| 441 |
+
# that for our sorting key.
|
| 442 |
+
release = tuple(
|
| 443 |
+
reversed(list(
|
| 444 |
+
itertools.dropwhile(
|
| 445 |
+
lambda x: x == 0,
|
| 446 |
+
reversed(release),
|
| 447 |
+
)
|
| 448 |
+
))
|
| 449 |
+
)
|
| 450 |
+
|
| 451 |
+
# We need to "trick" the sorting algorithm to put 1.0.dev0 before 1.0a0.
|
| 452 |
+
# We'll do this by abusing the pre-segment, but we _only_ want to do this
|
| 453 |
+
# if there is no pre- or a post-segment. If we have one of those, then
|
| 454 |
+
# the normal sorting rules will handle this case correctly.
|
| 455 |
+
if pre is None and post is None and dev is not None:
|
| 456 |
+
pre = -Infinity
|
| 457 |
+
# Versions without a pre-release (except as noted above) should sort after
|
| 458 |
+
# those with one.
|
| 459 |
+
elif pre is None:
|
| 460 |
+
pre = Infinity
|
| 461 |
+
|
| 462 |
+
# Versions without a post-segment should sort before those with one.
|
| 463 |
+
if post is None:
|
| 464 |
+
post = -Infinity
|
| 465 |
+
|
| 466 |
+
# Versions without a development segment should sort after those with one.
|
| 467 |
+
if dev is None:
|
| 468 |
+
dev = Infinity
|
| 469 |
+
|
| 470 |
+
if local is None:
|
| 471 |
+
# Versions without a local segment should sort before those with one.
|
| 472 |
+
local = -Infinity
|
| 473 |
+
else:
|
| 474 |
+
# Versions with a local segment need that segment parsed to implement
|
| 475 |
+
# the sorting rules in PEP440.
|
| 476 |
+
# - Alphanumeric segments sort before numeric segments
|
| 477 |
+
# - Alphanumeric segments sort lexicographically
|
| 478 |
+
# - Numeric segments sort numerically
|
| 479 |
+
# - Shorter versions sort before longer versions when the prefixes
|
| 480 |
+
# match exactly
|
| 481 |
+
local = tuple(
|
| 482 |
+
(i, "") if isinstance(i, int) else (-Infinity, i)
|
| 483 |
+
for i in local
|
| 484 |
+
)
|
| 485 |
+
|
| 486 |
+
return epoch, release, pre, post, dev, local
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/_utils/_pep440.pyi
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import re
|
| 2 |
+
from collections.abc import Callable
|
| 3 |
+
from typing import (
|
| 4 |
+
Any,
|
| 5 |
+
ClassVar,
|
| 6 |
+
Final,
|
| 7 |
+
Generic,
|
| 8 |
+
Literal as L,
|
| 9 |
+
NamedTuple,
|
| 10 |
+
TypeVar,
|
| 11 |
+
final,
|
| 12 |
+
type_check_only,
|
| 13 |
+
)
|
| 14 |
+
from typing_extensions import TypeIs
|
| 15 |
+
|
| 16 |
+
__all__ = ["VERSION_PATTERN", "InvalidVersion", "LegacyVersion", "Version", "parse"]
|
| 17 |
+
|
| 18 |
+
###
|
| 19 |
+
|
| 20 |
+
_CmpKeyT = TypeVar("_CmpKeyT", bound=tuple[object, ...])
|
| 21 |
+
_CmpKeyT_co = TypeVar("_CmpKeyT_co", bound=tuple[object, ...], default=tuple[Any, ...], covariant=True)
|
| 22 |
+
|
| 23 |
+
###
|
| 24 |
+
|
| 25 |
+
VERSION_PATTERN: Final[str] = ...
|
| 26 |
+
|
| 27 |
+
class InvalidVersion(ValueError): ...
|
| 28 |
+
|
| 29 |
+
@type_check_only
|
| 30 |
+
@final
|
| 31 |
+
class _InfinityType:
|
| 32 |
+
def __hash__(self) -> int: ...
|
| 33 |
+
def __eq__(self, other: object, /) -> TypeIs[_InfinityType]: ...
|
| 34 |
+
def __ne__(self, other: object, /) -> bool: ...
|
| 35 |
+
def __lt__(self, other: object, /) -> L[False]: ...
|
| 36 |
+
def __le__(self, other: object, /) -> L[False]: ...
|
| 37 |
+
def __gt__(self, other: object, /) -> L[True]: ...
|
| 38 |
+
def __ge__(self, other: object, /) -> L[True]: ...
|
| 39 |
+
def __neg__(self) -> _NegativeInfinityType: ...
|
| 40 |
+
|
| 41 |
+
Infinity: Final[_InfinityType] = ...
|
| 42 |
+
|
| 43 |
+
@type_check_only
|
| 44 |
+
@final
|
| 45 |
+
class _NegativeInfinityType:
|
| 46 |
+
def __hash__(self) -> int: ...
|
| 47 |
+
def __eq__(self, other: object, /) -> TypeIs[_NegativeInfinityType]: ...
|
| 48 |
+
def __ne__(self, other: object, /) -> bool: ...
|
| 49 |
+
def __lt__(self, other: object, /) -> L[True]: ...
|
| 50 |
+
def __le__(self, other: object, /) -> L[True]: ...
|
| 51 |
+
def __gt__(self, other: object, /) -> L[False]: ...
|
| 52 |
+
def __ge__(self, other: object, /) -> L[False]: ...
|
| 53 |
+
def __neg__(self) -> _InfinityType: ...
|
| 54 |
+
|
| 55 |
+
NegativeInfinity: Final[_NegativeInfinityType] = ...
|
| 56 |
+
|
| 57 |
+
class _Version(NamedTuple):
|
| 58 |
+
epoch: int
|
| 59 |
+
release: tuple[int, ...]
|
| 60 |
+
dev: tuple[str, int] | None
|
| 61 |
+
pre: tuple[str, int] | None
|
| 62 |
+
post: tuple[str, int] | None
|
| 63 |
+
local: tuple[str | int, ...] | None
|
| 64 |
+
|
| 65 |
+
class _BaseVersion(Generic[_CmpKeyT_co]):
|
| 66 |
+
_key: _CmpKeyT_co
|
| 67 |
+
def __hash__(self) -> int: ...
|
| 68 |
+
def __eq__(self, other: _BaseVersion, /) -> bool: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
|
| 69 |
+
def __ne__(self, other: _BaseVersion, /) -> bool: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
|
| 70 |
+
def __lt__(self, other: _BaseVersion, /) -> bool: ...
|
| 71 |
+
def __le__(self, other: _BaseVersion, /) -> bool: ...
|
| 72 |
+
def __ge__(self, other: _BaseVersion, /) -> bool: ...
|
| 73 |
+
def __gt__(self, other: _BaseVersion, /) -> bool: ...
|
| 74 |
+
def _compare(self, /, other: _BaseVersion[_CmpKeyT], method: Callable[[_CmpKeyT_co, _CmpKeyT], bool]) -> bool: ...
|
| 75 |
+
|
| 76 |
+
class LegacyVersion(_BaseVersion[tuple[L[-1], tuple[str, ...]]]):
|
| 77 |
+
_version: Final[str]
|
| 78 |
+
def __init__(self, /, version: str) -> None: ...
|
| 79 |
+
@property
|
| 80 |
+
def public(self) -> str: ...
|
| 81 |
+
@property
|
| 82 |
+
def base_version(self) -> str: ...
|
| 83 |
+
@property
|
| 84 |
+
def local(self) -> None: ...
|
| 85 |
+
@property
|
| 86 |
+
def is_prerelease(self) -> L[False]: ...
|
| 87 |
+
@property
|
| 88 |
+
def is_postrelease(self) -> L[False]: ...
|
| 89 |
+
|
| 90 |
+
class Version(
|
| 91 |
+
_BaseVersion[
|
| 92 |
+
tuple[
|
| 93 |
+
int, # epoch
|
| 94 |
+
tuple[int, ...], # release
|
| 95 |
+
tuple[str, int] | _InfinityType | _NegativeInfinityType, # pre
|
| 96 |
+
tuple[str, int] | _NegativeInfinityType, # post
|
| 97 |
+
tuple[str, int] | _InfinityType, # dev
|
| 98 |
+
tuple[tuple[int, L[""]] | tuple[_NegativeInfinityType, str], ...] | _NegativeInfinityType, # local
|
| 99 |
+
],
|
| 100 |
+
],
|
| 101 |
+
):
|
| 102 |
+
_regex: ClassVar[re.Pattern[str]] = ...
|
| 103 |
+
_version: Final[str]
|
| 104 |
+
|
| 105 |
+
def __init__(self, /, version: str) -> None: ...
|
| 106 |
+
@property
|
| 107 |
+
def public(self) -> str: ...
|
| 108 |
+
@property
|
| 109 |
+
def base_version(self) -> str: ...
|
| 110 |
+
@property
|
| 111 |
+
def local(self) -> str | None: ...
|
| 112 |
+
@property
|
| 113 |
+
def is_prerelease(self) -> bool: ...
|
| 114 |
+
@property
|
| 115 |
+
def is_postrelease(self) -> bool: ...
|
| 116 |
+
|
| 117 |
+
#
|
| 118 |
+
def parse(version: str) -> Version | LegacyVersion: ...
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/char/__init__.py
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from numpy._core.defchararray import *
|
| 2 |
+
from numpy._core.defchararray import __all__, __doc__
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/char/__init__.pyi
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from numpy._core.defchararray import (
|
| 2 |
+
add,
|
| 3 |
+
array,
|
| 4 |
+
asarray,
|
| 5 |
+
capitalize,
|
| 6 |
+
center,
|
| 7 |
+
chararray,
|
| 8 |
+
compare_chararrays,
|
| 9 |
+
count,
|
| 10 |
+
decode,
|
| 11 |
+
encode,
|
| 12 |
+
endswith,
|
| 13 |
+
equal,
|
| 14 |
+
expandtabs,
|
| 15 |
+
find,
|
| 16 |
+
greater,
|
| 17 |
+
greater_equal,
|
| 18 |
+
index,
|
| 19 |
+
isalnum,
|
| 20 |
+
isalpha,
|
| 21 |
+
isdecimal,
|
| 22 |
+
isdigit,
|
| 23 |
+
islower,
|
| 24 |
+
isnumeric,
|
| 25 |
+
isspace,
|
| 26 |
+
istitle,
|
| 27 |
+
isupper,
|
| 28 |
+
join,
|
| 29 |
+
less,
|
| 30 |
+
less_equal,
|
| 31 |
+
ljust,
|
| 32 |
+
lower,
|
| 33 |
+
lstrip,
|
| 34 |
+
mod,
|
| 35 |
+
multiply,
|
| 36 |
+
not_equal,
|
| 37 |
+
partition,
|
| 38 |
+
replace,
|
| 39 |
+
rfind,
|
| 40 |
+
rindex,
|
| 41 |
+
rjust,
|
| 42 |
+
rpartition,
|
| 43 |
+
rsplit,
|
| 44 |
+
rstrip,
|
| 45 |
+
split,
|
| 46 |
+
splitlines,
|
| 47 |
+
startswith,
|
| 48 |
+
str_len,
|
| 49 |
+
strip,
|
| 50 |
+
swapcase,
|
| 51 |
+
title,
|
| 52 |
+
translate,
|
| 53 |
+
upper,
|
| 54 |
+
zfill,
|
| 55 |
+
)
|
| 56 |
+
|
| 57 |
+
__all__ = [
|
| 58 |
+
"equal",
|
| 59 |
+
"not_equal",
|
| 60 |
+
"greater_equal",
|
| 61 |
+
"less_equal",
|
| 62 |
+
"greater",
|
| 63 |
+
"less",
|
| 64 |
+
"str_len",
|
| 65 |
+
"add",
|
| 66 |
+
"multiply",
|
| 67 |
+
"mod",
|
| 68 |
+
"capitalize",
|
| 69 |
+
"center",
|
| 70 |
+
"count",
|
| 71 |
+
"decode",
|
| 72 |
+
"encode",
|
| 73 |
+
"endswith",
|
| 74 |
+
"expandtabs",
|
| 75 |
+
"find",
|
| 76 |
+
"index",
|
| 77 |
+
"isalnum",
|
| 78 |
+
"isalpha",
|
| 79 |
+
"isdigit",
|
| 80 |
+
"islower",
|
| 81 |
+
"isspace",
|
| 82 |
+
"istitle",
|
| 83 |
+
"isupper",
|
| 84 |
+
"join",
|
| 85 |
+
"ljust",
|
| 86 |
+
"lower",
|
| 87 |
+
"lstrip",
|
| 88 |
+
"partition",
|
| 89 |
+
"replace",
|
| 90 |
+
"rfind",
|
| 91 |
+
"rindex",
|
| 92 |
+
"rjust",
|
| 93 |
+
"rpartition",
|
| 94 |
+
"rsplit",
|
| 95 |
+
"rstrip",
|
| 96 |
+
"split",
|
| 97 |
+
"splitlines",
|
| 98 |
+
"startswith",
|
| 99 |
+
"strip",
|
| 100 |
+
"swapcase",
|
| 101 |
+
"title",
|
| 102 |
+
"translate",
|
| 103 |
+
"upper",
|
| 104 |
+
"zfill",
|
| 105 |
+
"isnumeric",
|
| 106 |
+
"isdecimal",
|
| 107 |
+
"array",
|
| 108 |
+
"asarray",
|
| 109 |
+
"compare_chararrays",
|
| 110 |
+
"chararray",
|
| 111 |
+
]
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/conftest.py
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Pytest configuration and fixtures for the Numpy test suite.
|
| 3 |
+
"""
|
| 4 |
+
import os
|
| 5 |
+
import sys
|
| 6 |
+
import tempfile
|
| 7 |
+
import warnings
|
| 8 |
+
from contextlib import contextmanager
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
|
| 11 |
+
import hypothesis
|
| 12 |
+
import pytest
|
| 13 |
+
|
| 14 |
+
import numpy
|
| 15 |
+
from numpy._core._multiarray_tests import get_fpu_mode
|
| 16 |
+
from numpy.testing._private.utils import NOGIL_BUILD
|
| 17 |
+
|
| 18 |
+
try:
|
| 19 |
+
from scipy_doctest.conftest import dt_config
|
| 20 |
+
HAVE_SCPDT = True
|
| 21 |
+
except ModuleNotFoundError:
|
| 22 |
+
HAVE_SCPDT = False
|
| 23 |
+
|
| 24 |
+
try:
|
| 25 |
+
import pytest_run_parallel # noqa: F401
|
| 26 |
+
PARALLEL_RUN_AVALIABLE = True
|
| 27 |
+
except ModuleNotFoundError:
|
| 28 |
+
PARALLEL_RUN_AVALIABLE = False
|
| 29 |
+
|
| 30 |
+
_old_fpu_mode = None
|
| 31 |
+
_collect_results = {}
|
| 32 |
+
|
| 33 |
+
# Use a known and persistent tmpdir for hypothesis' caches, which
|
| 34 |
+
# can be automatically cleared by the OS or user.
|
| 35 |
+
hypothesis.configuration.set_hypothesis_home_dir(
|
| 36 |
+
os.path.join(tempfile.gettempdir(), ".hypothesis")
|
| 37 |
+
)
|
| 38 |
+
|
| 39 |
+
# We register two custom profiles for Numpy - for details see
|
| 40 |
+
# https://hypothesis.readthedocs.io/en/latest/settings.html
|
| 41 |
+
# The first is designed for our own CI runs; the latter also
|
| 42 |
+
# forces determinism and is designed for use via np.test()
|
| 43 |
+
hypothesis.settings.register_profile(
|
| 44 |
+
name="numpy-profile", deadline=None, print_blob=True,
|
| 45 |
+
)
|
| 46 |
+
hypothesis.settings.register_profile(
|
| 47 |
+
name="np.test() profile",
|
| 48 |
+
deadline=None, print_blob=True, database=None, derandomize=True,
|
| 49 |
+
suppress_health_check=list(hypothesis.HealthCheck),
|
| 50 |
+
)
|
| 51 |
+
# Note that the default profile is chosen based on the presence
|
| 52 |
+
# of pytest.ini, but can be overridden by passing the
|
| 53 |
+
# --hypothesis-profile=NAME argument to pytest.
|
| 54 |
+
_pytest_ini = os.path.join(os.path.dirname(__file__), "..", "pytest.ini")
|
| 55 |
+
hypothesis.settings.load_profile(
|
| 56 |
+
"numpy-profile" if os.path.isfile(_pytest_ini) else "np.test() profile"
|
| 57 |
+
)
|
| 58 |
+
|
| 59 |
+
# The experimentalAPI is used in _umath_tests
|
| 60 |
+
os.environ["NUMPY_EXPERIMENTAL_DTYPE_API"] = "1"
|
| 61 |
+
|
| 62 |
+
def pytest_configure(config):
|
| 63 |
+
config.addinivalue_line("markers",
|
| 64 |
+
"valgrind_error: Tests that are known to error under valgrind.")
|
| 65 |
+
config.addinivalue_line("markers",
|
| 66 |
+
"leaks_references: Tests that are known to leak references.")
|
| 67 |
+
config.addinivalue_line("markers",
|
| 68 |
+
"slow: Tests that are very slow.")
|
| 69 |
+
config.addinivalue_line("markers",
|
| 70 |
+
"slow_pypy: Tests that are very slow on pypy.")
|
| 71 |
+
if not PARALLEL_RUN_AVALIABLE:
|
| 72 |
+
config.addinivalue_line("markers",
|
| 73 |
+
"parallel_threads(n): run the given test function in parallel "
|
| 74 |
+
"using `n` threads.",
|
| 75 |
+
)
|
| 76 |
+
config.addinivalue_line("markers",
|
| 77 |
+
"iterations(n): run the given test function `n` times in each thread",
|
| 78 |
+
)
|
| 79 |
+
config.addinivalue_line("markers",
|
| 80 |
+
"thread_unsafe: mark the test function as single-threaded",
|
| 81 |
+
)
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
def pytest_addoption(parser):
|
| 85 |
+
parser.addoption("--available-memory", action="store", default=None,
|
| 86 |
+
help=("Set amount of memory available for running the "
|
| 87 |
+
"test suite. This can result to tests requiring "
|
| 88 |
+
"especially large amounts of memory to be skipped. "
|
| 89 |
+
"Equivalent to setting environment variable "
|
| 90 |
+
"NPY_AVAILABLE_MEM. Default: determined"
|
| 91 |
+
"automatically."))
|
| 92 |
+
|
| 93 |
+
|
| 94 |
+
gil_enabled_at_start = True
|
| 95 |
+
if NOGIL_BUILD:
|
| 96 |
+
gil_enabled_at_start = sys._is_gil_enabled()
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
def pytest_sessionstart(session):
|
| 100 |
+
available_mem = session.config.getoption('available_memory')
|
| 101 |
+
if available_mem is not None:
|
| 102 |
+
os.environ['NPY_AVAILABLE_MEM'] = available_mem
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
def pytest_terminal_summary(terminalreporter, exitstatus, config):
|
| 106 |
+
if NOGIL_BUILD and not gil_enabled_at_start and sys._is_gil_enabled():
|
| 107 |
+
tr = terminalreporter
|
| 108 |
+
tr.ensure_newline()
|
| 109 |
+
tr.section("GIL re-enabled", sep="=", red=True, bold=True)
|
| 110 |
+
tr.line("The GIL was re-enabled at runtime during the tests.")
|
| 111 |
+
tr.line("This can happen with no test failures if the RuntimeWarning")
|
| 112 |
+
tr.line("raised by Python when this happens is filtered by a test.")
|
| 113 |
+
tr.line("")
|
| 114 |
+
tr.line("Please ensure all new C modules declare support for running")
|
| 115 |
+
tr.line("without the GIL. Any new tests that intentionally imports ")
|
| 116 |
+
tr.line("code that re-enables the GIL should do so in a subprocess.")
|
| 117 |
+
pytest.exit("GIL re-enabled during tests", returncode=1)
|
| 118 |
+
|
| 119 |
+
# FIXME when yield tests are gone.
|
| 120 |
+
@pytest.hookimpl(tryfirst=True)
|
| 121 |
+
def pytest_itemcollected(item):
|
| 122 |
+
"""
|
| 123 |
+
Check FPU precision mode was not changed during test collection.
|
| 124 |
+
|
| 125 |
+
The clumsy way we do it here is mainly necessary because numpy
|
| 126 |
+
still uses yield tests, which can execute code at test collection
|
| 127 |
+
time.
|
| 128 |
+
"""
|
| 129 |
+
global _old_fpu_mode
|
| 130 |
+
|
| 131 |
+
mode = get_fpu_mode()
|
| 132 |
+
|
| 133 |
+
if _old_fpu_mode is None:
|
| 134 |
+
_old_fpu_mode = mode
|
| 135 |
+
elif mode != _old_fpu_mode:
|
| 136 |
+
_collect_results[item] = (_old_fpu_mode, mode)
|
| 137 |
+
_old_fpu_mode = mode
|
| 138 |
+
|
| 139 |
+
# mark f2py tests as thread unsafe
|
| 140 |
+
if Path(item.fspath).parent == Path(__file__).parent / 'f2py' / 'tests':
|
| 141 |
+
item.add_marker(pytest.mark.thread_unsafe(
|
| 142 |
+
reason="f2py tests are thread-unsafe"))
|
| 143 |
+
|
| 144 |
+
|
| 145 |
+
@pytest.fixture(scope="function", autouse=True)
|
| 146 |
+
def check_fpu_mode(request):
|
| 147 |
+
"""
|
| 148 |
+
Check FPU precision mode was not changed during the test.
|
| 149 |
+
"""
|
| 150 |
+
old_mode = get_fpu_mode()
|
| 151 |
+
yield
|
| 152 |
+
new_mode = get_fpu_mode()
|
| 153 |
+
|
| 154 |
+
if old_mode != new_mode:
|
| 155 |
+
raise AssertionError(f"FPU precision mode changed from {old_mode:#x} to "
|
| 156 |
+
f"{new_mode:#x} during the test")
|
| 157 |
+
|
| 158 |
+
collect_result = _collect_results.get(request.node)
|
| 159 |
+
if collect_result is not None:
|
| 160 |
+
old_mode, new_mode = collect_result
|
| 161 |
+
raise AssertionError(f"FPU precision mode changed from {old_mode:#x} to "
|
| 162 |
+
f"{new_mode:#x} when collecting the test")
|
| 163 |
+
|
| 164 |
+
|
| 165 |
+
@pytest.fixture(autouse=True)
|
| 166 |
+
def add_np(doctest_namespace):
|
| 167 |
+
doctest_namespace['np'] = numpy
|
| 168 |
+
|
| 169 |
+
|
| 170 |
+
if HAVE_SCPDT:
|
| 171 |
+
|
| 172 |
+
@contextmanager
|
| 173 |
+
def warnings_errors_and_rng(test=None):
|
| 174 |
+
"""Filter out the wall of DeprecationWarnings.
|
| 175 |
+
"""
|
| 176 |
+
msgs = ["The numpy.linalg.linalg",
|
| 177 |
+
"The numpy.fft.helper",
|
| 178 |
+
"dep_util",
|
| 179 |
+
"pkg_resources",
|
| 180 |
+
"numpy.core.umath",
|
| 181 |
+
"msvccompiler",
|
| 182 |
+
"Deprecated call",
|
| 183 |
+
"numpy.core",
|
| 184 |
+
"Importing from numpy.matlib",
|
| 185 |
+
"This function is deprecated.", # random_integers
|
| 186 |
+
"Data type alias 'a'", # numpy.rec.fromfile
|
| 187 |
+
"Arrays of 2-dimensional vectors", # matlib.cross
|
| 188 |
+
"NumPy warning suppression and assertion utilities are deprecated."
|
| 189 |
+
]
|
| 190 |
+
msg = "|".join(msgs)
|
| 191 |
+
|
| 192 |
+
msgs_r = [
|
| 193 |
+
"invalid value encountered",
|
| 194 |
+
"divide by zero encountered"
|
| 195 |
+
]
|
| 196 |
+
msg_r = "|".join(msgs_r)
|
| 197 |
+
|
| 198 |
+
with warnings.catch_warnings():
|
| 199 |
+
warnings.filterwarnings(
|
| 200 |
+
'ignore', category=DeprecationWarning, message=msg
|
| 201 |
+
)
|
| 202 |
+
warnings.filterwarnings(
|
| 203 |
+
'ignore', category=RuntimeWarning, message=msg_r
|
| 204 |
+
)
|
| 205 |
+
yield
|
| 206 |
+
|
| 207 |
+
# find and check doctests under this context manager
|
| 208 |
+
dt_config.user_context_mgr = warnings_errors_and_rng
|
| 209 |
+
|
| 210 |
+
# numpy specific tweaks from refguide-check
|
| 211 |
+
dt_config.rndm_markers.add('#uninitialized')
|
| 212 |
+
dt_config.rndm_markers.add('# uninitialized')
|
| 213 |
+
|
| 214 |
+
# make the checker pick on mismatched dtypes
|
| 215 |
+
dt_config.strict_check = True
|
| 216 |
+
|
| 217 |
+
import doctest
|
| 218 |
+
dt_config.optionflags = doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS
|
| 219 |
+
|
| 220 |
+
# recognize the StringDType repr
|
| 221 |
+
dt_config.check_namespace['StringDType'] = numpy.dtypes.StringDType
|
| 222 |
+
|
| 223 |
+
# temporary skips
|
| 224 |
+
dt_config.skiplist = {
|
| 225 |
+
'numpy.savez', # unclosed file
|
| 226 |
+
'numpy.matlib.savez',
|
| 227 |
+
'numpy.__array_namespace_info__',
|
| 228 |
+
'numpy.matlib.__array_namespace_info__',
|
| 229 |
+
}
|
| 230 |
+
|
| 231 |
+
# xfail problematic tutorials
|
| 232 |
+
dt_config.pytest_extra_xfail = {
|
| 233 |
+
'how-to-verify-bug.rst': '',
|
| 234 |
+
'c-info.ufunc-tutorial.rst': '',
|
| 235 |
+
'basics.interoperability.rst': 'needs pandas',
|
| 236 |
+
'basics.dispatch.rst': 'errors out in /testing/overrides.py',
|
| 237 |
+
'basics.subclassing.rst': '.. testcode:: admonitions not understood',
|
| 238 |
+
'misc.rst': 'manipulates warnings',
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
# ignores are for things fail doctest collection (optionals etc)
|
| 242 |
+
dt_config.pytest_extra_ignore = [
|
| 243 |
+
'numpy/distutils',
|
| 244 |
+
'numpy/_core/cversions.py',
|
| 245 |
+
'numpy/_pyinstaller',
|
| 246 |
+
'numpy/random/_examples',
|
| 247 |
+
'numpy/f2py/_backends/_distutils.py',
|
| 248 |
+
]
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/__init__.py
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
The `numpy.core` submodule exists solely for backward compatibility
|
| 3 |
+
purposes. The original `core` was renamed to `_core` and made private.
|
| 4 |
+
`numpy.core` will be removed in the future.
|
| 5 |
+
"""
|
| 6 |
+
from numpy import _core
|
| 7 |
+
|
| 8 |
+
from ._utils import _raise_warning
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
# We used to use `np.core._ufunc_reconstruct` to unpickle.
|
| 12 |
+
# This is unnecessary, but old pickles saved before 1.20 will be using it,
|
| 13 |
+
# and there is no reason to break loading them.
|
| 14 |
+
def _ufunc_reconstruct(module, name):
|
| 15 |
+
# The `fromlist` kwarg is required to ensure that `mod` points to the
|
| 16 |
+
# inner-most module rather than the parent package when module name is
|
| 17 |
+
# nested. This makes it possible to pickle non-toplevel ufuncs such as
|
| 18 |
+
# scipy.special.expit for instance.
|
| 19 |
+
mod = __import__(module, fromlist=[name])
|
| 20 |
+
return getattr(mod, name)
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
# force lazy-loading of submodules to ensure a warning is printed
|
| 24 |
+
|
| 25 |
+
__all__ = ["arrayprint", "defchararray", "_dtype_ctypes", "_dtype", # noqa: F822
|
| 26 |
+
"einsumfunc", "fromnumeric", "function_base", "getlimits",
|
| 27 |
+
"_internal", "multiarray", "_multiarray_umath", "numeric",
|
| 28 |
+
"numerictypes", "overrides", "records", "shape_base", "umath"]
|
| 29 |
+
|
| 30 |
+
def __getattr__(attr_name):
|
| 31 |
+
attr = getattr(_core, attr_name)
|
| 32 |
+
_raise_warning(attr_name)
|
| 33 |
+
return attr
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/__init__.pyi
ADDED
|
File without changes
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_dtype.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import _dtype
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(_dtype, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core._dtype' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "_dtype")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_dtype.pyi
ADDED
|
File without changes
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_dtype_ctypes.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import _dtype_ctypes
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(_dtype_ctypes, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core._dtype_ctypes' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "_dtype_ctypes")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_dtype_ctypes.pyi
ADDED
|
File without changes
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_internal.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from numpy._core import _internal
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
# Build a new array from the information in a pickle.
|
| 5 |
+
# Note that the name numpy.core._internal._reconstruct is embedded in
|
| 6 |
+
# pickles of ndarrays made with NumPy before release 1.0
|
| 7 |
+
# so don't remove the name here, or you'll
|
| 8 |
+
# break backward compatibility.
|
| 9 |
+
def _reconstruct(subtype, shape, dtype):
|
| 10 |
+
from numpy import ndarray
|
| 11 |
+
return ndarray.__new__(subtype, shape, dtype)
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
# Pybind11 (in versions <= 2.11.1) imports _dtype_from_pep3118 from the
|
| 15 |
+
# _internal submodule, therefore it must be importable without a warning.
|
| 16 |
+
_dtype_from_pep3118 = _internal._dtype_from_pep3118
|
| 17 |
+
|
| 18 |
+
def __getattr__(attr_name):
|
| 19 |
+
from numpy._core import _internal
|
| 20 |
+
|
| 21 |
+
from ._utils import _raise_warning
|
| 22 |
+
ret = getattr(_internal, attr_name, None)
|
| 23 |
+
if ret is None:
|
| 24 |
+
raise AttributeError(
|
| 25 |
+
f"module 'numpy.core._internal' has no attribute {attr_name}")
|
| 26 |
+
_raise_warning(attr_name, "_internal")
|
| 27 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_multiarray_umath.py
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from numpy import ufunc
|
| 2 |
+
from numpy._core import _multiarray_umath
|
| 3 |
+
|
| 4 |
+
for item in _multiarray_umath.__dir__():
|
| 5 |
+
# ufuncs appear in pickles with a path in numpy.core._multiarray_umath
|
| 6 |
+
# and so must import from this namespace without warning or error
|
| 7 |
+
attr = getattr(_multiarray_umath, item)
|
| 8 |
+
if isinstance(attr, ufunc):
|
| 9 |
+
globals()[item] = attr
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
def __getattr__(attr_name):
|
| 13 |
+
from numpy._core import _multiarray_umath
|
| 14 |
+
|
| 15 |
+
from ._utils import _raise_warning
|
| 16 |
+
|
| 17 |
+
if attr_name in {"_ARRAY_API", "_UFUNC_API"}:
|
| 18 |
+
import sys
|
| 19 |
+
import textwrap
|
| 20 |
+
import traceback
|
| 21 |
+
|
| 22 |
+
from numpy.version import short_version
|
| 23 |
+
|
| 24 |
+
msg = textwrap.dedent(f"""
|
| 25 |
+
A module that was compiled using NumPy 1.x cannot be run in
|
| 26 |
+
NumPy {short_version} as it may crash. To support both 1.x and 2.x
|
| 27 |
+
versions of NumPy, modules must be compiled with NumPy 2.0.
|
| 28 |
+
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.
|
| 29 |
+
|
| 30 |
+
If you are a user of the module, the easiest solution will be to
|
| 31 |
+
downgrade to 'numpy<2' or try to upgrade the affected module.
|
| 32 |
+
We expect that some modules will need time to support NumPy 2.
|
| 33 |
+
|
| 34 |
+
""")
|
| 35 |
+
tb_msg = "Traceback (most recent call last):"
|
| 36 |
+
for line in traceback.format_stack()[:-1]:
|
| 37 |
+
if "frozen importlib" in line:
|
| 38 |
+
continue
|
| 39 |
+
tb_msg += line
|
| 40 |
+
|
| 41 |
+
# Also print the message (with traceback). This is because old versions
|
| 42 |
+
# of NumPy unfortunately set up the import to replace (and hide) the
|
| 43 |
+
# error. The traceback shouldn't be needed, but e.g. pytest plugins
|
| 44 |
+
# seem to swallow it and we should be failing anyway...
|
| 45 |
+
sys.stderr.write(msg + tb_msg)
|
| 46 |
+
raise ImportError(msg)
|
| 47 |
+
|
| 48 |
+
ret = getattr(_multiarray_umath, attr_name, None)
|
| 49 |
+
if ret is None:
|
| 50 |
+
raise AttributeError(
|
| 51 |
+
"module 'numpy.core._multiarray_umath' has no attribute "
|
| 52 |
+
f"{attr_name}")
|
| 53 |
+
_raise_warning(attr_name, "_multiarray_umath")
|
| 54 |
+
return ret
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
del _multiarray_umath, ufunc
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/_utils.py
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import warnings
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
def _raise_warning(attr: str, submodule: str | None = None) -> None:
|
| 5 |
+
new_module = "numpy._core"
|
| 6 |
+
old_module = "numpy.core"
|
| 7 |
+
if submodule is not None:
|
| 8 |
+
new_module = f"{new_module}.{submodule}"
|
| 9 |
+
old_module = f"{old_module}.{submodule}"
|
| 10 |
+
warnings.warn(
|
| 11 |
+
f"{old_module} is deprecated and has been renamed to {new_module}. "
|
| 12 |
+
"The numpy._core namespace contains private NumPy internals and its "
|
| 13 |
+
"use is discouraged, as NumPy internals can change without warning in "
|
| 14 |
+
"any release. In practice, most real-world usage of numpy.core is to "
|
| 15 |
+
"access functionality in the public NumPy API. If that is the case, "
|
| 16 |
+
"use the public NumPy API. If not, you are using NumPy internals. "
|
| 17 |
+
"If you would still like to access an internal attribute, "
|
| 18 |
+
f"use {new_module}.{attr}.",
|
| 19 |
+
DeprecationWarning,
|
| 20 |
+
stacklevel=3
|
| 21 |
+
)
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/arrayprint.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import arrayprint
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(arrayprint, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core.arrayprint' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "arrayprint")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/defchararray.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import defchararray
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(defchararray, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core.defchararray' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "defchararray")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/einsumfunc.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import einsumfunc
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(einsumfunc, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core.einsumfunc' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "einsumfunc")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/fromnumeric.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import fromnumeric
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(fromnumeric, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core.fromnumeric' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "fromnumeric")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/function_base.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import function_base
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(function_base, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core.function_base' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "function_base")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/getlimits.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import getlimits
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(getlimits, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core.getlimits' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "getlimits")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/multiarray.py
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from numpy._core import multiarray
|
| 2 |
+
|
| 3 |
+
# these must import without warning or error from numpy.core.multiarray to
|
| 4 |
+
# support old pickle files
|
| 5 |
+
for item in ["_reconstruct", "scalar"]:
|
| 6 |
+
globals()[item] = getattr(multiarray, item)
|
| 7 |
+
|
| 8 |
+
# Pybind11 (in versions <= 2.11.1) imports _ARRAY_API from the multiarray
|
| 9 |
+
# submodule as a part of NumPy initialization, therefore it must be importable
|
| 10 |
+
# without a warning.
|
| 11 |
+
_ARRAY_API = multiarray._ARRAY_API
|
| 12 |
+
|
| 13 |
+
def __getattr__(attr_name):
|
| 14 |
+
from numpy._core import multiarray
|
| 15 |
+
|
| 16 |
+
from ._utils import _raise_warning
|
| 17 |
+
ret = getattr(multiarray, attr_name, None)
|
| 18 |
+
if ret is None:
|
| 19 |
+
raise AttributeError(
|
| 20 |
+
f"module 'numpy.core.multiarray' has no attribute {attr_name}")
|
| 21 |
+
_raise_warning(attr_name, "multiarray")
|
| 22 |
+
return ret
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
del multiarray
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/numeric.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import numeric
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
|
| 6 |
+
sentinel = object()
|
| 7 |
+
ret = getattr(numeric, attr_name, sentinel)
|
| 8 |
+
if ret is sentinel:
|
| 9 |
+
raise AttributeError(
|
| 10 |
+
f"module 'numpy.core.numeric' has no attribute {attr_name}")
|
| 11 |
+
_raise_warning(attr_name, "numeric")
|
| 12 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/numerictypes.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import numerictypes
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(numerictypes, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core.numerictypes' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "numerictypes")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/overrides.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import overrides
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(overrides, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core.overrides' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "overrides")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/overrides.pyi
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# NOTE: At runtime, this submodule dynamically re-exports any `numpy._core.overrides`
|
| 2 |
+
# member, and issues a `DeprecationWarning` when accessed. But since there is no
|
| 3 |
+
# `__dir__` or `__all__` present, these annotations would be unverifiable. Because
|
| 4 |
+
# this module is also deprecated in favor of `numpy._core`, and therefore not part of
|
| 5 |
+
# the public API, we omit the "re-exports", which in practice would require literal
|
| 6 |
+
# duplication of the stubs in order for the `@deprecated` decorator to be understood
|
| 7 |
+
# by type-checkers.
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/records.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import records
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(records, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core.records' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "records")
|
| 10 |
+
return ret
|
outputs/audit_venv/lib/python3.11/site-packages/numpy/core/shape_base.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
def __getattr__(attr_name):
|
| 2 |
+
from numpy._core import shape_base
|
| 3 |
+
|
| 4 |
+
from ._utils import _raise_warning
|
| 5 |
+
ret = getattr(shape_base, attr_name, None)
|
| 6 |
+
if ret is None:
|
| 7 |
+
raise AttributeError(
|
| 8 |
+
f"module 'numpy.core.shape_base' has no attribute {attr_name}")
|
| 9 |
+
_raise_warning(attr_name, "shape_base")
|
| 10 |
+
return ret
|