aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail')
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arithmetic.pyi121
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_constructors.pyi33
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_like.pyi16
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_pad.pyi6
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arrayprint.pyi14
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arrayterator.pyi14
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/bitwise_ops.pyi20
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/char.pyi66
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/chararray.pyi62
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/comparisons.pyi27
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/constants.pyi7
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/datasource.pyi15
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/dtype.pyi20
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/einsumfunc.pyi12
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/false_positives.pyi11
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/flatiter.pyi25
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/fromnumeric.pyi161
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/histograms.pyi12
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/index_tricks.pyi14
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_function_base.pyi53
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_polynomial.pyi29
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_utils.pyi13
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_version.pyi6
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/linalg.pyi48
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/memmap.pyi5
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/modules.pyi18
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/multiarray.pyi55
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ndarray.pyi11
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ndarray_misc.pyi43
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/nditer.pyi8
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/nested_sequence.pyi17
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/npyio.pyi27
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/numerictypes.pyi11
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/random.pyi61
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/rec.pyi17
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/scalars.pyi92
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/shape_base.pyi8
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/stride_tricks.pyi9
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/testing.pyi28
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/twodim_base.pyi37
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/type_check.pyi13
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufunc_config.pyi21
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufunclike.pyi21
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufuncs.pyi41
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/warnings_and_errors.pyi5
45 files changed, 1353 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arithmetic.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arithmetic.pyi
new file mode 100644
index 00000000..3bbc101c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arithmetic.pyi
@@ -0,0 +1,121 @@
+from typing import Any
+import numpy as np
+
+b_ = np.bool_()
+dt = np.datetime64(0, "D")
+td = np.timedelta64(0, "D")
+
+AR_b: np.ndarray[Any, np.dtype[np.bool_]]
+AR_u: np.ndarray[Any, np.dtype[np.uint32]]
+AR_i: np.ndarray[Any, np.dtype[np.int64]]
+AR_f: np.ndarray[Any, np.dtype[np.float64]]
+AR_c: np.ndarray[Any, np.dtype[np.complex128]]
+AR_m: np.ndarray[Any, np.dtype[np.timedelta64]]
+AR_M: np.ndarray[Any, np.dtype[np.datetime64]]
+
+ANY: Any
+
+AR_LIKE_b: list[bool]
+AR_LIKE_u: list[np.uint32]
+AR_LIKE_i: list[int]
+AR_LIKE_f: list[float]
+AR_LIKE_c: list[complex]
+AR_LIKE_m: list[np.timedelta64]
+AR_LIKE_M: list[np.datetime64]
+
+# Array subtraction
+
+# NOTE: mypys `NoReturn` errors are, unfortunately, not that great
+_1 = AR_b - AR_LIKE_b # E: Need type annotation
+_2 = AR_LIKE_b - AR_b # E: Need type annotation
+AR_i - bytes() # E: No overload variant
+
+AR_f - AR_LIKE_m # E: Unsupported operand types
+AR_f - AR_LIKE_M # E: Unsupported operand types
+AR_c - AR_LIKE_m # E: Unsupported operand types
+AR_c - AR_LIKE_M # E: Unsupported operand types
+
+AR_m - AR_LIKE_f # E: Unsupported operand types
+AR_M - AR_LIKE_f # E: Unsupported operand types
+AR_m - AR_LIKE_c # E: Unsupported operand types
+AR_M - AR_LIKE_c # E: Unsupported operand types
+
+AR_m - AR_LIKE_M # E: Unsupported operand types
+AR_LIKE_m - AR_M # E: Unsupported operand types
+
+# array floor division
+
+AR_M // AR_LIKE_b # E: Unsupported operand types
+AR_M // AR_LIKE_u # E: Unsupported operand types
+AR_M // AR_LIKE_i # E: Unsupported operand types
+AR_M // AR_LIKE_f # E: Unsupported operand types
+AR_M // AR_LIKE_c # E: Unsupported operand types
+AR_M // AR_LIKE_m # E: Unsupported operand types
+AR_M // AR_LIKE_M # E: Unsupported operand types
+
+AR_b // AR_LIKE_M # E: Unsupported operand types
+AR_u // AR_LIKE_M # E: Unsupported operand types
+AR_i // AR_LIKE_M # E: Unsupported operand types
+AR_f // AR_LIKE_M # E: Unsupported operand types
+AR_c // AR_LIKE_M # E: Unsupported operand types
+AR_m // AR_LIKE_M # E: Unsupported operand types
+AR_M // AR_LIKE_M # E: Unsupported operand types
+
+_3 = AR_m // AR_LIKE_b # E: Need type annotation
+AR_m // AR_LIKE_c # E: Unsupported operand types
+
+AR_b // AR_LIKE_m # E: Unsupported operand types
+AR_u // AR_LIKE_m # E: Unsupported operand types
+AR_i // AR_LIKE_m # E: Unsupported operand types
+AR_f // AR_LIKE_m # E: Unsupported operand types
+AR_c // AR_LIKE_m # E: Unsupported operand types
+
+# Array multiplication
+
+AR_b *= AR_LIKE_u # E: incompatible type
+AR_b *= AR_LIKE_i # E: incompatible type
+AR_b *= AR_LIKE_f # E: incompatible type
+AR_b *= AR_LIKE_c # E: incompatible type
+AR_b *= AR_LIKE_m # E: incompatible type
+
+AR_u *= AR_LIKE_i # E: incompatible type
+AR_u *= AR_LIKE_f # E: incompatible type
+AR_u *= AR_LIKE_c # E: incompatible type
+AR_u *= AR_LIKE_m # E: incompatible type
+
+AR_i *= AR_LIKE_f # E: incompatible type
+AR_i *= AR_LIKE_c # E: incompatible type
+AR_i *= AR_LIKE_m # E: incompatible type
+
+AR_f *= AR_LIKE_c # E: incompatible type
+AR_f *= AR_LIKE_m # E: incompatible type
+
+# Array power
+
+AR_b **= AR_LIKE_b # E: Invalid self argument
+AR_b **= AR_LIKE_u # E: Invalid self argument
+AR_b **= AR_LIKE_i # E: Invalid self argument
+AR_b **= AR_LIKE_f # E: Invalid self argument
+AR_b **= AR_LIKE_c # E: Invalid self argument
+
+AR_u **= AR_LIKE_i # E: incompatible type
+AR_u **= AR_LIKE_f # E: incompatible type
+AR_u **= AR_LIKE_c # E: incompatible type
+
+AR_i **= AR_LIKE_f # E: incompatible type
+AR_i **= AR_LIKE_c # E: incompatible type
+
+AR_f **= AR_LIKE_c # E: incompatible type
+
+# Scalars
+
+b_ - b_ # E: No overload variant
+
+dt + dt # E: Unsupported operand types
+td - dt # E: Unsupported operand types
+td % 1 # E: Unsupported operand types
+td / dt # E: No overload
+td % dt # E: Unsupported operand types
+
+-b_ # E: Unsupported operand type
++b_ # E: Unsupported operand type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_constructors.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_constructors.pyi
new file mode 100644
index 00000000..27889463
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_constructors.pyi
@@ -0,0 +1,33 @@
+import numpy as np
+
+a: np.ndarray
+generator = (i for i in range(10))
+
+np.require(a, requirements=1) # E: No overload variant
+np.require(a, requirements="TEST") # E: incompatible type
+
+np.zeros("test") # E: incompatible type
+np.zeros() # E: require at least one argument
+
+np.ones("test") # E: incompatible type
+np.ones() # E: require at least one argument
+
+np.array(0, float, True) # E: No overload variant
+
+np.linspace(None, 'bob') # E: No overload variant
+np.linspace(0, 2, num=10.0) # E: No overload variant
+np.linspace(0, 2, endpoint='True') # E: No overload variant
+np.linspace(0, 2, retstep=b'False') # E: No overload variant
+np.linspace(0, 2, dtype=0) # E: No overload variant
+np.linspace(0, 2, axis=None) # E: No overload variant
+
+np.logspace(None, 'bob') # E: No overload variant
+np.logspace(0, 2, base=None) # E: No overload variant
+
+np.geomspace(None, 'bob') # E: No overload variant
+
+np.stack(generator) # E: No overload variant
+np.hstack({1, 2}) # E: No overload variant
+np.vstack(1) # E: No overload variant
+
+np.array([1], like=1) # E: No overload variant
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_like.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_like.pyi
new file mode 100644
index 00000000..133b5fd4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_like.pyi
@@ -0,0 +1,16 @@
+import numpy as np
+from numpy._typing import ArrayLike
+
+
+class A:
+ pass
+
+
+x1: ArrayLike = (i for i in range(10)) # E: Incompatible types in assignment
+x2: ArrayLike = A() # E: Incompatible types in assignment
+x3: ArrayLike = {1: "foo", 2: "bar"} # E: Incompatible types in assignment
+
+scalar = np.int64(1)
+scalar.__array__(dtype=np.float64) # E: No overload variant
+array = np.array([1])
+array.__array__(dtype=np.float64) # E: No overload variant
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_pad.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_pad.pyi
new file mode 100644
index 00000000..2be51a87
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/array_pad.pyi
@@ -0,0 +1,6 @@
+import numpy as np
+import numpy.typing as npt
+
+AR_i8: npt.NDArray[np.int64]
+
+np.pad(AR_i8, 2, mode="bob") # E: No overload variant
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arrayprint.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arrayprint.pyi
new file mode 100644
index 00000000..71b921e3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arrayprint.pyi
@@ -0,0 +1,14 @@
+from collections.abc import Callable
+from typing import Any
+import numpy as np
+
+AR: np.ndarray
+func1: Callable[[Any], str]
+func2: Callable[[np.integer[Any]], str]
+
+np.array2string(AR, style=None) # E: Unexpected keyword argument
+np.array2string(AR, legacy="1.14") # E: incompatible type
+np.array2string(AR, sign="*") # E: incompatible type
+np.array2string(AR, floatmode="default") # E: incompatible type
+np.array2string(AR, formatter={"A": func1}) # E: incompatible type
+np.array2string(AR, formatter={"float": func2}) # E: Incompatible types
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arrayterator.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arrayterator.pyi
new file mode 100644
index 00000000..c50fb2ec
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/arrayterator.pyi
@@ -0,0 +1,14 @@
+from typing import Any
+import numpy as np
+
+AR_i8: np.ndarray[Any, np.dtype[np.int64]]
+ar_iter = np.lib.Arrayterator(AR_i8)
+
+np.lib.Arrayterator(np.int64()) # E: incompatible type
+ar_iter.shape = (10, 5) # E: is read-only
+ar_iter[None] # E: Invalid index type
+ar_iter[None, 1] # E: Invalid index type
+ar_iter[np.intp()] # E: Invalid index type
+ar_iter[np.intp(), ...] # E: Invalid index type
+ar_iter[AR_i8] # E: Invalid index type
+ar_iter[AR_i8, :] # E: Invalid index type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/bitwise_ops.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/bitwise_ops.pyi
new file mode 100644
index 00000000..ee909000
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/bitwise_ops.pyi
@@ -0,0 +1,20 @@
+import numpy as np
+
+i8 = np.int64()
+i4 = np.int32()
+u8 = np.uint64()
+b_ = np.bool_()
+i = int()
+
+f8 = np.float64()
+
+b_ >> f8 # E: No overload variant
+i8 << f8 # E: No overload variant
+i | f8 # E: Unsupported operand types
+i8 ^ f8 # E: No overload variant
+u8 & f8 # E: No overload variant
+~f8 # E: Unsupported operand type
+
+# mypys' error message for `NoReturn` is unfortunately pretty bad
+# TODO: Re-enable this once we add support for numerical precision for `number`s
+# a = u8 | 0 # E: Need type annotation
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/char.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/char.pyi
new file mode 100644
index 00000000..320f05df
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/char.pyi
@@ -0,0 +1,66 @@
+import numpy as np
+import numpy.typing as npt
+
+AR_U: npt.NDArray[np.str_]
+AR_S: npt.NDArray[np.bytes_]
+
+np.char.equal(AR_U, AR_S) # E: incompatible type
+
+np.char.not_equal(AR_U, AR_S) # E: incompatible type
+
+np.char.greater_equal(AR_U, AR_S) # E: incompatible type
+
+np.char.less_equal(AR_U, AR_S) # E: incompatible type
+
+np.char.greater(AR_U, AR_S) # E: incompatible type
+
+np.char.less(AR_U, AR_S) # E: incompatible type
+
+np.char.encode(AR_S) # E: incompatible type
+np.char.decode(AR_U) # E: incompatible type
+
+np.char.join(AR_U, b"_") # E: incompatible type
+np.char.join(AR_S, "_") # E: incompatible type
+
+np.char.ljust(AR_U, 5, fillchar=b"a") # E: incompatible type
+np.char.ljust(AR_S, 5, fillchar="a") # E: incompatible type
+np.char.rjust(AR_U, 5, fillchar=b"a") # E: incompatible type
+np.char.rjust(AR_S, 5, fillchar="a") # E: incompatible type
+
+np.char.lstrip(AR_U, chars=b"a") # E: incompatible type
+np.char.lstrip(AR_S, chars="a") # E: incompatible type
+np.char.strip(AR_U, chars=b"a") # E: incompatible type
+np.char.strip(AR_S, chars="a") # E: incompatible type
+np.char.rstrip(AR_U, chars=b"a") # E: incompatible type
+np.char.rstrip(AR_S, chars="a") # E: incompatible type
+
+np.char.partition(AR_U, b"a") # E: incompatible type
+np.char.partition(AR_S, "a") # E: incompatible type
+np.char.rpartition(AR_U, b"a") # E: incompatible type
+np.char.rpartition(AR_S, "a") # E: incompatible type
+
+np.char.replace(AR_U, b"_", b"-") # E: incompatible type
+np.char.replace(AR_S, "_", "-") # E: incompatible type
+
+np.char.split(AR_U, b"_") # E: incompatible type
+np.char.split(AR_S, "_") # E: incompatible type
+np.char.rsplit(AR_U, b"_") # E: incompatible type
+np.char.rsplit(AR_S, "_") # E: incompatible type
+
+np.char.count(AR_U, b"a", start=[1, 2, 3]) # E: incompatible type
+np.char.count(AR_S, "a", end=9) # E: incompatible type
+
+np.char.endswith(AR_U, b"a", start=[1, 2, 3]) # E: incompatible type
+np.char.endswith(AR_S, "a", end=9) # E: incompatible type
+np.char.startswith(AR_U, b"a", start=[1, 2, 3]) # E: incompatible type
+np.char.startswith(AR_S, "a", end=9) # E: incompatible type
+
+np.char.find(AR_U, b"a", start=[1, 2, 3]) # E: incompatible type
+np.char.find(AR_S, "a", end=9) # E: incompatible type
+np.char.rfind(AR_U, b"a", start=[1, 2, 3]) # E: incompatible type
+np.char.rfind(AR_S, "a", end=9) # E: incompatible type
+
+np.char.index(AR_U, b"a", start=[1, 2, 3]) # E: incompatible type
+np.char.index(AR_S, "a", end=9) # E: incompatible type
+np.char.rindex(AR_U, b"a", start=[1, 2, 3]) # E: incompatible type
+np.char.rindex(AR_S, "a", end=9) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/chararray.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/chararray.pyi
new file mode 100644
index 00000000..ebc182ec
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/chararray.pyi
@@ -0,0 +1,62 @@
+import numpy as np
+from typing import Any
+
+AR_U: np.chararray[Any, np.dtype[np.str_]]
+AR_S: np.chararray[Any, np.dtype[np.bytes_]]
+
+AR_S.encode() # E: Invalid self argument
+AR_U.decode() # E: Invalid self argument
+
+AR_U.join(b"_") # E: incompatible type
+AR_S.join("_") # E: incompatible type
+
+AR_U.ljust(5, fillchar=b"a") # E: incompatible type
+AR_S.ljust(5, fillchar="a") # E: incompatible type
+AR_U.rjust(5, fillchar=b"a") # E: incompatible type
+AR_S.rjust(5, fillchar="a") # E: incompatible type
+
+AR_U.lstrip(chars=b"a") # E: incompatible type
+AR_S.lstrip(chars="a") # E: incompatible type
+AR_U.strip(chars=b"a") # E: incompatible type
+AR_S.strip(chars="a") # E: incompatible type
+AR_U.rstrip(chars=b"a") # E: incompatible type
+AR_S.rstrip(chars="a") # E: incompatible type
+
+AR_U.partition(b"a") # E: incompatible type
+AR_S.partition("a") # E: incompatible type
+AR_U.rpartition(b"a") # E: incompatible type
+AR_S.rpartition("a") # E: incompatible type
+
+AR_U.replace(b"_", b"-") # E: incompatible type
+AR_S.replace("_", "-") # E: incompatible type
+
+AR_U.split(b"_") # E: incompatible type
+AR_S.split("_") # E: incompatible type
+AR_S.split(1) # E: incompatible type
+AR_U.rsplit(b"_") # E: incompatible type
+AR_S.rsplit("_") # E: incompatible type
+
+AR_U.count(b"a", start=[1, 2, 3]) # E: incompatible type
+AR_S.count("a", end=9) # E: incompatible type
+
+AR_U.endswith(b"a", start=[1, 2, 3]) # E: incompatible type
+AR_S.endswith("a", end=9) # E: incompatible type
+AR_U.startswith(b"a", start=[1, 2, 3]) # E: incompatible type
+AR_S.startswith("a", end=9) # E: incompatible type
+
+AR_U.find(b"a", start=[1, 2, 3]) # E: incompatible type
+AR_S.find("a", end=9) # E: incompatible type
+AR_U.rfind(b"a", start=[1, 2, 3]) # E: incompatible type
+AR_S.rfind("a", end=9) # E: incompatible type
+
+AR_U.index(b"a", start=[1, 2, 3]) # E: incompatible type
+AR_S.index("a", end=9) # E: incompatible type
+AR_U.rindex(b"a", start=[1, 2, 3]) # E: incompatible type
+AR_S.rindex("a", end=9) # E: incompatible type
+
+AR_U == AR_S # E: Unsupported operand types
+AR_U != AR_S # E: Unsupported operand types
+AR_U >= AR_S # E: Unsupported operand types
+AR_U <= AR_S # E: Unsupported operand types
+AR_U > AR_S # E: Unsupported operand types
+AR_U < AR_S # E: Unsupported operand types
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/comparisons.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/comparisons.pyi
new file mode 100644
index 00000000..febd0a18
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/comparisons.pyi
@@ -0,0 +1,27 @@
+from typing import Any
+import numpy as np
+
+AR_i: np.ndarray[Any, np.dtype[np.int64]]
+AR_f: np.ndarray[Any, np.dtype[np.float64]]
+AR_c: np.ndarray[Any, np.dtype[np.complex128]]
+AR_m: np.ndarray[Any, np.dtype[np.timedelta64]]
+AR_M: np.ndarray[Any, np.dtype[np.datetime64]]
+
+AR_f > AR_m # E: Unsupported operand types
+AR_c > AR_m # E: Unsupported operand types
+
+AR_m > AR_f # E: Unsupported operand types
+AR_m > AR_c # E: Unsupported operand types
+
+AR_i > AR_M # E: Unsupported operand types
+AR_f > AR_M # E: Unsupported operand types
+AR_m > AR_M # E: Unsupported operand types
+
+AR_M > AR_i # E: Unsupported operand types
+AR_M > AR_f # E: Unsupported operand types
+AR_M > AR_m # E: Unsupported operand types
+
+AR_i > str() # E: No overload variant
+AR_i > bytes() # E: No overload variant
+str() > AR_M # E: Unsupported operand types
+bytes() > AR_M # E: Unsupported operand types
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/constants.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/constants.pyi
new file mode 100644
index 00000000..324cbe9f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/constants.pyi
@@ -0,0 +1,7 @@
+import numpy as np
+
+np.Inf = np.Inf # E: Cannot assign to final
+np.ALLOW_THREADS = np.ALLOW_THREADS # E: Cannot assign to final
+np.little_endian = np.little_endian # E: Cannot assign to final
+np.UFUNC_PYVALS_NAME = "bob" # E: Incompatible types
+np.CLIP = 2 # E: Incompatible types
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/datasource.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/datasource.pyi
new file mode 100644
index 00000000..345277d4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/datasource.pyi
@@ -0,0 +1,15 @@
+from pathlib import Path
+import numpy as np
+
+path: Path
+d1: np.DataSource
+
+d1.abspath(path) # E: incompatible type
+d1.abspath(b"...") # E: incompatible type
+
+d1.exists(path) # E: incompatible type
+d1.exists(b"...") # E: incompatible type
+
+d1.open(path, "r") # E: incompatible type
+d1.open(b"...", encoding="utf8") # E: incompatible type
+d1.open(None, newline="/n") # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/dtype.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/dtype.pyi
new file mode 100644
index 00000000..0f3810f3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/dtype.pyi
@@ -0,0 +1,20 @@
+import numpy as np
+
+
+class Test1:
+ not_dtype = np.dtype(float)
+
+
+class Test2:
+ dtype = float
+
+
+np.dtype(Test1()) # E: No overload variant of "dtype" matches
+np.dtype(Test2()) # E: incompatible type
+
+np.dtype( # E: No overload variant of "dtype" matches
+ {
+ "field1": (float, 1),
+ "field2": (int, 3),
+ }
+)
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/einsumfunc.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/einsumfunc.pyi
new file mode 100644
index 00000000..2d1f3741
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/einsumfunc.pyi
@@ -0,0 +1,12 @@
+from typing import Any
+import numpy as np
+
+AR_i: np.ndarray[Any, np.dtype[np.int64]]
+AR_f: np.ndarray[Any, np.dtype[np.float64]]
+AR_m: np.ndarray[Any, np.dtype[np.timedelta64]]
+AR_U: np.ndarray[Any, np.dtype[np.str_]]
+
+np.einsum("i,i->i", AR_i, AR_m) # E: incompatible type
+np.einsum("i,i->i", AR_f, AR_f, dtype=np.int32) # E: incompatible type
+np.einsum("i,i->i", AR_i, AR_i, out=AR_U) # E: Value of type variable "_ArrayType" of "einsum" cannot be
+np.einsum("i,i->i", AR_i, AR_i, out=AR_U, casting="unsafe") # E: No overload variant
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/false_positives.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/false_positives.pyi
new file mode 100644
index 00000000..7e792306
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/false_positives.pyi
@@ -0,0 +1,11 @@
+import numpy as np
+import numpy.typing as npt
+
+AR_f8: npt.NDArray[np.float64]
+
+# NOTE: Mypy bug presumably due to the special-casing of heterogeneous tuples;
+# xref numpy/numpy#20901
+#
+# The expected output should be no different than, e.g., when using a
+# list instead of a tuple
+np.concatenate(([1], AR_f8)) # E: Argument 1 to "concatenate" has incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/flatiter.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/flatiter.pyi
new file mode 100644
index 00000000..b4ce10ba
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/flatiter.pyi
@@ -0,0 +1,25 @@
+from typing import Any
+
+import numpy as np
+from numpy._typing import _SupportsArray
+
+
+class Index:
+ def __index__(self) -> int:
+ ...
+
+
+a: "np.flatiter[np.ndarray]"
+supports_array: _SupportsArray
+
+a.base = Any # E: Property "base" defined in "flatiter" is read-only
+a.coords = Any # E: Property "coords" defined in "flatiter" is read-only
+a.index = Any # E: Property "index" defined in "flatiter" is read-only
+a.copy(order='C') # E: Unexpected keyword argument
+
+# NOTE: Contrary to `ndarray.__getitem__` its counterpart in `flatiter`
+# does not accept objects with the `__array__` or `__index__` protocols;
+# boolean indexing is just plain broken (gh-17175)
+a[np.bool_()] # E: No overload variant of "__getitem__"
+a[Index()] # E: No overload variant of "__getitem__"
+a[supports_array] # E: No overload variant of "__getitem__"
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/fromnumeric.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/fromnumeric.pyi
new file mode 100644
index 00000000..b679703c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/fromnumeric.pyi
@@ -0,0 +1,161 @@
+"""Tests for :mod:`numpy.core.fromnumeric`."""
+
+import numpy as np
+import numpy.typing as npt
+
+A = np.array(True, ndmin=2, dtype=bool)
+A.setflags(write=False)
+AR_U: npt.NDArray[np.str_]
+
+a = np.bool_(True)
+
+np.take(a, None) # E: No overload variant
+np.take(a, axis=1.0) # E: No overload variant
+np.take(A, out=1) # E: No overload variant
+np.take(A, mode="bob") # E: No overload variant
+
+np.reshape(a, None) # E: No overload variant
+np.reshape(A, 1, order="bob") # E: No overload variant
+
+np.choose(a, None) # E: No overload variant
+np.choose(a, out=1.0) # E: No overload variant
+np.choose(A, mode="bob") # E: No overload variant
+
+np.repeat(a, None) # E: No overload variant
+np.repeat(A, 1, axis=1.0) # E: No overload variant
+
+np.swapaxes(A, None, 1) # E: No overload variant
+np.swapaxes(A, 1, [0]) # E: No overload variant
+
+np.transpose(A, axes=1.0) # E: No overload variant
+
+np.partition(a, None) # E: No overload variant
+np.partition( # E: No overload variant
+ a, 0, axis="bob"
+)
+np.partition( # E: No overload variant
+ A, 0, kind="bob"
+)
+np.partition(
+ A, 0, order=range(5) # E: Argument "order" to "partition" has incompatible type
+)
+
+np.argpartition(
+ a, None # E: incompatible type
+)
+np.argpartition(
+ a, 0, axis="bob" # E: incompatible type
+)
+np.argpartition(
+ A, 0, kind="bob" # E: incompatible type
+)
+np.argpartition(
+ A, 0, order=range(5) # E: Argument "order" to "argpartition" has incompatible type
+)
+
+np.sort(A, axis="bob") # E: No overload variant
+np.sort(A, kind="bob") # E: No overload variant
+np.sort(A, order=range(5)) # E: Argument "order" to "sort" has incompatible type
+
+np.argsort(A, axis="bob") # E: Argument "axis" to "argsort" has incompatible type
+np.argsort(A, kind="bob") # E: Argument "kind" to "argsort" has incompatible type
+np.argsort(A, order=range(5)) # E: Argument "order" to "argsort" has incompatible type
+
+np.argmax(A, axis="bob") # E: No overload variant of "argmax" matches argument type
+np.argmax(A, kind="bob") # E: No overload variant of "argmax" matches argument type
+
+np.argmin(A, axis="bob") # E: No overload variant of "argmin" matches argument type
+np.argmin(A, kind="bob") # E: No overload variant of "argmin" matches argument type
+
+np.searchsorted( # E: No overload variant of "searchsorted" matches argument type
+ A[0], 0, side="bob"
+)
+np.searchsorted( # E: No overload variant of "searchsorted" matches argument type
+ A[0], 0, sorter=1.0
+)
+
+np.resize(A, 1.0) # E: No overload variant
+
+np.squeeze(A, 1.0) # E: No overload variant of "squeeze" matches argument type
+
+np.diagonal(A, offset=None) # E: No overload variant
+np.diagonal(A, axis1="bob") # E: No overload variant
+np.diagonal(A, axis2=[]) # E: No overload variant
+
+np.trace(A, offset=None) # E: No overload variant
+np.trace(A, axis1="bob") # E: No overload variant
+np.trace(A, axis2=[]) # E: No overload variant
+
+np.ravel(a, order="bob") # E: No overload variant
+
+np.compress( # E: No overload variant
+ [True], A, axis=1.0
+)
+
+np.clip(a, 1, 2, out=1) # E: No overload variant of "clip" matches argument type
+
+np.sum(a, axis=1.0) # E: No overload variant
+np.sum(a, keepdims=1.0) # E: No overload variant
+np.sum(a, initial=[1]) # E: No overload variant
+
+np.all(a, axis=1.0) # E: No overload variant
+np.all(a, keepdims=1.0) # E: No overload variant
+np.all(a, out=1.0) # E: No overload variant
+
+np.any(a, axis=1.0) # E: No overload variant
+np.any(a, keepdims=1.0) # E: No overload variant
+np.any(a, out=1.0) # E: No overload variant
+
+np.cumsum(a, axis=1.0) # E: No overload variant
+np.cumsum(a, dtype=1.0) # E: No overload variant
+np.cumsum(a, out=1.0) # E: No overload variant
+
+np.ptp(a, axis=1.0) # E: No overload variant
+np.ptp(a, keepdims=1.0) # E: No overload variant
+np.ptp(a, out=1.0) # E: No overload variant
+
+np.amax(a, axis=1.0) # E: No overload variant
+np.amax(a, keepdims=1.0) # E: No overload variant
+np.amax(a, out=1.0) # E: No overload variant
+np.amax(a, initial=[1.0]) # E: No overload variant
+np.amax(a, where=[1.0]) # E: incompatible type
+
+np.amin(a, axis=1.0) # E: No overload variant
+np.amin(a, keepdims=1.0) # E: No overload variant
+np.amin(a, out=1.0) # E: No overload variant
+np.amin(a, initial=[1.0]) # E: No overload variant
+np.amin(a, where=[1.0]) # E: incompatible type
+
+np.prod(a, axis=1.0) # E: No overload variant
+np.prod(a, out=False) # E: No overload variant
+np.prod(a, keepdims=1.0) # E: No overload variant
+np.prod(a, initial=int) # E: No overload variant
+np.prod(a, where=1.0) # E: No overload variant
+np.prod(AR_U) # E: incompatible type
+
+np.cumprod(a, axis=1.0) # E: No overload variant
+np.cumprod(a, out=False) # E: No overload variant
+np.cumprod(AR_U) # E: incompatible type
+
+np.size(a, axis=1.0) # E: Argument "axis" to "size" has incompatible type
+
+np.around(a, decimals=1.0) # E: No overload variant
+np.around(a, out=type) # E: No overload variant
+np.around(AR_U) # E: incompatible type
+
+np.mean(a, axis=1.0) # E: No overload variant
+np.mean(a, out=False) # E: No overload variant
+np.mean(a, keepdims=1.0) # E: No overload variant
+np.mean(AR_U) # E: incompatible type
+
+np.std(a, axis=1.0) # E: No overload variant
+np.std(a, out=False) # E: No overload variant
+np.std(a, ddof='test') # E: No overload variant
+np.std(a, keepdims=1.0) # E: No overload variant
+np.std(AR_U) # E: incompatible type
+
+np.var(a, axis=1.0) # E: No overload variant
+np.var(a, out=False) # E: No overload variant
+np.var(a, ddof='test') # E: No overload variant
+np.var(a, keepdims=1.0) # E: No overload variant
+np.var(AR_U) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/histograms.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/histograms.pyi
new file mode 100644
index 00000000..22499d39
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/histograms.pyi
@@ -0,0 +1,12 @@
+import numpy as np
+import numpy.typing as npt
+
+AR_i8: npt.NDArray[np.int64]
+AR_f8: npt.NDArray[np.float64]
+
+np.histogram_bin_edges(AR_i8, range=(0, 1, 2)) # E: incompatible type
+
+np.histogram(AR_i8, range=(0, 1, 2)) # E: incompatible type
+
+np.histogramdd(AR_i8, range=(0, 1)) # E: incompatible type
+np.histogramdd(AR_i8, range=[(0, 1, 2)]) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/index_tricks.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/index_tricks.pyi
new file mode 100644
index 00000000..22f6f4a6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/index_tricks.pyi
@@ -0,0 +1,14 @@
+import numpy as np
+
+AR_LIKE_i: list[int]
+AR_LIKE_f: list[float]
+
+np.ndindex([1, 2, 3]) # E: No overload variant
+np.unravel_index(AR_LIKE_f, (1, 2, 3)) # E: incompatible type
+np.ravel_multi_index(AR_LIKE_i, (1, 2, 3), mode="bob") # E: No overload variant
+np.mgrid[1] # E: Invalid index type
+np.mgrid[...] # E: Invalid index type
+np.ogrid[1] # E: Invalid index type
+np.ogrid[...] # E: Invalid index type
+np.fill_diagonal(AR_LIKE_f, 2) # E: incompatible type
+np.diag_indices(1.0) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_function_base.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_function_base.pyi
new file mode 100644
index 00000000..9cad2da0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_function_base.pyi
@@ -0,0 +1,53 @@
+from typing import Any
+
+import numpy as np
+import numpy.typing as npt
+
+AR_f8: npt.NDArray[np.float64]
+AR_c16: npt.NDArray[np.complex128]
+AR_m: npt.NDArray[np.timedelta64]
+AR_M: npt.NDArray[np.datetime64]
+AR_O: npt.NDArray[np.object_]
+
+def func(a: int) -> None: ...
+
+np.average(AR_m) # E: incompatible type
+np.select(1, [AR_f8]) # E: incompatible type
+np.angle(AR_m) # E: incompatible type
+np.unwrap(AR_m) # E: incompatible type
+np.unwrap(AR_c16) # E: incompatible type
+np.trim_zeros(1) # E: incompatible type
+np.place(1, [True], 1.5) # E: incompatible type
+np.vectorize(1) # E: incompatible type
+np.add_newdoc("__main__", 1.5, "docstring") # E: incompatible type
+np.place(AR_f8, slice(None), 5) # E: incompatible type
+
+np.interp(AR_f8, AR_c16, AR_f8) # E: incompatible type
+np.interp(AR_c16, AR_f8, AR_f8) # E: incompatible type
+np.interp(AR_f8, AR_f8, AR_f8, period=AR_c16) # E: No overload variant
+np.interp(AR_f8, AR_f8, AR_O) # E: incompatible type
+
+np.cov(AR_m) # E: incompatible type
+np.cov(AR_O) # E: incompatible type
+np.corrcoef(AR_m) # E: incompatible type
+np.corrcoef(AR_O) # E: incompatible type
+np.corrcoef(AR_f8, bias=True) # E: No overload variant
+np.corrcoef(AR_f8, ddof=2) # E: No overload variant
+np.blackman(1j) # E: incompatible type
+np.bartlett(1j) # E: incompatible type
+np.hanning(1j) # E: incompatible type
+np.hamming(1j) # E: incompatible type
+np.hamming(AR_c16) # E: incompatible type
+np.kaiser(1j, 1) # E: incompatible type
+np.sinc(AR_O) # E: incompatible type
+np.median(AR_M) # E: incompatible type
+
+np.add_newdoc_ufunc(func, "docstring") # E: incompatible type
+np.percentile(AR_f8, 50j) # E: No overload variant
+np.percentile(AR_f8, 50, interpolation="bob") # E: No overload variant
+np.quantile(AR_f8, 0.5j) # E: No overload variant
+np.quantile(AR_f8, 0.5, interpolation="bob") # E: No overload variant
+np.meshgrid(AR_f8, AR_f8, indexing="bob") # E: incompatible type
+np.delete(AR_f8, AR_f8) # E: incompatible type
+np.insert(AR_f8, AR_f8, 1.5) # E: incompatible type
+np.digitize(AR_f8, 1j) # E: No overload variant
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_polynomial.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_polynomial.pyi
new file mode 100644
index 00000000..e51b6b58
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_polynomial.pyi
@@ -0,0 +1,29 @@
+import numpy as np
+import numpy.typing as npt
+
+AR_f8: npt.NDArray[np.float64]
+AR_c16: npt.NDArray[np.complex128]
+AR_O: npt.NDArray[np.object_]
+AR_U: npt.NDArray[np.str_]
+
+poly_obj: np.poly1d
+
+np.polymul(AR_f8, AR_U) # E: incompatible type
+np.polydiv(AR_f8, AR_U) # E: incompatible type
+
+5**poly_obj # E: No overload variant
+
+np.polyint(AR_U) # E: incompatible type
+np.polyint(AR_f8, m=1j) # E: No overload variant
+
+np.polyder(AR_U) # E: incompatible type
+np.polyder(AR_f8, m=1j) # E: No overload variant
+
+np.polyfit(AR_O, AR_f8, 1) # E: incompatible type
+np.polyfit(AR_f8, AR_f8, 1, rcond=1j) # E: No overload variant
+np.polyfit(AR_f8, AR_f8, 1, w=AR_c16) # E: incompatible type
+np.polyfit(AR_f8, AR_f8, 1, cov="bob") # E: No overload variant
+
+np.polyval(AR_f8, AR_U) # E: incompatible type
+np.polyadd(AR_f8, AR_U) # E: incompatible type
+np.polysub(AR_f8, AR_U) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_utils.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_utils.pyi
new file mode 100644
index 00000000..e16c926a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_utils.pyi
@@ -0,0 +1,13 @@
+import numpy as np
+
+np.deprecate(1) # E: No overload variant
+
+np.deprecate_with_doc(1) # E: incompatible type
+
+np.byte_bounds(1) # E: incompatible type
+
+np.who(1) # E: incompatible type
+
+np.lookfor(None) # E: incompatible type
+
+np.safe_eval(None) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_version.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_version.pyi
new file mode 100644
index 00000000..2758cfe4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/lib_version.pyi
@@ -0,0 +1,6 @@
+from numpy.lib import NumpyVersion
+
+version: NumpyVersion
+
+NumpyVersion(b"1.8.0") # E: incompatible type
+version >= b"1.8.0" # E: Unsupported operand types
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/linalg.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/linalg.pyi
new file mode 100644
index 00000000..da939032
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/linalg.pyi
@@ -0,0 +1,48 @@
+import numpy as np
+import numpy.typing as npt
+
+AR_f8: npt.NDArray[np.float64]
+AR_O: npt.NDArray[np.object_]
+AR_M: npt.NDArray[np.datetime64]
+
+np.linalg.tensorsolve(AR_O, AR_O) # E: incompatible type
+
+np.linalg.solve(AR_O, AR_O) # E: incompatible type
+
+np.linalg.tensorinv(AR_O) # E: incompatible type
+
+np.linalg.inv(AR_O) # E: incompatible type
+
+np.linalg.matrix_power(AR_M, 5) # E: incompatible type
+
+np.linalg.cholesky(AR_O) # E: incompatible type
+
+np.linalg.qr(AR_O) # E: incompatible type
+np.linalg.qr(AR_f8, mode="bob") # E: No overload variant
+
+np.linalg.eigvals(AR_O) # E: incompatible type
+
+np.linalg.eigvalsh(AR_O) # E: incompatible type
+np.linalg.eigvalsh(AR_O, UPLO="bob") # E: No overload variant
+
+np.linalg.eig(AR_O) # E: incompatible type
+
+np.linalg.eigh(AR_O) # E: incompatible type
+np.linalg.eigh(AR_O, UPLO="bob") # E: No overload variant
+
+np.linalg.svd(AR_O) # E: incompatible type
+
+np.linalg.cond(AR_O) # E: incompatible type
+np.linalg.cond(AR_f8, p="bob") # E: incompatible type
+
+np.linalg.matrix_rank(AR_O) # E: incompatible type
+
+np.linalg.pinv(AR_O) # E: incompatible type
+
+np.linalg.slogdet(AR_O) # E: incompatible type
+
+np.linalg.det(AR_O) # E: incompatible type
+
+np.linalg.norm(AR_f8, ord="bob") # E: No overload variant
+
+np.linalg.multi_dot([AR_M]) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/memmap.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/memmap.pyi
new file mode 100644
index 00000000..434870b6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/memmap.pyi
@@ -0,0 +1,5 @@
+import numpy as np
+
+with open("file.txt", "r") as f:
+ np.memmap(f) # E: No overload variant
+np.memmap("test.txt", shape=[10, 5]) # E: No overload variant
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/modules.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/modules.pyi
new file mode 100644
index 00000000..c86627e0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/modules.pyi
@@ -0,0 +1,18 @@
+import numpy as np
+
+np.testing.bob # E: Module has no attribute
+np.bob # E: Module has no attribute
+
+# Stdlib modules in the namespace by accident
+np.warnings # E: Module has no attribute
+np.sys # E: Module has no attribute
+np.os # E: Module "numpy" does not explicitly export
+np.math # E: Module has no attribute
+
+# Public sub-modules that are not imported to their parent module by default;
+# e.g. one must first execute `import numpy.lib.recfunctions`
+np.lib.recfunctions # E: Module has no attribute
+
+np.__NUMPY_SETUP__ # E: Module has no attribute
+np.__deprecated_attrs__ # E: Module has no attribute
+np.__expired_functions__ # E: Module has no attribute
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/multiarray.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/multiarray.pyi
new file mode 100644
index 00000000..425ec3d0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/multiarray.pyi
@@ -0,0 +1,55 @@
+import numpy as np
+import numpy.typing as npt
+
+i8: np.int64
+
+AR_b: npt.NDArray[np.bool_]
+AR_u1: npt.NDArray[np.uint8]
+AR_i8: npt.NDArray[np.int64]
+AR_f8: npt.NDArray[np.float64]
+AR_M: npt.NDArray[np.datetime64]
+
+M: np.datetime64
+
+AR_LIKE_f: list[float]
+
+def func(a: int) -> None: ...
+
+np.where(AR_b, 1) # E: No overload variant
+
+np.can_cast(AR_f8, 1) # E: incompatible type
+
+np.vdot(AR_M, AR_M) # E: incompatible type
+
+np.copyto(AR_LIKE_f, AR_f8) # E: incompatible type
+
+np.putmask(AR_LIKE_f, [True, True, False], 1.5) # E: incompatible type
+
+np.packbits(AR_f8) # E: incompatible type
+np.packbits(AR_u1, bitorder=">") # E: incompatible type
+
+np.unpackbits(AR_i8) # E: incompatible type
+np.unpackbits(AR_u1, bitorder=">") # E: incompatible type
+
+np.shares_memory(1, 1, max_work=i8) # E: incompatible type
+np.may_share_memory(1, 1, max_work=i8) # E: incompatible type
+
+np.arange(M) # E: No overload variant
+np.arange(stop=10) # E: No overload variant
+
+np.datetime_data(int) # E: incompatible type
+
+np.busday_offset("2012", 10) # E: No overload variant
+
+np.datetime_as_string("2012") # E: No overload variant
+
+np.compare_chararrays("a", b"a", "==", False) # E: No overload variant
+
+np.add_docstring(func, None) # E: incompatible type
+
+np.nested_iters([AR_i8, AR_i8]) # E: Missing positional argument
+np.nested_iters([AR_i8, AR_i8], 0) # E: incompatible type
+np.nested_iters([AR_i8, AR_i8], [0]) # E: incompatible type
+np.nested_iters([AR_i8, AR_i8], [[0], [1]], flags=["test"]) # E: incompatible type
+np.nested_iters([AR_i8, AR_i8], [[0], [1]], op_flags=[["test"]]) # E: incompatible type
+np.nested_iters([AR_i8, AR_i8], [[0], [1]], buffersize=1.0) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ndarray.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ndarray.pyi
new file mode 100644
index 00000000..5a5130d4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ndarray.pyi
@@ -0,0 +1,11 @@
+import numpy as np
+
+# Ban setting dtype since mutating the type of the array in place
+# makes having ndarray be generic over dtype impossible. Generally
+# users should use `ndarray.view` in this situation anyway. See
+#
+# https://github.com/numpy/numpy-stubs/issues/7
+#
+# for more context.
+float_array = np.array([1.0])
+float_array.dtype = np.bool_ # E: Property "dtype" defined in "ndarray" is read-only
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ndarray_misc.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ndarray_misc.pyi
new file mode 100644
index 00000000..77bd9a44
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ndarray_misc.pyi
@@ -0,0 +1,43 @@
+"""
+Tests for miscellaneous (non-magic) ``np.ndarray``/``np.generic`` methods.
+
+More extensive tests are performed for the methods'
+function-based counterpart in `../from_numeric.py`.
+
+"""
+
+from typing import Any
+import numpy as np
+
+f8: np.float64
+AR_f8: np.ndarray[Any, np.dtype[np.float64]]
+AR_M: np.ndarray[Any, np.dtype[np.datetime64]]
+AR_b: np.ndarray[Any, np.dtype[np.bool_]]
+
+ctypes_obj = AR_f8.ctypes
+
+reveal_type(ctypes_obj.get_data()) # E: has no attribute
+reveal_type(ctypes_obj.get_shape()) # E: has no attribute
+reveal_type(ctypes_obj.get_strides()) # E: has no attribute
+reveal_type(ctypes_obj.get_as_parameter()) # E: has no attribute
+
+f8.argpartition(0) # E: has no attribute
+f8.diagonal() # E: has no attribute
+f8.dot(1) # E: has no attribute
+f8.nonzero() # E: has no attribute
+f8.partition(0) # E: has no attribute
+f8.put(0, 2) # E: has no attribute
+f8.setfield(2, np.float64) # E: has no attribute
+f8.sort() # E: has no attribute
+f8.trace() # E: has no attribute
+
+AR_M.__int__() # E: Invalid self argument
+AR_M.__float__() # E: Invalid self argument
+AR_M.__complex__() # E: Invalid self argument
+AR_b.__index__() # E: Invalid self argument
+
+AR_f8[1.5] # E: No overload variant
+AR_f8["field_a"] # E: No overload variant
+AR_f8[["field_a", "field_b"]] # E: Invalid index type
+
+AR_f8.__array_finalize__(object()) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/nditer.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/nditer.pyi
new file mode 100644
index 00000000..1e8e37ee
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/nditer.pyi
@@ -0,0 +1,8 @@
+import numpy as np
+
+class Test(np.nditer): ... # E: Cannot inherit from final class
+
+np.nditer([0, 1], flags=["test"]) # E: incompatible type
+np.nditer([0, 1], op_flags=[["test"]]) # E: incompatible type
+np.nditer([0, 1], itershape=(1.0,)) # E: incompatible type
+np.nditer([0, 1], buffersize=1.0) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/nested_sequence.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/nested_sequence.pyi
new file mode 100644
index 00000000..6301e517
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/nested_sequence.pyi
@@ -0,0 +1,17 @@
+from collections.abc import Sequence
+from numpy._typing import _NestedSequence
+
+a: Sequence[float]
+b: list[complex]
+c: tuple[str, ...]
+d: int
+e: str
+
+def func(a: _NestedSequence[int]) -> None:
+ ...
+
+reveal_type(func(a)) # E: incompatible type
+reveal_type(func(b)) # E: incompatible type
+reveal_type(func(c)) # E: incompatible type
+reveal_type(func(d)) # E: incompatible type
+reveal_type(func(e)) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/npyio.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/npyio.pyi
new file mode 100644
index 00000000..1749a684
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/npyio.pyi
@@ -0,0 +1,27 @@
+import pathlib
+from typing import IO
+
+import numpy.typing as npt
+import numpy as np
+
+str_path: str
+bytes_path: bytes
+pathlib_path: pathlib.Path
+str_file: IO[str]
+AR_i8: npt.NDArray[np.int64]
+
+np.load(str_file) # E: incompatible type
+
+np.save(bytes_path, AR_i8) # E: incompatible type
+
+np.savez(bytes_path, AR_i8) # E: incompatible type
+
+np.savez_compressed(bytes_path, AR_i8) # E: incompatible type
+
+np.loadtxt(bytes_path) # E: incompatible type
+
+np.fromregex(bytes_path, ".", np.int64) # E: No overload variant
+
+np.recfromtxt(bytes_path) # E: incompatible type
+
+np.recfromcsv(bytes_path) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/numerictypes.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/numerictypes.pyi
new file mode 100644
index 00000000..ce5662d5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/numerictypes.pyi
@@ -0,0 +1,11 @@
+import numpy as np
+
+# Technically this works, but probably shouldn't. See
+#
+# https://github.com/numpy/numpy/issues/16366
+#
+np.maximum_sctype(1) # E: No overload variant
+
+np.issubsctype(1, np.int64) # E: incompatible type
+
+np.issubdtype(1, np.int64) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/random.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/random.pyi
new file mode 100644
index 00000000..f0e68201
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/random.pyi
@@ -0,0 +1,61 @@
+import numpy as np
+from typing import Any
+
+SEED_FLOAT: float = 457.3
+SEED_ARR_FLOAT: np.ndarray[Any, np.dtype[np.float64]] = np.array([1.0, 2, 3, 4])
+SEED_ARRLIKE_FLOAT: list[float] = [1.0, 2.0, 3.0, 4.0]
+SEED_SEED_SEQ: np.random.SeedSequence = np.random.SeedSequence(0)
+SEED_STR: str = "String seeding not allowed"
+# default rng
+np.random.default_rng(SEED_FLOAT) # E: incompatible type
+np.random.default_rng(SEED_ARR_FLOAT) # E: incompatible type
+np.random.default_rng(SEED_ARRLIKE_FLOAT) # E: incompatible type
+np.random.default_rng(SEED_STR) # E: incompatible type
+
+# Seed Sequence
+np.random.SeedSequence(SEED_FLOAT) # E: incompatible type
+np.random.SeedSequence(SEED_ARR_FLOAT) # E: incompatible type
+np.random.SeedSequence(SEED_ARRLIKE_FLOAT) # E: incompatible type
+np.random.SeedSequence(SEED_SEED_SEQ) # E: incompatible type
+np.random.SeedSequence(SEED_STR) # E: incompatible type
+
+seed_seq: np.random.bit_generator.SeedSequence = np.random.SeedSequence()
+seed_seq.spawn(11.5) # E: incompatible type
+seed_seq.generate_state(3.14) # E: incompatible type
+seed_seq.generate_state(3, np.uint8) # E: incompatible type
+seed_seq.generate_state(3, "uint8") # E: incompatible type
+seed_seq.generate_state(3, "u1") # E: incompatible type
+seed_seq.generate_state(3, np.uint16) # E: incompatible type
+seed_seq.generate_state(3, "uint16") # E: incompatible type
+seed_seq.generate_state(3, "u2") # E: incompatible type
+seed_seq.generate_state(3, np.int32) # E: incompatible type
+seed_seq.generate_state(3, "int32") # E: incompatible type
+seed_seq.generate_state(3, "i4") # E: incompatible type
+
+# Bit Generators
+np.random.MT19937(SEED_FLOAT) # E: incompatible type
+np.random.MT19937(SEED_ARR_FLOAT) # E: incompatible type
+np.random.MT19937(SEED_ARRLIKE_FLOAT) # E: incompatible type
+np.random.MT19937(SEED_STR) # E: incompatible type
+
+np.random.PCG64(SEED_FLOAT) # E: incompatible type
+np.random.PCG64(SEED_ARR_FLOAT) # E: incompatible type
+np.random.PCG64(SEED_ARRLIKE_FLOAT) # E: incompatible type
+np.random.PCG64(SEED_STR) # E: incompatible type
+
+np.random.Philox(SEED_FLOAT) # E: incompatible type
+np.random.Philox(SEED_ARR_FLOAT) # E: incompatible type
+np.random.Philox(SEED_ARRLIKE_FLOAT) # E: incompatible type
+np.random.Philox(SEED_STR) # E: incompatible type
+
+np.random.SFC64(SEED_FLOAT) # E: incompatible type
+np.random.SFC64(SEED_ARR_FLOAT) # E: incompatible type
+np.random.SFC64(SEED_ARRLIKE_FLOAT) # E: incompatible type
+np.random.SFC64(SEED_STR) # E: incompatible type
+
+# Generator
+np.random.Generator(None) # E: incompatible type
+np.random.Generator(12333283902830213) # E: incompatible type
+np.random.Generator("OxFEEDF00D") # E: incompatible type
+np.random.Generator([123, 234]) # E: incompatible type
+np.random.Generator(np.array([123, 234], dtype="u4")) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/rec.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/rec.pyi
new file mode 100644
index 00000000..a57f1ba2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/rec.pyi
@@ -0,0 +1,17 @@
+import numpy as np
+import numpy.typing as npt
+
+AR_i8: npt.NDArray[np.int64]
+
+np.rec.fromarrays(1) # E: No overload variant
+np.rec.fromarrays([1, 2, 3], dtype=[("f8", "f8")], formats=["f8", "f8"]) # E: No overload variant
+
+np.rec.fromrecords(AR_i8) # E: incompatible type
+np.rec.fromrecords([(1.5,)], dtype=[("f8", "f8")], formats=["f8", "f8"]) # E: No overload variant
+
+np.rec.fromstring("string", dtype=[("f8", "f8")]) # E: No overload variant
+np.rec.fromstring(b"bytes") # E: No overload variant
+np.rec.fromstring(b"(1.5,)", dtype=[("f8", "f8")], formats=["f8", "f8"]) # E: No overload variant
+
+with open("test", "r") as f:
+ np.rec.fromfile(f, dtype=[("f8", "f8")]) # E: No overload variant
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/scalars.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/scalars.pyi
new file mode 100644
index 00000000..2a6c2c7a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/scalars.pyi
@@ -0,0 +1,92 @@
+import sys
+import numpy as np
+
+f2: np.float16
+f8: np.float64
+c8: np.complex64
+
+# Construction
+
+np.float32(3j) # E: incompatible type
+
+# Technically the following examples are valid NumPy code. But they
+# are not considered a best practice, and people who wish to use the
+# stubs should instead do
+#
+# np.array([1.0, 0.0, 0.0], dtype=np.float32)
+# np.array([], dtype=np.complex64)
+#
+# See e.g. the discussion on the mailing list
+#
+# https://mail.python.org/pipermail/numpy-discussion/2020-April/080566.html
+#
+# and the issue
+#
+# https://github.com/numpy/numpy-stubs/issues/41
+#
+# for more context.
+np.float32([1.0, 0.0, 0.0]) # E: incompatible type
+np.complex64([]) # E: incompatible type
+
+np.complex64(1, 2) # E: Too many arguments
+# TODO: protocols (can't check for non-existent protocols w/ __getattr__)
+
+np.datetime64(0) # E: No overload variant
+
+class A:
+ def __float__(self):
+ return 1.0
+
+
+np.int8(A()) # E: incompatible type
+np.int16(A()) # E: incompatible type
+np.int32(A()) # E: incompatible type
+np.int64(A()) # E: incompatible type
+np.uint8(A()) # E: incompatible type
+np.uint16(A()) # E: incompatible type
+np.uint32(A()) # E: incompatible type
+np.uint64(A()) # E: incompatible type
+
+np.void("test") # E: No overload variant
+np.void("test", dtype=None) # E: No overload variant
+
+np.generic(1) # E: Cannot instantiate abstract class
+np.number(1) # E: Cannot instantiate abstract class
+np.integer(1) # E: Cannot instantiate abstract class
+np.inexact(1) # E: Cannot instantiate abstract class
+np.character("test") # E: Cannot instantiate abstract class
+np.flexible(b"test") # E: Cannot instantiate abstract class
+
+np.float64(value=0.0) # E: Unexpected keyword argument
+np.int64(value=0) # E: Unexpected keyword argument
+np.uint64(value=0) # E: Unexpected keyword argument
+np.complex128(value=0.0j) # E: Unexpected keyword argument
+np.str_(value='bob') # E: No overload variant
+np.bytes_(value=b'test') # E: No overload variant
+np.void(value=b'test') # E: No overload variant
+np.bool_(value=True) # E: Unexpected keyword argument
+np.datetime64(value="2019") # E: No overload variant
+np.timedelta64(value=0) # E: Unexpected keyword argument
+
+np.bytes_(b"hello", encoding='utf-8') # E: No overload variant
+np.str_("hello", encoding='utf-8') # E: No overload variant
+
+f8.item(1) # E: incompatible type
+f8.item((0, 1)) # E: incompatible type
+f8.squeeze(axis=1) # E: incompatible type
+f8.squeeze(axis=(0, 1)) # E: incompatible type
+f8.transpose(1) # E: incompatible type
+
+def func(a: np.float32) -> None: ...
+
+func(f2) # E: incompatible type
+func(f8) # E: incompatible type
+
+round(c8) # E: No overload variant
+
+c8.__getnewargs__() # E: Invalid self argument
+f2.__getnewargs__() # E: Invalid self argument
+f2.hex() # E: Invalid self argument
+np.float16.fromhex("0x0.0p+0") # E: Invalid self argument
+f2.__trunc__() # E: Invalid self argument
+f2.__getformat__("float") # E: Invalid self argument
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/shape_base.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/shape_base.pyi
new file mode 100644
index 00000000..e709741b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/shape_base.pyi
@@ -0,0 +1,8 @@
+import numpy as np
+
+class DTypeLike:
+ dtype: np.dtype[np.int_]
+
+dtype_like: DTypeLike
+
+np.expand_dims(dtype_like, (5, 10)) # E: No overload variant
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/stride_tricks.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/stride_tricks.pyi
new file mode 100644
index 00000000..f2bfba74
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/stride_tricks.pyi
@@ -0,0 +1,9 @@
+import numpy as np
+import numpy.typing as npt
+
+AR_f8: npt.NDArray[np.float64]
+
+np.lib.stride_tricks.as_strided(AR_f8, shape=8) # E: No overload variant
+np.lib.stride_tricks.as_strided(AR_f8, strides=8) # E: No overload variant
+
+np.lib.stride_tricks.sliding_window_view(AR_f8, axis=(1,)) # E: No overload variant
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/testing.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/testing.pyi
new file mode 100644
index 00000000..803870e2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/testing.pyi
@@ -0,0 +1,28 @@
+import numpy as np
+import numpy.typing as npt
+
+AR_U: npt.NDArray[np.str_]
+
+def func() -> bool: ...
+
+np.testing.assert_(True, msg=1) # E: incompatible type
+np.testing.build_err_msg(1, "test") # E: incompatible type
+np.testing.assert_almost_equal(AR_U, AR_U) # E: incompatible type
+np.testing.assert_approx_equal([1, 2, 3], [1, 2, 3]) # E: incompatible type
+np.testing.assert_array_almost_equal(AR_U, AR_U) # E: incompatible type
+np.testing.assert_array_less(AR_U, AR_U) # E: incompatible type
+np.testing.assert_string_equal(b"a", b"a") # E: incompatible type
+
+np.testing.assert_raises(expected_exception=TypeError, callable=func) # E: No overload variant
+np.testing.assert_raises_regex(expected_exception=TypeError, expected_regex="T", callable=func) # E: No overload variant
+
+np.testing.assert_allclose(AR_U, AR_U) # E: incompatible type
+np.testing.assert_array_almost_equal_nulp(AR_U, AR_U) # E: incompatible type
+np.testing.assert_array_max_ulp(AR_U, AR_U) # E: incompatible type
+
+np.testing.assert_warns(warning_class=RuntimeWarning, func=func) # E: No overload variant
+np.testing.assert_no_warnings(func=func) # E: No overload variant
+np.testing.assert_no_warnings(func, None) # E: Too many arguments
+np.testing.assert_no_warnings(func, test=None) # E: Unexpected keyword argument
+
+np.testing.assert_no_gc_cycles(func=func) # E: No overload variant
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/twodim_base.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/twodim_base.pyi
new file mode 100644
index 00000000..faa43009
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/twodim_base.pyi
@@ -0,0 +1,37 @@
+from typing import Any, TypeVar
+
+import numpy as np
+import numpy.typing as npt
+
+
+def func1(ar: npt.NDArray[Any], a: int) -> npt.NDArray[np.str_]:
+ pass
+
+
+def func2(ar: npt.NDArray[Any], a: float) -> float:
+ pass
+
+
+AR_b: npt.NDArray[np.bool_]
+AR_m: npt.NDArray[np.timedelta64]
+
+AR_LIKE_b: list[bool]
+
+np.eye(10, M=20.0) # E: No overload variant
+np.eye(10, k=2.5, dtype=int) # E: No overload variant
+
+np.diag(AR_b, k=0.5) # E: No overload variant
+np.diagflat(AR_b, k=0.5) # E: No overload variant
+
+np.tri(10, M=20.0) # E: No overload variant
+np.tri(10, k=2.5, dtype=int) # E: No overload variant
+
+np.tril(AR_b, k=0.5) # E: No overload variant
+np.triu(AR_b, k=0.5) # E: No overload variant
+
+np.vander(AR_m) # E: incompatible type
+
+np.histogram2d(AR_m) # E: No overload variant
+
+np.mask_indices(10, func1) # E: incompatible type
+np.mask_indices(10, func2, 10.5) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/type_check.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/type_check.pyi
new file mode 100644
index 00000000..95f52bfb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/type_check.pyi
@@ -0,0 +1,13 @@
+import numpy as np
+import numpy.typing as npt
+
+DTYPE_i8: np.dtype[np.int64]
+
+np.mintypecode(DTYPE_i8) # E: incompatible type
+np.iscomplexobj(DTYPE_i8) # E: incompatible type
+np.isrealobj(DTYPE_i8) # E: incompatible type
+
+np.typename(DTYPE_i8) # E: No overload variant
+np.typename("invalid") # E: No overload variant
+
+np.common_type(np.timedelta64()) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufunc_config.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufunc_config.pyi
new file mode 100644
index 00000000..f547fbb4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufunc_config.pyi
@@ -0,0 +1,21 @@
+"""Typing tests for `numpy.core._ufunc_config`."""
+
+import numpy as np
+
+def func1(a: str, b: int, c: float) -> None: ...
+def func2(a: str, *, b: int) -> None: ...
+
+class Write1:
+ def write1(self, a: str) -> None: ...
+
+class Write2:
+ def write(self, a: str, b: str) -> None: ...
+
+class Write3:
+ def write(self, *, a: str) -> None: ...
+
+np.seterrcall(func1) # E: Argument 1 to "seterrcall" has incompatible type
+np.seterrcall(func2) # E: Argument 1 to "seterrcall" has incompatible type
+np.seterrcall(Write1()) # E: Argument 1 to "seterrcall" has incompatible type
+np.seterrcall(Write2()) # E: Argument 1 to "seterrcall" has incompatible type
+np.seterrcall(Write3()) # E: Argument 1 to "seterrcall" has incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufunclike.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufunclike.pyi
new file mode 100644
index 00000000..2f9fd14c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufunclike.pyi
@@ -0,0 +1,21 @@
+from typing import Any
+import numpy as np
+
+AR_c: np.ndarray[Any, np.dtype[np.complex128]]
+AR_m: np.ndarray[Any, np.dtype[np.timedelta64]]
+AR_M: np.ndarray[Any, np.dtype[np.datetime64]]
+AR_O: np.ndarray[Any, np.dtype[np.object_]]
+
+np.fix(AR_c) # E: incompatible type
+np.fix(AR_m) # E: incompatible type
+np.fix(AR_M) # E: incompatible type
+
+np.isposinf(AR_c) # E: incompatible type
+np.isposinf(AR_m) # E: incompatible type
+np.isposinf(AR_M) # E: incompatible type
+np.isposinf(AR_O) # E: incompatible type
+
+np.isneginf(AR_c) # E: incompatible type
+np.isneginf(AR_m) # E: incompatible type
+np.isneginf(AR_M) # E: incompatible type
+np.isneginf(AR_O) # E: incompatible type
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufuncs.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufuncs.pyi
new file mode 100644
index 00000000..e827267c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/ufuncs.pyi
@@ -0,0 +1,41 @@
+import numpy as np
+import numpy.typing as npt
+
+AR_f8: npt.NDArray[np.float64]
+
+np.sin.nin + "foo" # E: Unsupported operand types
+np.sin(1, foo="bar") # E: No overload variant
+
+np.abs(None) # E: No overload variant
+
+np.add(1, 1, 1) # E: No overload variant
+np.add(1, 1, axis=0) # E: No overload variant
+
+np.matmul(AR_f8, AR_f8, where=True) # E: No overload variant
+
+np.frexp(AR_f8, out=None) # E: No overload variant
+np.frexp(AR_f8, out=AR_f8) # E: No overload variant
+
+np.absolute.outer() # E: "None" not callable
+np.frexp.outer() # E: "None" not callable
+np.divmod.outer() # E: "None" not callable
+np.matmul.outer() # E: "None" not callable
+
+np.absolute.reduceat() # E: "None" not callable
+np.frexp.reduceat() # E: "None" not callable
+np.divmod.reduceat() # E: "None" not callable
+np.matmul.reduceat() # E: "None" not callable
+
+np.absolute.reduce() # E: "None" not callable
+np.frexp.reduce() # E: "None" not callable
+np.divmod.reduce() # E: "None" not callable
+np.matmul.reduce() # E: "None" not callable
+
+np.absolute.accumulate() # E: "None" not callable
+np.frexp.accumulate() # E: "None" not callable
+np.divmod.accumulate() # E: "None" not callable
+np.matmul.accumulate() # E: "None" not callable
+
+np.frexp.at() # E: "None" not callable
+np.divmod.at() # E: "None" not callable
+np.matmul.at() # E: "None" not callable
diff --git a/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/warnings_and_errors.pyi b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/warnings_and_errors.pyi
new file mode 100644
index 00000000..f4fa3829
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/typing/tests/data/fail/warnings_and_errors.pyi
@@ -0,0 +1,5 @@
+import numpy as np
+
+np.AxisError(1.0) # E: No overload variant
+np.AxisError(1, ndim=2.0) # E: No overload variant
+np.AxisError(2, msg_prefix=404) # E: No overload variant