Skip to content

Commit 75d653d

Browse files
authored
Merge pull request #788 from numpy:DTypeLike-no-None
🏷️ remove `None` from `DTypeLike`
2 parents 6ace9bd + 16e8dbb commit 75d653d

File tree

17 files changed

+130
-95
lines changed

17 files changed

+130
-95
lines changed

src/numpy-stubs/@test/runtime/legacy/arithmetic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
class Object:
3030
def __array__(
31-
self, dtype: npt.DTypeLike = None, *, copy: bool | None = None
31+
self, dtype: npt.DTypeLike | None = None, *, copy: bool | None = None
3232
) -> npt.NDArray[np.object_]:
3333
ret = np.empty((), dtype=np.object_)
3434
ret[()] = self

src/numpy-stubs/__init__.pyi

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,7 +1216,7 @@ class dtype(Generic[_ScalarT_co], metaclass=_DTypeMeta):
12161216
) -> Self: ...
12171217
@overload
12181218
def __new__(
1219-
cls, dtype: DTypeLike, align: py_bool = False, copy: py_bool = False, *, metadata: _MetaData = ...
1219+
cls, dtype: DTypeLike | None, align: py_bool = False, copy: py_bool = False, *, metadata: _MetaData = ...
12201220
) -> dtype: ...
12211221

12221222
#
@@ -1235,10 +1235,10 @@ class dtype(Generic[_ScalarT_co], metaclass=_DTypeMeta):
12351235
def __ne__(self, other: object, /) -> py_bool: ...
12361236

12371237
#
1238-
def __gt__(self, other: DTypeLike, /) -> py_bool: ...
1239-
def __ge__(self, other: DTypeLike, /) -> py_bool: ...
1240-
def __lt__(self, other: DTypeLike, /) -> py_bool: ...
1241-
def __le__(self, other: DTypeLike, /) -> py_bool: ...
1238+
def __gt__(self, other: DTypeLike | None, /) -> py_bool: ...
1239+
def __ge__(self, other: DTypeLike | None, /) -> py_bool: ...
1240+
def __lt__(self, other: DTypeLike | None, /) -> py_bool: ...
1241+
def __le__(self, other: DTypeLike | None, /) -> py_bool: ...
12421242

12431243
# NOTE: In the future 1-based multiplications will also yield `flexible` dtypes
12441244
@overload
@@ -1752,7 +1752,7 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeT_co, _DTypeT_co]):
17521752
def __new__(
17531753
cls,
17541754
shape: _ShapeLike,
1755-
dtype: DTypeLike = float, # noqa: PYI011
1755+
dtype: DTypeLike | None = float, # noqa: PYI011
17561756
buffer: Buffer | None = None,
17571757
offset: CanIndex = 0,
17581758
strides: _ShapeLike | None = None,
@@ -3125,7 +3125,7 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeT_co, _DTypeT_co]):
31253125
def astype(
31263126
self,
31273127
/,
3128-
dtype: DTypeLike,
3128+
dtype: DTypeLike | None,
31293129
order: _OrderKACF = "K",
31303130
casting: _CastingKind = "unsafe",
31313131
subok: py_bool = True,
@@ -3186,18 +3186,18 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeT_co, _DTypeT_co]):
31863186
@overload # (_: T)
31873187
def view(self, /, dtype: type[_ArrayT]) -> _ArrayT: ...
31883188
@overload # (dtype: ?)
3189-
def view(self, /, dtype: DTypeLike) -> ndarray[_ShapeT_co]: ...
3189+
def view(self, /, dtype: DTypeLike | None) -> ndarray[_ShapeT_co]: ...
31903190
@overload # (dtype: ?, type: type[T])
3191-
def view(self, /, dtype: DTypeLike, type: type[_ArrayT]) -> _ArrayT: ...
3191+
def view(self, /, dtype: DTypeLike | None, type: type[_ArrayT]) -> _ArrayT: ...
31923192

31933193
#
31943194
@overload
31953195
def getfield(self, /, dtype: _DTypeLike[_ScalarT], offset: CanIndex = 0) -> _nt.Array[_ScalarT]: ...
31963196
@overload
3197-
def getfield(self, /, dtype: DTypeLike, offset: CanIndex = 0) -> _nt.Array: ...
3197+
def getfield(self, /, dtype: DTypeLike | None, offset: CanIndex = 0) -> _nt.Array: ...
31983198

31993199
#
3200-
def setfield(self, val: ArrayLike, /, dtype: DTypeLike, offset: CanIndex = 0) -> None: ...
3200+
def setfield(self, val: ArrayLike, /, dtype: DTypeLike | None, offset: CanIndex = 0) -> None: ...
32013201

32023202
# keep `dtype` at the bottom to avoid shadowing
32033203
@property
@@ -3333,7 +3333,7 @@ class generic(_ArrayOrScalarCommon, Generic[_ItemT_co]):
33333333
def astype(
33343334
self,
33353335
/,
3336-
dtype: DTypeLike,
3336+
dtype: DTypeLike | None,
33373337
order: _OrderKACF = "K",
33383338
casting: _CastingKind = "unsafe",
33393339
subok: py_bool = True,
@@ -3352,15 +3352,15 @@ class generic(_ArrayOrScalarCommon, Generic[_ItemT_co]):
33523352
@overload
33533353
def view(self, /, dtype: _DTypeLike[_ScalarT], type: type[_nt.Array]) -> _ScalarT: ...
33543354
@overload
3355-
def view(self, /, dtype: DTypeLike) -> Incomplete: ...
3355+
def view(self, /, dtype: DTypeLike | None) -> Incomplete: ...
33563356
@overload
3357-
def view(self, /, dtype: DTypeLike, type: type[_nt.Array]) -> Incomplete: ...
3357+
def view(self, /, dtype: DTypeLike | None, type: type[_nt.Array]) -> Incomplete: ...
33583358

33593359
#
33603360
@overload
33613361
def getfield(self, /, dtype: _DTypeLike[_ScalarT], offset: CanIndex = 0) -> _ScalarT: ...
33623362
@overload
3363-
def getfield(self, /, dtype: DTypeLike, offset: CanIndex = 0) -> Incomplete: ...
3363+
def getfield(self, /, dtype: DTypeLike | None, offset: CanIndex = 0) -> Incomplete: ...
33643364

33653365
#
33663366
@overload
@@ -5039,7 +5039,7 @@ class void(flexible[bytes | tuple[Any, ...]]): # type: ignore[misc] # pyright:
50395039
def __getitem__(self, key: list[str], /) -> void: ...
50405040
def __setitem__(self, key: str | list[str] | CanIndex, value: ArrayLike, /) -> None: ...
50415041
@override
5042-
def setfield(self, val: ArrayLike, dtype: DTypeLike, offset: int = 0) -> None: ...
5042+
def setfield(self, val: ArrayLike, dtype: DTypeLike | None, offset: int = 0) -> None: ...
50435043

50445044
#
50455045
@property

src/numpy-stubs/_core/_multiarray_umath.pyi

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,7 @@ def empty(
518518
@overload # 1d shape, unknown dtype
519519
def empty(
520520
shape: _ShapeLike1D,
521-
dtype: npt.DTypeLike = None,
521+
dtype: npt.DTypeLike | None = None,
522522
order: _OrderCF = "C",
523523
*,
524524
device: _Device | None = None,
@@ -554,7 +554,7 @@ def empty(
554554
@overload # known shape, unknown scalar-type
555555
def empty(
556556
shape: _AnyShapeT,
557-
dtype: npt.DTypeLike = None,
557+
dtype: npt.DTypeLike | None = None,
558558
order: _OrderCF = "C",
559559
*,
560560
device: _Device | None = None,
@@ -590,7 +590,7 @@ def empty(
590590
@overload # unknown shape, unknown dtype
591591
def empty(
592592
shape: _ShapeLike,
593-
dtype: npt.DTypeLike = ...,
593+
dtype: npt.DTypeLike | None = None,
594594
order: _OrderCF = "C",
595595
*,
596596
device: _Device | None = None,
@@ -601,7 +601,7 @@ def empty(
601601
@overload # 1d shape, default dtype (float64)
602602
def zeros(
603603
shape: _ShapeLike1D,
604-
dtype: _nt.ToDTypeFloat64 = ...,
604+
dtype: _nt.ToDTypeFloat64 | None = None,
605605
order: _OrderCF = "C",
606606
*,
607607
device: _Device | None = None,
@@ -628,7 +628,7 @@ def zeros(
628628
@overload # 1d shape, unknown dtype
629629
def zeros(
630630
shape: _ShapeLike1D,
631-
dtype: npt.DTypeLike = ...,
631+
dtype: npt.DTypeLike | None = None,
632632
order: _OrderCF = "C",
633633
*,
634634
device: _Device | None = None,
@@ -664,7 +664,7 @@ def zeros(
664664
@overload # known shape, unknown scalar-type
665665
def zeros(
666666
shape: _AnyShapeT,
667-
dtype: npt.DTypeLike = ...,
667+
dtype: npt.DTypeLike | None = None,
668668
order: _OrderCF = "C",
669669
*,
670670
device: _Device | None = None,
@@ -700,7 +700,7 @@ def zeros(
700700
@overload # unknown shape, unknown dtype
701701
def zeros(
702702
shape: _ShapeLike,
703-
dtype: npt.DTypeLike = ...,
703+
dtype: npt.DTypeLike | None = None,
704704
order: _OrderCF = "C",
705705
*,
706706
device: _Device | None = None,
@@ -1350,7 +1350,7 @@ def asfortranarray(
13501350
@overload
13511351
def fromstring(
13521352
string: bytes | str,
1353-
dtype: type[_nt.JustFloat] | None = ...,
1353+
dtype: type[_nt.JustFloat] | None = float, # noqa: PYI011
13541354
count: CanIndex = -1,
13551355
*,
13561356
sep: str,
@@ -1367,11 +1367,21 @@ def fromstring(
13671367
) -> _nt.Array[_ScalarT]: ...
13681368
@overload
13691369
def fromstring(
1370-
string: bytes | str, dtype: npt.DTypeLike = ..., count: CanIndex = -1, *, sep: str, like: _nt.Array[_ScalarT]
1370+
string: bytes | str,
1371+
dtype: npt.DTypeLike | None = float, # noqa: PYI011
1372+
count: CanIndex = -1,
1373+
*,
1374+
sep: str,
1375+
like: _nt.Array[_ScalarT],
13711376
) -> _nt.Array[_ScalarT]: ...
13721377
@overload
13731378
def fromstring(
1374-
string: bytes | str, dtype: npt.DTypeLike, count: CanIndex = -1, *, sep: str, like: _CanArrayFunc | None = None
1379+
string: bytes | str,
1380+
dtype: npt.DTypeLike | None,
1381+
count: CanIndex = -1,
1382+
*,
1383+
sep: str,
1384+
like: _CanArrayFunc | None = None,
13751385
) -> _nt.Array[Incomplete]: ...
13761386

13771387
#
@@ -1392,7 +1402,7 @@ def fromfile(
13921402
@overload
13931403
def fromfile(
13941404
file: _ToFile,
1395-
dtype: npt.DTypeLike,
1405+
dtype: npt.DTypeLike | None,
13961406
count: CanIndex = -1,
13971407
sep: str = "",
13981408
offset: CanIndex = 0,
@@ -1407,7 +1417,7 @@ def fromiter(
14071417
) -> _nt.Array[_ScalarT]: ...
14081418
@overload
14091419
def fromiter(
1410-
iter: Iterable[object], dtype: npt.DTypeLike, count: CanIndex = -1, *, like: _CanArrayFunc | None = None
1420+
iter: Iterable[object], dtype: npt.DTypeLike | None, count: CanIndex = -1, *, like: _CanArrayFunc | None = None
14111421
) -> _nt.Array[Incomplete]: ...
14121422

14131423
#
@@ -1427,7 +1437,7 @@ def frombuffer(
14271437
@overload
14281438
def frombuffer(
14291439
buffer: Buffer,
1430-
dtype: npt.DTypeLike,
1440+
dtype: npt.DTypeLike | None,
14311441
count: CanIndex = -1,
14321442
offset: CanIndex = 0,
14331443
*,
@@ -1650,10 +1660,12 @@ def shares_memory(a: object, b: object, /, max_work: L[0, -1] = -1) -> bool: ...
16501660
def may_share_memory(a: object, b: object, /, max_work: L[0, -1] = 0) -> bool: ...
16511661

16521662
#
1653-
def can_cast(from_: npt.ArrayLike | npt.DTypeLike, to: npt.DTypeLike, casting: _CastingKind = "safe") -> bool: ...
1663+
def can_cast(
1664+
from_: npt.ArrayLike | npt.DTypeLike | None, to: npt.DTypeLike | None, casting: _CastingKind = "safe"
1665+
) -> bool: ...
16541666
def min_scalar_type(a: npt.ArrayLike, /) -> np.dtype[Incomplete]: ...
1655-
def result_type(*arrays_and_dtypes: npt.ArrayLike | npt.DTypeLike) -> np.dtype[Incomplete]: ...
1656-
def promote_types(type1: npt.DTypeLike, type2: npt.DTypeLike, /) -> np.dtype[Incomplete]: ...
1667+
def result_type(*arrays_and_dtypes: npt.ArrayLike | npt.DTypeLike | None) -> np.dtype[Incomplete]: ...
1668+
def promote_types(type1: npt.DTypeLike | None, type2: npt.DTypeLike | None, /) -> np.dtype[Incomplete]: ...
16571669

16581670
#
16591671
@overload
@@ -2011,4 +2023,4 @@ def _make_extobj() -> CapsuleType: ...
20112023
def _monotonicity(x: _nt.CoFloating_nd) -> L[0, 1]: ...
20122024
def _place(input: npt.ArrayLike, mask: _nt.ToBool_nd, vals: npt.ArrayLike) -> None: ...
20132025
def _reconstruct(subtype: type[_nt.Array], shape: _AnyShapeT, dtype: _DTypeT) -> np.ndarray[_AnyShapeT, _DTypeT]: ...
2014-
def _vec_string(a: _ArrayLikeAnyString_co, dtype: npt.DTypeLike, attr: str, /) -> _nt.Array[Incomplete]: ...
2026+
def _vec_string(a: _ArrayLikeAnyString_co, dtype: npt.DTypeLike | None, attr: str, /) -> _nt.Array[Incomplete]: ...

src/numpy-stubs/_core/function_base.pyi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def linspace(
7171
num: SupportsIndex = 50,
7272
endpoint: bool = True,
7373
retstep: L[False] = False,
74-
dtype: DTypeLike = ...,
74+
dtype: DTypeLike | None = None,
7575
axis: SupportsIndex = 0,
7676
*,
7777
device: _Device | None = None,
@@ -120,7 +120,7 @@ def linspace(
120120
endpoint: bool = True,
121121
*,
122122
retstep: L[True],
123-
dtype: DTypeLike = ...,
123+
dtype: DTypeLike | None = None,
124124
axis: SupportsIndex = 0,
125125
device: _Device | None = None,
126126
) -> tuple[_nt.Array[Incomplete], Incomplete]: ...
@@ -174,7 +174,7 @@ def logspace(
174174
num: SupportsIndex = 50,
175175
endpoint: bool = True,
176176
base: _ArrayLikeNumber_co = 10.0,
177-
dtype: DTypeLike = ...,
177+
dtype: DTypeLike | None = None,
178178
axis: SupportsIndex = 0,
179179
) -> _nt.Array[Incomplete]: ...
180180

src/numpy-stubs/_core/memmap.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class memmap(np.ndarray[_ShapeT_co, _DType_co], Generic[_ShapeT_co, _DType_co]):
8181
def __new__(
8282
subtype,
8383
filename: _ToFileName,
84-
dtype: npt.DTypeLike,
84+
dtype: npt.DTypeLike | None,
8585
mode: _ToMode = "r+",
8686
offset: int = 0,
8787
shape: int | tuple[int, ...] | None = None,

0 commit comments

Comments
 (0)