Skip to content

Commit 9ef9d86

Browse files
authored
Merge pull request #573 from numpy/gradual-shape-type-default
2 parents 1155b25 + ae993ee commit 9ef9d86

35 files changed

+1220
-796
lines changed

src/_numtype/@test/test_to_array.pyi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,28 +59,28 @@ bool_0d_reject_sc: _nt.ToBool_0d = f_0d # type: ignore[assignment] # pyright:
5959
bool_0d_reject_1d: _nt.ToBool_0d = b1_1d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
6060
bool_0d_reject_2d: _nt.ToBool_0d = b1_2d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
6161
bool_0d_reject_3d: _nt.ToBool_0d = b1_3d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
62-
bool_0d_reject_nd: _nt.ToBool_0d = b1_nd # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
62+
bool_0d_reject_nd: _nt.ToBool_0d = b1_nd
6363

6464
bool_1d_accept: _nt.ToBool_1d = like_bool_1d
6565
bool_1d_reject_sc: _nt.ToBool_1d = f_1d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
6666
bool_1d_reject_0d: _nt.ToBool_1d = b1 # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
6767
bool_1d_reject_2d: _nt.ToBool_1ds = b1_2d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
6868
bool_1d_reject_3d: _nt.ToBool_1ds = b1_3d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
69-
bool_1d_reject_nd: _nt.ToBool_1ds = b1_nd # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
69+
bool_1d_reject_nd: _nt.ToBool_1ds = b1_nd
7070

7171
bool_2d_accept: _nt.ToBool_2d = like_bool_2d
7272
bool_2d_reject_sc: _nt.ToBool_2d = f_2d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
7373
bool_2d_reject_0d: _nt.ToBool_2d = b1 # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
7474
bool_2d_reject_1d: _nt.ToBool_2ds = b1_1d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
7575
bool_2d_reject_3d: _nt.ToBool_2ds = b1_3d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
76-
bool_2d_reject_nd: _nt.ToBool_2ds = b1_nd # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
76+
bool_2d_reject_nd: _nt.ToBool_2ds = b1_nd
7777

7878
bool_3d_accept: _nt.ToBool_3d = like_bool_3d
7979
bool_3d_reject_sc: _nt.ToBool_3d = f_3d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
8080
bool_3d_reject_0d: _nt.ToBool_3d = b1 # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
8181
bool_3d_reject_1d: _nt.ToBool_3ds = b1_1d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
8282
bool_3d_reject_2d: _nt.ToBool_3ds = b1_2d # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
83-
bool_3d_reject_nd: _nt.ToBool_3ds = b1_nd # type: ignore[assignment] # pyright: ignore[reportAssignmentType]
83+
bool_3d_reject_nd: _nt.ToBool_3ds = b1_nd
8484

8585
bool_nd_accept_0d: _nt.ToBool_nd = b1_0d
8686
bool_nd_accept_1d: _nt.ToBool_nd = like_bool_1d

src/_numtype/__init__.pyi

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ from ._scalar_co import (
141141
)
142142
from ._shape import (
143143
AnyShape as AnyShape,
144+
NeitherShape as NeitherShape,
144145
Shape as Shape,
145146
Shape0 as Shape0,
146147
Shape0N as Shape0N,
@@ -188,13 +189,17 @@ class CanArray3D(Protocol[_ScalarT_co]):
188189
@type_check_only
189190
class CanArrayND(Protocol[_ScalarT_co]):
190191
# TODO: remove `| Rank0` once python/mypy#19110 is fixed
191-
def __array__(self, /) -> np.ndarray[Shape | Rank0, np.dtype[_ScalarT_co]]: ...
192+
def __array__(self, /) -> np.ndarray[AnyShape | Rank0, np.dtype[_ScalarT_co]]: ...
192193

193194
@type_check_only
194195
class CanLenArrayND(Protocol[_ScalarT_co]):
195196
def __len__(self, /) -> int: ...
196197
# TODO: remove `| Rank0` once python/mypy#19110 is fixed
197-
def __array__(self, /) -> np.ndarray[Shape, np.dtype[_ScalarT_co]]: ...
198+
def __array__(self, /) -> np.ndarray[AnyShape, np.dtype[_ScalarT_co]]: ...
199+
200+
@type_check_only
201+
class CanArray(Protocol[_ScalarT_co, _ShapeT_co]):
202+
def __array__(self, /) -> np.ndarray[_ShapeT_co, np.dtype[_ScalarT_co]]: ...
198203

199204
@type_check_only
200205
class CanLenArray(Protocol[_ScalarT_co, _ShapeT_co]):
@@ -260,6 +265,7 @@ _ToArray_2nd: TypeAlias = CanLenArray[_ScalarT, Shape2N] | Sequence[_ToArray_1nd
260265
_ToArray2_2nd: TypeAlias = CanLenArray[_ScalarT, Shape2N] | Sequence[_ToArray2_1nd[_ScalarT, _ToT]]
261266
_ToArray_3nd: TypeAlias = CanLenArray[_ScalarT, Shape3N] | Sequence[_ToArray_2nd[_ScalarT]]
262267
_ToArray2_3nd: TypeAlias = CanLenArray[_ScalarT, Shape3N] | Sequence[_ToArray2_2nd[_ScalarT, _ToT]]
268+
_ToArray_nnd: TypeAlias = CanArray[_ScalarT, NeitherShape] # noqa: PYI047
263269

264270
###
265271
# Non-overlapping scalar- and array-like aliases for all scalar types.

src/_numtype/_array.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ __all__ = [
3232
###
3333

3434
# TODO: use `AnyShape` instead of `Shape` once python/mypy#19110 is fixed
35-
_RankT = TypeVar("_RankT", bound=AnyShape, default=Shape)
35+
_RankT = TypeVar("_RankT", bound=AnyShape, default=AnyShape)
3636
_ScalarT = TypeVar("_ScalarT", bound=np.generic, default=Any)
3737
_NaT = TypeVar("_NaT", default=Never)
3838

src/_numtype/_nep50.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import numpy as np
99
from numpy._typing import _NestedSequence
1010

1111
from . import _shape
12+
from ._rank import Rank0
1213

1314
__all__ = [
1415
"Casts",
@@ -122,7 +123,7 @@ class _LikeArray(Protocol[_LikeT_co, _ShapeT_co]):
122123
@type_check_only
123124
class _LikeScalar(Protocol[_LikeT_co]):
124125
@property
125-
def shape(self, /) -> _shape.Shape0: ...
126+
def __inner_shape__(self, /) -> Rank0: ...
126127
@property
127128
def dtype(self, /) -> _HasType[_LikeT_co]: ...
128129

src/_numtype/_shape.pyi

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
from typing import Any, TypeAlias
1+
from typing import Any, Never, TypeAlias
22
from typing_extensions import TypeAliasType
33

44
__all__ = [
55
"AnyShape",
6+
"NeitherShape",
67
"Shape",
78
"Shape0",
89
"Shape0N",
@@ -17,8 +18,9 @@ __all__ = [
1718
"ShapeN",
1819
]
1920

20-
AnyShape = TypeAliasType("AnyShape", tuple[Any, ...])
2121
Shape = TypeAliasType("Shape", tuple[int, ...])
22+
AnyShape = TypeAliasType("AnyShape", tuple[Any, ...])
23+
NeitherShape = TypeAliasType("NeitherShape", tuple[Never, ...])
2224

2325
# TODO: remove `| Rank0` once python/mypy#19110 is fixed
2426
Shape0 = TypeAliasType("Shape0", tuple[()])

src/numpy-stubs/@test/static/accept/array_constructors.pyi

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ def func(i: int, j: int, **kwargs: object) -> MyArray[np.float64]: ...
2424
assert_type(np.array(A), _nt.Array[np.float64])
2525
assert_type(np.array(B), _nt.Array1D[np.float64])
2626
assert_type(np.array(D), _nt.Array1D[np.float64 | np.int64])
27-
assert_type(np.array([1, 1.0]), _nt.Array[Any])
28-
assert_type(np.array(deque([1, 2, 3])), _nt.Array[Any])
27+
assert_type(np.array([1, 1.0]), _nt.Array)
28+
assert_type(np.array(deque([1, 2, 3])), _nt.Array)
2929
assert_type(np.array(A, dtype=np.int64), _nt.Array[np.int64])
30-
assert_type(np.array(A, dtype="c16"), _nt.Array[Any])
30+
assert_type(np.array(A, dtype="c16"), _nt.Array)
3131
assert_type(np.array(A, like=A), _nt.Array[np.float64])
3232
assert_type(np.array(A, subok=True), _nt.Array[np.float64])
3333
assert_type(np.array(B, subok=True), MyArray[np.float64])
@@ -36,68 +36,68 @@ assert_type(np.array(B, subok=True, ndmin=1), MyArray[np.float64])
3636

3737
assert_type(np.zeros([1, 5, 6]), _nt.Array[np.float64])
3838
assert_type(np.zeros([1, 5, 6], dtype=np.int64), _nt.Array[np.int64])
39-
assert_type(np.zeros([1, 5, 6], dtype="c16"), _nt.Array[Any])
39+
assert_type(np.zeros([1, 5, 6], dtype="c16"), _nt.Array)
4040

4141
assert_type(np.empty([1, 5, 6]), _nt.Array[np.float64])
4242
assert_type(np.empty([1, 5, 6], dtype=np.int64), _nt.Array[np.int64])
43-
assert_type(np.empty([1, 5, 6], dtype="c16"), _nt.Array[Any])
43+
assert_type(np.empty([1, 5, 6], dtype="c16"), _nt.Array)
4444

4545
assert_type(np.concatenate(A), _nt.Array[np.float64])
46-
assert_type(np.concatenate([A, A]), _nt.Array[Any]) # pyright: ignore[reportAssertTypeFailure] # _nt.Array[np.float64]
47-
assert_type(np.concatenate([[1], A]), _nt.Array[Any])
48-
assert_type(np.concatenate([[1], [1]]), _nt.Array[Any])
46+
assert_type(np.concatenate([A, A]), _nt.Array[np.float64]) # type: ignore[assert-type] # mypy fail
47+
assert_type(np.concatenate([[1], A]), _nt.Array)
48+
assert_type(np.concatenate([[1], [1]]), _nt.Array)
4949
assert_type(np.concatenate((A, A)), _nt.Array[np.float64])
50-
assert_type(np.concatenate(([1], [1])), _nt.Array[Any])
51-
assert_type(np.concatenate([1, 1.0]), _nt.Array[Any])
50+
assert_type(np.concatenate(([1], [1])), _nt.Array)
51+
assert_type(np.concatenate([1, 1.0]), _nt.Array)
5252
assert_type(np.concatenate(A, dtype=np.int64), _nt.Array[np.int64])
53-
assert_type(np.concatenate(A, dtype="c16"), _nt.Array[Any])
53+
assert_type(np.concatenate(A, dtype="c16"), _nt.Array)
5454
assert_type(np.concatenate([1, 1.0], out=A), _nt.Array[np.float64])
5555

5656
assert_type(np.asarray(A), _nt.Array[np.float64])
5757
assert_type(np.asarray(B), _nt.Array1D[np.float64])
58-
assert_type(np.asarray([1, 1.0]), _nt.Array[Any])
58+
assert_type(np.asarray([1, 1.0]), _nt.Array)
5959
assert_type(np.asarray(A, dtype=np.int64), _nt.Array[np.int64])
60-
assert_type(np.asarray(A, dtype="c16"), _nt.Array[Any])
60+
assert_type(np.asarray(A, dtype="c16"), _nt.Array)
6161

6262
assert_type(np.asanyarray(A), _nt.Array[np.float64])
6363
assert_type(np.asanyarray(B), MyArray[np.float64])
64-
assert_type(np.asanyarray([1, 1.0]), _nt.Array[Any])
64+
assert_type(np.asanyarray([1, 1.0]), _nt.Array)
6565
assert_type(np.asanyarray(A, dtype=np.int64), _nt.Array[np.int64])
66-
assert_type(np.asanyarray(A, dtype="c16"), _nt.Array[Any])
66+
assert_type(np.asanyarray(A, dtype="c16"), _nt.Array)
6767

6868
assert_type(np.ascontiguousarray(A), _nt.Array[np.float64])
6969
assert_type(np.ascontiguousarray(B), _nt.Array1D[np.float64])
70-
assert_type(np.ascontiguousarray([1, 1.0]), _nt.Array[Any])
70+
assert_type(np.ascontiguousarray([1, 1.0]), _nt.Array)
7171
assert_type(np.ascontiguousarray(A, dtype=np.int64), _nt.Array[np.int64])
72-
assert_type(np.ascontiguousarray(A, dtype="c16"), _nt.Array[Any])
72+
assert_type(np.ascontiguousarray(A, dtype="c16"), _nt.Array)
7373

7474
assert_type(np.asfortranarray(A), _nt.Array[np.float64])
7575
assert_type(np.asfortranarray(B), _nt.Array1D[np.float64])
76-
assert_type(np.asfortranarray([1, 1.0]), _nt.Array[Any])
76+
assert_type(np.asfortranarray([1, 1.0]), _nt.Array)
7777
assert_type(np.asfortranarray(A, dtype=np.int64), _nt.Array[np.int64])
78-
assert_type(np.asfortranarray(A, dtype="c16"), _nt.Array[Any])
78+
assert_type(np.asfortranarray(A, dtype="c16"), _nt.Array)
7979

8080
assert_type(np.fromstring("1 1 1", sep=" "), _nt.Array[np.float64])
8181
assert_type(np.fromstring(b"1 1 1", sep=" "), _nt.Array[np.float64])
8282
assert_type(np.fromstring("1 1 1", dtype=np.int64, sep=" "), _nt.Array[np.int64])
8383
assert_type(np.fromstring(b"1 1 1", dtype=np.int64, sep=" "), _nt.Array[np.int64])
84-
assert_type(np.fromstring("1 1 1", dtype="c16", sep=" "), _nt.Array[Any])
85-
assert_type(np.fromstring(b"1 1 1", dtype="c16", sep=" "), _nt.Array[Any])
84+
assert_type(np.fromstring("1 1 1", dtype="c16", sep=" "), _nt.Array)
85+
assert_type(np.fromstring(b"1 1 1", dtype="c16", sep=" "), _nt.Array)
8686

8787
assert_type(np.fromfile("test.txt", sep=" "), _nt.Array[np.float64])
8888
assert_type(np.fromfile("test.txt", dtype=np.int64, sep=" "), _nt.Array[np.int64])
89-
assert_type(np.fromfile("test.txt", dtype="c16", sep=" "), _nt.Array[Any])
89+
assert_type(np.fromfile("test.txt", dtype="c16", sep=" "), _nt.Array)
9090
with open("test.txt", encoding="utf-8") as f:
9191
assert_type(np.fromfile(f, sep=" "), _nt.Array[np.float64])
9292
assert_type(np.fromfile(b"test.txt", sep=" "), _nt.Array[np.float64])
9393
assert_type(np.fromfile(Path("test.txt"), sep=" "), _nt.Array[np.float64])
9494

9595
assert_type(np.fromiter("12345", np.float64), _nt.Array[np.float64])
96-
assert_type(np.fromiter("12345", float), _nt.Array[Any])
96+
assert_type(np.fromiter("12345", float), _nt.Array)
9797

9898
assert_type(np.frombuffer(A), _nt.Array[np.float64])
9999
assert_type(np.frombuffer(A, dtype=np.int64), _nt.Array[np.int64])
100-
assert_type(np.frombuffer(A, dtype="c16"), _nt.Array[Any])
100+
assert_type(np.frombuffer(A, dtype="c16"), _nt.Array)
101101

102102
assert_type(np.arange(False, True), _nt.Array1D[np.int_])
103103
assert_type(np.arange(10), _nt.Array1D[np.int_])
@@ -115,7 +115,7 @@ assert_type(np.arange(0, 10, dtype="f8"), _nt.Array1D[np.float64])
115115
assert_type(np.require(A), _nt.Array[np.float64])
116116
assert_type(np.require(B), MyArray[np.float64])
117117
assert_type(np.require(B, requirements=None), MyArray[np.float64])
118-
assert_type(np.require(B, dtype=int), _nt.Array[Any])
118+
assert_type(np.require(B, dtype=int), _nt.Array)
119119
assert_type(np.require(B, requirements="E"), _nt.Array[np.float64])
120120
assert_type(np.require(B, requirements=["ENSUREARRAY"]), _nt.Array[np.float64])
121121
assert_type(np.require(B, requirements={"F", "E"}), _nt.Array[np.float64])
@@ -127,28 +127,28 @@ assert_type(np.require(C), _nt.Array[np.intp])
127127
assert_type(np.linspace(0, 10), _nt.Array[np.floating])
128128
assert_type(np.linspace(0, 10j), _nt.Array[np.inexact])
129129
assert_type(np.linspace(0, 10, dtype=np.int64), _nt.Array[np.int64])
130-
assert_type(np.linspace(0, 10, dtype=int), _nt.Array[Any])
130+
assert_type(np.linspace(0, 10, dtype=int), _nt.Array)
131131
assert_type(np.linspace(0, 10, retstep=True), tuple[_nt.Array[np.floating], np.floating])
132132
assert_type(np.linspace(0j, 10, retstep=True), tuple[_nt.Array[np.inexact], np.inexact])
133133
assert_type(np.linspace(0, 10, retstep=True, dtype=np.int64), tuple[_nt.Array[np.int64], np.int64])
134-
assert_type(np.linspace(0j, 10, retstep=True, dtype=int), tuple[_nt.Array[Any], Any])
134+
assert_type(np.linspace(0j, 10, retstep=True, dtype=int), tuple[_nt.Array, Any])
135135

136136
assert_type(np.logspace(0, 10), _nt.Array[np.floating])
137137
assert_type(np.logspace(0, 10j), _nt.Array[np.inexact])
138138
assert_type(np.logspace(0, 10, dtype=np.int64), _nt.Array[np.int64])
139-
assert_type(np.logspace(0, 10, dtype=int), _nt.Array[Any])
139+
assert_type(np.logspace(0, 10, dtype=int), _nt.Array)
140140

141141
assert_type(np.geomspace(0, 10), _nt.Array[np.floating])
142142
assert_type(np.geomspace(0, 10j), _nt.Array[np.inexact])
143143
assert_type(np.geomspace(0, 10, dtype=np.int64), _nt.Array[np.int64])
144-
assert_type(np.geomspace(0, 10, dtype=int), _nt.Array[Any])
144+
assert_type(np.geomspace(0, 10, dtype=int), _nt.Array)
145145

146146
assert_type(np.empty_like(A), _nt.Array[np.float64])
147147
assert_type(np.empty_like(A, dtype=float), _nt.Array[np.float64])
148-
assert_type(np.empty_like(A, shape=(2, 2)), _nt.Array[np.float64, _nt.Shape2])
148+
assert_type(np.empty_like(A, shape=(2, 2)), _nt.Array2D[np.float64])
149149
assert_type(np.empty_like(A, dtype=np.int64), _nt.Array[np.int64])
150150
assert_type(np.empty_like(A, dtype=np.int64, shape=(2, 2)), _nt.Array[np.int64, _nt.Shape2])
151-
assert_type(np.empty_like(A, dtype="c16"), _nt.Array[Any])
151+
assert_type(np.empty_like(A, dtype="c16"), _nt.Array)
152152
assert_type(np.empty_like(A, dtype="c16", shape=(2, 2)), np.ndarray[_nt.Shape2, np.dtype])
153153
assert_type(np.empty_like(B), MyArray[np.float64])
154154
assert_type(np.empty_like(B, dtype=np.int64), _nt.Array[np.int64])
@@ -171,10 +171,10 @@ assert_type(np.empty_like([[[4j]]]), _nt.Array3D[np.complex128])
171171

172172
assert_type(np.zeros_like(A), _nt.Array[np.float64])
173173
assert_type(np.zeros_like(A, dtype=float), _nt.Array[np.float64])
174-
assert_type(np.zeros_like(A, shape=(2, 2)), _nt.Array[np.float64, _nt.Shape2])
174+
assert_type(np.zeros_like(A, shape=(2, 2)), _nt.Array2D[np.float64])
175175
assert_type(np.zeros_like(A, dtype=np.int64), _nt.Array[np.int64])
176176
assert_type(np.zeros_like(A, dtype=np.int64, shape=(2, 2)), _nt.Array[np.int64, _nt.Shape2])
177-
assert_type(np.zeros_like(A, dtype="c16"), _nt.Array[Any])
177+
assert_type(np.zeros_like(A, dtype="c16"), _nt.Array)
178178
assert_type(np.zeros_like(A, dtype="c16", shape=(2, 2)), np.ndarray[_nt.Shape2, np.dtype])
179179
assert_type(np.zeros_like(B), MyArray[np.float64])
180180
assert_type(np.zeros_like(B, dtype=np.int64), _nt.Array[np.int64])
@@ -197,10 +197,10 @@ assert_type(np.zeros_like([[[4j]]]), _nt.Array3D[np.complex128])
197197

198198
assert_type(np.ones_like(A), _nt.Array[np.float64])
199199
assert_type(np.ones_like(A, dtype=float), _nt.Array[np.float64])
200-
assert_type(np.ones_like(A, shape=(2, 2)), _nt.Array[np.float64, _nt.Shape2])
200+
assert_type(np.ones_like(A, shape=(2, 2)), _nt.Array2D[np.float64])
201201
assert_type(np.ones_like(A, dtype=np.int64), _nt.Array[np.int64])
202202
assert_type(np.ones_like(A, dtype=np.int64, shape=(2, 2)), _nt.Array[np.int64, _nt.Shape2])
203-
assert_type(np.ones_like(A, dtype="c16"), _nt.Array[Any])
203+
assert_type(np.ones_like(A, dtype="c16"), _nt.Array)
204204
assert_type(np.ones_like(A, dtype="c16", shape=(2, 2)), np.ndarray[_nt.Shape2, np.dtype])
205205
assert_type(np.ones_like(B), MyArray[np.float64])
206206
assert_type(np.ones_like(B, dtype=np.int64), _nt.Array[np.int64])
@@ -223,7 +223,7 @@ assert_type(np.ones_like([[[4j]]]), _nt.Array3D[np.complex128])
223223

224224
assert_type(np.full_like(A, i8), _nt.Array[np.float64])
225225
assert_type(np.full_like(C, i8), _nt.Array1D[np.intp])
226-
assert_type(np.full_like(A, i8, dtype=int), _nt.Array[Any])
226+
assert_type(np.full_like(A, i8, dtype=int), _nt.Array)
227227
assert_type(np.full_like(B, i8), MyArray[np.float64])
228228
assert_type(np.full_like(B, i8, dtype=np.int64), _nt.Array[np.int64])
229229

@@ -240,8 +240,8 @@ assert_type(np.ones(_shape_2d), _nt.Array[np.float64, _nt.Shape2])
240240
assert_type(np.ones(_shape_nd), np.ndarray[_nt.Shape, np.dtype[np.float64]])
241241
assert_type(np.ones(_shape_1d, dtype=np.int64), _nt.Array1D[np.int64])
242242
assert_type(np.ones(_shape_like), _nt.Array[np.float64])
243-
assert_type(np.ones(_shape_like, dtype=np.dtypes.StringDType()), np.ndarray[Any, np.dtypes.StringDType])
244-
assert_type(np.ones(_shape_like, dtype=int), _nt.Array[Any])
243+
assert_type(np.ones(_shape_like, dtype=np.dtypes.StringDType()), np.ndarray[_nt.AnyShape, np.dtypes.StringDType])
244+
assert_type(np.ones(_shape_like, dtype=int), _nt.Array)
245245

246246
assert_type(np.full(_size, i8), _nt.Array1D[np.int64])
247247
assert_type(np.full(_shape_2d, i8), _nt.Array[np.int64, _nt.Shape2])
@@ -265,12 +265,12 @@ assert_type(np.identity(10, dtype=np.int64), _nt.Array2D[np.int64])
265265
assert_type(np.identity(10, dtype=int), _nt.Array2D)
266266

267267
assert_type(np.atleast_1d(A), _nt.Array[np.float64])
268-
assert_type(np.atleast_1d(C), _nt.Array[Any])
268+
assert_type(np.atleast_1d(C), _nt.Array)
269269
assert_type(np.atleast_1d(A, A), tuple[_nt.Array[np.float64], _nt.Array[np.float64]])
270-
assert_type(np.atleast_1d(A, C), tuple[_nt.Array[Any], _nt.Array[Any]])
271-
assert_type(np.atleast_1d(C, C), tuple[_nt.Array[Any], _nt.Array[Any]])
270+
assert_type(np.atleast_1d(A, C), tuple[_nt.Array, _nt.Array])
271+
assert_type(np.atleast_1d(C, C), tuple[_nt.Array, _nt.Array])
272272
assert_type(np.atleast_1d(A, A, A), tuple[_nt.Array[np.float64], ...])
273-
assert_type(np.atleast_1d(C, C, C), tuple[_nt.Array[Any], ...])
273+
assert_type(np.atleast_1d(C, C, C), tuple[_nt.Array, ...])
274274

275275
assert_type(np.atleast_2d(A), _nt.Array[np.float64])
276276
assert_type(np.atleast_2d(A, A), tuple[_nt.Array[np.float64], _nt.Array[np.float64]])
@@ -280,28 +280,28 @@ assert_type(np.atleast_3d(A), _nt.Array[np.float64])
280280
assert_type(np.atleast_3d(A, A), tuple[_nt.Array[np.float64], _nt.Array[np.float64]])
281281
assert_type(np.atleast_3d(A, A, A), tuple[_nt.Array[np.float64], ...])
282282

283-
assert_type(np.vstack([A, A]), _nt.Array[np.float64])
283+
assert_type(np.vstack([A, A]), _nt.Array[np.float64]) # type: ignore[assert-type] # mypy fail
284284
assert_type(np.vstack([A, A], dtype=np.float32), _nt.Array[np.float32])
285-
assert_type(np.vstack([A, C]), _nt.Array[Any])
286-
assert_type(np.vstack([C, C]), _nt.Array[Any])
285+
assert_type(np.vstack([A, C]), _nt.Array)
286+
assert_type(np.vstack([C, C]), _nt.Array)
287287

288-
assert_type(np.hstack([A, A]), _nt.Array[np.float64])
288+
assert_type(np.hstack([A, A]), _nt.Array[np.float64]) # type: ignore[assert-type] # mypy fail
289289
assert_type(np.hstack([A, A], dtype=np.float32), _nt.Array[np.float32])
290290

291-
assert_type(np.stack([A, A]), _nt.Array[np.float64])
291+
assert_type(np.stack([A, A]), _nt.Array[np.float64]) # type: ignore[assert-type] # mypy fail
292292
assert_type(np.stack([A, A], dtype=np.float32), _nt.Array[np.float32])
293-
assert_type(np.stack([A, C]), _nt.Array[Any])
294-
assert_type(np.stack([C, C]), _nt.Array[Any])
295-
assert_type(np.stack([A, A], axis=0), _nt.Array[np.float64])
293+
assert_type(np.stack([A, C]), _nt.Array)
294+
assert_type(np.stack([C, C]), _nt.Array)
295+
assert_type(np.stack([A, A], axis=0), _nt.Array[np.float64]) # type: ignore[assert-type] # mypy fail
296296
assert_type(np.stack([A, A], out=B), MyArray[np.float64])
297297

298-
assert_type(np.block([[A, A], [A, A]]), _nt.Array[Any]) # pyright: ignore[reportAssertTypeFailure] # _nt.Array[np.float64]
299-
assert_type(np.block(C), _nt.Array[Any])
298+
assert_type(np.block([[A, A], [A, A]]), _nt.Array) # pyright: ignore[reportAssertTypeFailure] # _nt.Array[np.float64]
299+
assert_type(np.block(C), _nt.Array)
300300

301301
if sys.version_info >= (3, 12):
302302
from collections.abc import Buffer
303303

304-
def create_array(obj: npt.ArrayLike) -> _nt.Array[Any]: ...
304+
def create_array(obj: npt.ArrayLike) -> _nt.Array: ...
305305

306306
buffer: Buffer
307-
assert_type(create_array(buffer), _nt.Array[Any])
307+
assert_type(create_array(buffer), _nt.Array)

0 commit comments

Comments
 (0)