diff --git a/src/numpy-stubs/@test/runtime/legacy/multiarray.py b/src/numpy-stubs/@test/runtime/legacy/multiarray.py index 26cedfd7..eefb8c0e 100644 --- a/src/numpy-stubs/@test/runtime/legacy/multiarray.py +++ b/src/numpy-stubs/@test/runtime/legacy/multiarray.py @@ -70,7 +70,7 @@ np.unpackbits(AR_u1) np.shares_memory(1, 2) -np.shares_memory(AR_f8, AR_f8, max_work=1) +np.shares_memory(AR_f8, AR_f8, max_work=-1) np.may_share_memory(1, 2) -np.may_share_memory(AR_f8, AR_f8, max_work=1) +np.may_share_memory(AR_f8, AR_f8, max_work=-1) diff --git a/src/numpy-stubs/@test/static/accept/array_constructors.pyi b/src/numpy-stubs/@test/static/accept/array_constructors.pyi index 889d12e7..da95966d 100644 --- a/src/numpy-stubs/@test/static/accept/array_constructors.pyi +++ b/src/numpy-stubs/@test/static/accept/array_constructors.pyi @@ -102,15 +102,15 @@ assert_type(np.frombuffer(A, dtype="c16"), _nt.Array) assert_type(np.arange(False, True), _nt.Array1D[np.int_]) assert_type(np.arange(10), _nt.Array1D[np.int_]) assert_type(np.arange(0, 10, step=2), _nt.Array1D[np.int_]) -assert_type(np.arange(10.0), _nt.Array1D[np.float64]) -assert_type(np.arange(start=0, stop=10.0), _nt.Array1D[np.float64]) -assert_type(np.arange(np.timedelta64(0)), _nt.Array1D[np.timedelta64]) -assert_type(np.arange(0, np.timedelta64(10)), _nt.Array1D[np.timedelta64]) -assert_type(np.arange(np.datetime64("0"), np.datetime64("10")), _nt.Array1D[np.datetime64]) -assert_type(np.arange(10, dtype=np.float64), _nt.Array1D[np.float64]) +assert_type(np.arange(10.0), _nt.Array1D[np.float64 | Any]) +assert_type(np.arange(0, stop=10.0), _nt.Array1D[np.float64 | Any]) +assert_type(np.arange(np.timedelta64(0)), _nt.Array1D[np.timedelta64[Any]]) +assert_type(np.arange(0, np.timedelta64(10)), _nt.Array1D[np.timedelta64[Any]]) +assert_type(np.arange(np.datetime64("0"), np.datetime64("10")), _nt.Array1D[np.datetime64[Any]]) +assert_type(np.arange(10, dtype=np.float64), _nt.Array1D[np.float64 | Any]) assert_type(np.arange(0, 10, step=2, dtype=np.int16), _nt.Array1D[np.int16]) assert_type(np.arange(10, dtype=int), _nt.Array1D[np.int_]) -assert_type(np.arange(0, 10, dtype="f8"), _nt.Array1D[np.float64]) +assert_type(np.arange(0, 10, dtype="f8"), _nt.Array1D[Any]) assert_type(np.require(A), _nt.Array[np.float64]) assert_type(np.require(B), MyArray[np.float64]) diff --git a/src/numpy-stubs/@test/static/accept/multiarray.pyi b/src/numpy-stubs/@test/static/accept/multiarray.pyi index 5ecf7b0e..d2c5db78 100644 --- a/src/numpy-stubs/@test/static/accept/multiarray.pyi +++ b/src/numpy-stubs/@test/static/accept/multiarray.pyi @@ -101,10 +101,10 @@ assert_type(np.packbits(AR_u1), _nt.Array[np.uint8]) assert_type(np.unpackbits(AR_u1), _nt.Array[np.uint8]) assert_type(np.shares_memory(1, 2), bool) -assert_type(np.shares_memory(AR_f8, AR_f8, max_work=1), bool) +assert_type(np.shares_memory(AR_f8, AR_f8, max_work=-1), bool) assert_type(np.may_share_memory(1, 2), bool) -assert_type(np.may_share_memory(AR_f8, AR_f8, max_work=1), bool) +assert_type(np.may_share_memory(AR_f8, AR_f8, max_work=-1), bool) assert_type(np.promote_types(np.int32, np.int64), np.dtype) assert_type(np.promote_types("f4", float), np.dtype) diff --git a/src/numpy-stubs/@test/static/reject/multiarray.pyi b/src/numpy-stubs/@test/static/reject/multiarray.pyi index 9cdd390d..6a6213e7 100644 --- a/src/numpy-stubs/@test/static/reject/multiarray.pyi +++ b/src/numpy-stubs/@test/static/reject/multiarray.pyi @@ -16,7 +16,7 @@ def func(a: int) -> None: ... ### -np.where(AR_b, 1) # type: ignore[call-overload] # pyright: ignore[reportCallIssue] +np.where(AR_b, 1) # type: ignore[call-overload] # pyright: ignore[reportArgumentType] np.can_cast(AR_f8, 1) # type: ignore[arg-type] # pyright: ignore[reportArgumentType] @@ -35,8 +35,6 @@ np.unpackbits(AR_u1, bitorder=">") # type: ignore[arg-type] # pyright: ignore[ np.shares_memory(1, 1, max_work=i8) # type: ignore[arg-type] # pyright: ignore[reportArgumentType] np.may_share_memory(1, 1, max_work=i8) # type: ignore[arg-type] # pyright: ignore[reportArgumentType] -np.arange(M) # type: ignore[call-overload] # pyright: ignore[reportArgumentType, reportCallIssue] - np.datetime_data(int) # type: ignore[arg-type] # pyright: ignore[reportArgumentType] np.datetime_as_string("2012") # type: ignore[call-overload] # pyright: ignore[reportArgumentType, reportCallIssue] diff --git a/src/numpy-stubs/_core/_multiarray_umath.pyi b/src/numpy-stubs/_core/_multiarray_umath.pyi index 03e8cad9..78c2a6c4 100644 --- a/src/numpy-stubs/_core/_multiarray_umath.pyi +++ b/src/numpy-stubs/_core/_multiarray_umath.pyi @@ -21,7 +21,7 @@ from typing import ( overload, type_check_only, ) -from typing_extensions import Buffer, CapsuleType, TypeAliasType, TypeVar, Unpack, deprecated +from typing_extensions import Buffer, CapsuleType, TypeAliasType, TypeVar, deprecated import _numtype as _nt import numpy as np @@ -177,30 +177,6 @@ class _HasDoc(Protocol): ### -@type_check_only -class _KwargsD(TypedDict, total=False): - device: _Device | None - -@type_check_only -class _KwargsL(TypedDict, total=False): - like: _CanArrayFunc | None - -@type_check_only -class _KwargsCL(TypedDict, total=False): - copy: _Copy | None - like: _CanArrayFunc | None - -@type_check_only -class _KwargsDL(TypedDict, total=False): - device: _Device | None - like: _CanArrayFunc | None - -@type_check_only -class _KwargsDCL(TypedDict, total=False): - device: _Device | None - copy: _Copy | None - like: _CanArrayFunc | None - @type_check_only class _ExtObjDict(TypedDict): divide: _ExtObjValue @@ -364,11 +340,13 @@ class flatiter(Generic[_ArrayT_co]): # @overload - def __array__(self: flatiter[_nt.Array[_ScalarT]], dtype: None = None, /) -> _nt.Array1D[_ScalarT]: ... + def __array__( + self: flatiter[_nt.Array[_ScalarT]], dtype: None = None, /, *, copy: None = None + ) -> _nt.Array1D[_ScalarT]: ... @overload - def __array__(self, dtype: _DTypeLike[_ScalarT], /) -> _nt.Array1D[_ScalarT]: ... + def __array__(self, dtype: _DTypeLike[_ScalarT], /, *, copy: None = None) -> _nt.Array1D[_ScalarT]: ... @overload - def __array__(self, dtype: npt.DTypeLike | None = None, /) -> _nt.Array1D[Incomplete]: ... + def __array__(self, dtype: npt.DTypeLike | None = None, /, *, copy: None = None) -> _nt.Array1D[Incomplete]: ... @final class nditer: @@ -512,107 +490,228 @@ def get_handler_version(a: _nt.Array = ..., /) -> int | None: ... # NOTE: Keep in sync with `zeros` and `.numeric.ones` @overload # 1d shape, default dtype (float64) def empty( - shape: _ShapeLike1D, dtype: _nt.ToDTypeFloat64 = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike1D, + dtype: _nt.ToDTypeFloat64 | None = None, + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array1D[np.float64]: ... @overload # 1d shape, known dtype def empty( - shape: _ShapeLike1D, dtype: _DTypeT | _HasDType[_DTypeT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike1D, + dtype: _DTypeT | _HasDType[_DTypeT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> np.ndarray[_nt.Rank1, _DTypeT]: ... @overload # 1d shape, known scalar-type def empty( - shape: _ShapeLike1D, dtype: _DTypeLike[_ScalarT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike1D, + dtype: _DTypeLike[_ScalarT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array1D[_ScalarT]: ... @overload # 1d shape, unknown dtype def empty( - shape: _ShapeLike1D, dtype: npt.DTypeLike = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike1D, + dtype: npt.DTypeLike = None, + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array1D[Incomplete]: ... @overload # known shape, default dtype (float64) def empty( - shape: _AnyShapeT, dtype: _nt.ToDTypeFloat64 = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _AnyShapeT, + dtype: _nt.ToDTypeFloat64 | None = None, + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[np.float64, _AnyShapeT]: ... @overload # known shape, known dtype (mypy reports a false positive) def empty( # type: ignore[overload-overlap] - shape: _AnyShapeT, dtype: _DTypeT | _HasDType[_DTypeT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _AnyShapeT, + dtype: _DTypeT | _HasDType[_DTypeT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> np.ndarray[_AnyShapeT, _DTypeT]: ... @overload # known shape, known scalar-type def empty( - shape: _AnyShapeT, dtype: _DTypeLike[_ScalarT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _AnyShapeT, + dtype: _DTypeLike[_ScalarT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT, _AnyShapeT]: ... @overload # known shape, unknown scalar-type def empty( - shape: _AnyShapeT, dtype: npt.DTypeLike = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _AnyShapeT, + dtype: npt.DTypeLike = None, + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[Incomplete, _AnyShapeT]: ... @overload # unknown shape, default dtype def empty( - shape: _ShapeLike, dtype: _nt.ToDTypeFloat64 = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike, + dtype: _nt.ToDTypeFloat64 | None = None, + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[np.float64]: ... @overload # unknown shape, known dtype def empty( - shape: _ShapeLike, dtype: _DTypeT | _HasDType[_DTypeT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike, + dtype: _DTypeT | _HasDType[_DTypeT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> np.ndarray[Incomplete, _DTypeT]: ... @overload # unknown shape, known scalar-type def empty( - shape: _ShapeLike, dtype: _DTypeLike[_ScalarT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike, + dtype: _DTypeLike[_ScalarT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload # unknown shape, unknown dtype def empty( - shape: _ShapeLike, dtype: npt.DTypeLike = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike, + dtype: npt.DTypeLike = ..., + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[Incomplete]: ... # NOTE: Keep in sync with `empty` (below) and `numpy._core.numeric.ones` @overload # 1d shape, default dtype (float64) def zeros( - shape: _ShapeLike1D, dtype: _nt.ToDTypeFloat64 = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike1D, + dtype: _nt.ToDTypeFloat64 = ..., + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array1D[np.float64]: ... @overload # 1d shape, known dtype def zeros( - shape: _ShapeLike1D, dtype: _DTypeT | _HasDType[_DTypeT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike1D, + dtype: _DTypeT | _HasDType[_DTypeT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> np.ndarray[_nt.Rank1, _DTypeT]: ... @overload # 1d shape, known scalar-type def zeros( - shape: _ShapeLike1D, dtype: _DTypeLike[_ScalarT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike1D, + dtype: _DTypeLike[_ScalarT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array1D[_ScalarT]: ... @overload # 1d shape, unknown dtype def zeros( - shape: _ShapeLike1D, dtype: npt.DTypeLike = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike1D, + dtype: npt.DTypeLike = ..., + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array1D[Incomplete]: ... @overload # known shape, default dtype (float64) def zeros( - shape: _AnyShapeT, dtype: _nt.ToDTypeFloat64 = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _AnyShapeT, + dtype: _nt.ToDTypeFloat64 = ..., + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[np.float64, _AnyShapeT]: ... @overload # known shape, known dtype (mypy reports a false positive) def zeros( # type: ignore[overload-overlap] - shape: _AnyShapeT, dtype: _DTypeT | _HasDType[_DTypeT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _AnyShapeT, + dtype: _DTypeT | _HasDType[_DTypeT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> np.ndarray[_AnyShapeT, _DTypeT]: ... @overload # known shape, known scalar-type def zeros( - shape: _AnyShapeT, dtype: _DTypeLike[_ScalarT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _AnyShapeT, + dtype: _DTypeLike[_ScalarT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT, _AnyShapeT]: ... @overload # known shape, unknown scalar-type def zeros( - shape: _AnyShapeT, dtype: npt.DTypeLike = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _AnyShapeT, + dtype: npt.DTypeLike = ..., + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[Incomplete, _AnyShapeT]: ... @overload # unknown shape, default dtype def zeros( - shape: _ShapeLike, dtype: _nt.ToDTypeFloat64 = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike, + dtype: _nt.ToDTypeFloat64 = ..., + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[np.float64]: ... @overload # unknown shape, known dtype def zeros( - shape: _ShapeLike, dtype: _DTypeT | _HasDType[_DTypeT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike, + dtype: _DTypeT | _HasDType[_DTypeT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> np.ndarray[Incomplete, _DTypeT]: ... @overload # unknown shape, known scalar-type def zeros( - shape: _ShapeLike, dtype: _DTypeLike[_ScalarT], order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike, + dtype: _DTypeLike[_ScalarT], + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload # unknown shape, unknown dtype def zeros( - shape: _ShapeLike, dtype: npt.DTypeLike = ..., order: _OrderCF = "C", **kwargs: Unpack[_KwargsDL] + shape: _ShapeLike, + dtype: npt.DTypeLike = ..., + order: _OrderCF = "C", + *, + device: _Device | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[Incomplete]: ... # NOTE: Keep in sync with `.numeric.{zeros,ones}_like` (all 30 overloads...) @overload # known array, subok=True def empty_like( prototype: _ArrayT, + /, dtype: None = None, order: _OrderKACF = "K", subok: L[True] = True, @@ -623,6 +722,7 @@ def empty_like( @overload # array-like with known shape and type def empty_like( prototype: _CanArray[np.ndarray[_ShapeT, _DTypeT]], + /, dtype: _DTypeT | _HasDType[_DTypeT] | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -633,6 +733,7 @@ def empty_like( @overload # workaround for microsoft/pyright#10232 def empty_like( prototype: _nt._ToArray_nnd[np.bool_], + /, dtype: _nt.ToDTypeBool | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -643,6 +744,7 @@ def empty_like( @overload # bool 0d array-like def empty_like( prototype: _nt.ToBool_0d, + /, dtype: _nt.ToDTypeBool | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -653,6 +755,7 @@ def empty_like( @overload # bool 1d array-like def empty_like( prototype: _nt.ToBool_1ds, + /, dtype: _nt.ToDTypeBool | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -663,6 +766,7 @@ def empty_like( @overload # bool 2d array-like def empty_like( prototype: _nt.ToBool_2ds, + /, dtype: _nt.ToDTypeBool | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -673,6 +777,7 @@ def empty_like( @overload # bool 3d array-like def empty_like( prototype: _nt.ToBool_3ds, + /, dtype: _nt.ToDTypeBool | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -683,6 +788,7 @@ def empty_like( @overload # workaround for microsoft/pyright#10232 def empty_like( # type: ignore[overload-overlap] # python/mypy#19908 prototype: _nt._ToArray_nnd[np.intp], + /, dtype: _nt.ToDTypeInt64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -693,6 +799,7 @@ def empty_like( # type: ignore[overload-overlap] # python/mypy#19908 @overload # int 0d array-like def empty_like( prototype: _nt.ToInt_0d, + /, dtype: _nt.ToDTypeInt64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -703,6 +810,7 @@ def empty_like( @overload # int 1d array-like def empty_like( prototype: _nt.ToInt_1ds, + /, dtype: _nt.ToDTypeInt64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -713,6 +821,7 @@ def empty_like( @overload # int 2d array-like def empty_like( prototype: _nt.ToInt_2ds, + /, dtype: _nt.ToDTypeInt64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -723,6 +832,7 @@ def empty_like( @overload # int 3d array-like def empty_like( prototype: _nt.ToInt_3ds, + /, dtype: _nt.ToDTypeInt64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -733,6 +843,7 @@ def empty_like( @overload # workaround for microsoft/pyright#10232 def empty_like( # type: ignore[overload-overlap] # python/mypy#19908 prototype: _nt._ToArray_nnd[np.float64], + /, dtype: _nt.ToDTypeFloat64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -743,6 +854,7 @@ def empty_like( # type: ignore[overload-overlap] # python/mypy#19908 @overload # float 0d array-like def empty_like( prototype: _nt.ToFloat64_0d, + /, dtype: _nt.ToDTypeFloat64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -753,6 +865,7 @@ def empty_like( @overload # float 1d array-like def empty_like( prototype: _nt.ToFloat64_1ds, + /, dtype: _nt.ToDTypeFloat64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -763,6 +876,7 @@ def empty_like( @overload # float 2d array-like def empty_like( prototype: _nt.ToFloat64_2ds, + /, dtype: _nt.ToDTypeFloat64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -773,6 +887,7 @@ def empty_like( @overload # float 3d array-like def empty_like( prototype: _nt.ToFloat64_3ds, + /, dtype: _nt.ToDTypeFloat64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -783,6 +898,7 @@ def empty_like( @overload # complex 0d array-like def empty_like( prototype: _nt.ToComplex128_0d, + /, dtype: _nt.ToDTypeComplex128 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -793,6 +909,7 @@ def empty_like( @overload # workaround for microsoft/pyright#10232 def empty_like( prototype: _nt._ToArray_nnd[np.complex128], + /, dtype: _nt.ToDTypeComplex128 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -803,6 +920,7 @@ def empty_like( @overload # complex 1d array-like def empty_like( prototype: _nt.ToComplex128_1ds, + /, dtype: _nt.ToDTypeComplex128 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -813,6 +931,7 @@ def empty_like( @overload # complex 2d array-like def empty_like( prototype: _nt.ToComplex128_2ds, + /, dtype: _nt.ToDTypeComplex128 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -823,6 +942,7 @@ def empty_like( @overload # complex 3d array-like def empty_like( prototype: _nt.ToComplex128_3ds, + /, dtype: _nt.ToDTypeComplex128 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -833,6 +953,7 @@ def empty_like( @overload # array-like with known scalar-type, given shape def empty_like( # type: ignore[overload-overlap] prototype: _ArrayLike[_ScalarT], + /, dtype: np.dtype[_ScalarT] | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -843,6 +964,7 @@ def empty_like( # type: ignore[overload-overlap] @overload # array-like with known scalar-type, unknown shape def empty_like( prototype: _ArrayLike[_ScalarT], + /, dtype: np.dtype[_ScalarT] | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -853,6 +975,7 @@ def empty_like( @overload # given shape, given dtype def empty_like( # type: ignore[overload-overlap] prototype: object, + /, dtype: _DTypeT | _HasDType[_DTypeT], order: _OrderKACF = "K", subok: bool = True, @@ -863,6 +986,7 @@ def empty_like( # type: ignore[overload-overlap] @overload # unknown shape, given dtype def empty_like( prototype: object, + /, dtype: _DTypeT | _HasDType[_DTypeT], order: _OrderKACF = "K", subok: bool = True, @@ -873,6 +997,7 @@ def empty_like( @overload # given shape, given scalar-type def empty_like( prototype: object, + /, dtype: _DTypeLike[_ScalarT], order: _OrderKACF = "K", subok: bool = True, @@ -883,6 +1008,7 @@ def empty_like( @overload # unknown shape, given scalar-type def empty_like( prototype: object, + /, dtype: _DTypeLike[_ScalarT], order: _OrderKACF = "K", subok: bool = True, @@ -893,6 +1019,7 @@ def empty_like( @overload # bool array-like def empty_like( prototype: _nt.ToBool_nd, + /, dtype: _nt.ToDTypeBool | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -903,6 +1030,7 @@ def empty_like( @overload # int array-like def empty_like( prototype: _nt.ToInt_nd, + /, dtype: _nt.ToDTypeInt64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -913,6 +1041,7 @@ def empty_like( @overload # float array-like def empty_like( prototype: _nt.ToFloat64_nd, + /, dtype: _nt.ToDTypeFloat64 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -923,6 +1052,7 @@ def empty_like( @overload # complex array-like def empty_like( prototype: _nt.ToComplex128_nd, + /, dtype: _nt.ToDTypeComplex128 | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -933,6 +1063,7 @@ def empty_like( @overload # given shape, unknown scalar-type def empty_like( prototype: object, + /, dtype: npt.DTypeLike | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -943,6 +1074,7 @@ def empty_like( @overload # unknown shape, unknown scalar-type def empty_like( prototype: object, + /, dtype: npt.DTypeLike | None = None, order: _OrderKACF = "K", subok: bool = True, @@ -960,7 +1092,9 @@ def array( order: _OrderKACF = "K", subok: L[True], ndmin: L[0] = 0, - **kwargs: Unpack[_KwargsCL], + ndmax: int = 0, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _ArrayT: ... @overload def array( @@ -970,7 +1104,9 @@ def array( order: _OrderKACF = "K", subok: L[True], ndmin: L[0, 1] = 0, - **kwargs: Unpack[_KwargsCL], + ndmax: int = 0, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _Array1T: ... @overload def array( @@ -980,7 +1116,9 @@ def array( order: _OrderKACF = "K", subok: L[True], ndmin: L[0, 1, 2] = 0, - **kwargs: Unpack[_KwargsCL], + ndmax: int = 0, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _Array2T: ... @overload def array( @@ -990,7 +1128,9 @@ def array( order: _OrderKACF = "K", subok: bool = False, ndmin: L[0] = 0, - **kwargs: Unpack[_KwargsCL], + ndmax: int = 0, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> np.ndarray[_ShapeT, _DTypeT]: ... @overload def array( @@ -1000,7 +1140,9 @@ def array( order: _OrderKACF = "K", subok: bool = False, ndmin: int = 0, - **kwargs: Unpack[_KwargsCL], + ndmax: int = 0, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload def array( @@ -1010,7 +1152,8 @@ def array( order: _OrderKACF = "K", subok: bool = False, ndmin: L[0] = 0, - **kwargs: Unpack[_KwargsCL], + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array0D[_ScalarT]: ... @overload def array( @@ -1020,7 +1163,9 @@ def array( order: _OrderKACF = "K", subok: bool = False, ndmin: L[0] = 0, - **kwargs: Unpack[_KwargsCL], + ndmax: int = 0, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array0D[Incomplete]: ... @overload def array( @@ -1030,7 +1175,9 @@ def array( order: _OrderKACF = "K", subok: bool = False, ndmin: int = 0, - **kwargs: Unpack[_KwargsCL], + ndmax: int = 0, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload def array( @@ -1040,7 +1187,9 @@ def array( order: _OrderKACF = "K", subok: bool = False, ndmin: int = 0, - **kwargs: Unpack[_KwargsCL], + ndmax: int = 0, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[Incomplete]: ... # @@ -1049,81 +1198,152 @@ def asarray( a: _CanArray[np.ndarray[_ShapeT, _DTypeT]], dtype: None = None, order: _OrderKACF = None, - **kwargs: Unpack[_KwargsDCL], + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> np.ndarray[_ShapeT, _DTypeT]: ... @overload def asarray( - a: _ArrayLike[_ScalarT], dtype: None = None, order: _OrderKACF = None, **kwargs: Unpack[_KwargsDCL] + a: _ArrayLike[_ScalarT], + dtype: None = None, + order: _OrderKACF = None, + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload def asarray( - a: _ScalarLike_co, dtype: _DTypeLike[_ScalarT], order: _OrderKACF = None, **kwargs: Unpack[_KwargsDCL] + a: _ScalarLike_co, + dtype: _DTypeLike[_ScalarT], + order: _OrderKACF = None, + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array0D[_ScalarT]: ... @overload def asarray( - a: _ScalarLike_co, dtype: npt.DTypeLike | None = None, order: _OrderKACF = None, **kwargs: Unpack[_KwargsDCL] + a: _ScalarLike_co, + dtype: npt.DTypeLike | None = None, + order: _OrderKACF = None, + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array0D[Incomplete]: ... @overload def asarray( - a: object, dtype: _DTypeLike[_ScalarT], order: _OrderKACF = None, **kwargs: Unpack[_KwargsDCL] + a: object, + dtype: _DTypeLike[_ScalarT], + order: _OrderKACF = None, + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload def asarray( - a: object, dtype: npt.DTypeLike | None = None, order: _OrderKACF = None, **kwargs: Unpack[_KwargsDCL] + a: object, + dtype: npt.DTypeLike | None = None, + order: _OrderKACF = None, + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[Incomplete]: ... # @overload -def asanyarray(a: _ArrayT, dtype: None = None, order: _OrderKACF = None, **kwargs: Unpack[_KwargsDCL]) -> _ArrayT: ... +def asanyarray( + a: _ArrayT, + dtype: None = None, + order: _OrderKACF = None, + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, +) -> _ArrayT: ... @overload def asanyarray( - a: _CanArray[_ArrayT], dtype: None = None, order: _OrderKACF = None, **kwargs: Unpack[_KwargsDCL] + a: _CanArray[_ArrayT], + dtype: None = None, + order: _OrderKACF = None, + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _ArrayT: ... @overload def asanyarray( - a: _ArrayLike[_ScalarT], dtype: None = None, order: _OrderKACF = None, **kwargs: Unpack[_KwargsDCL] + a: _ArrayLike[_ScalarT], + dtype: None = None, + order: _OrderKACF = None, + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload def asanyarray( - a: object, dtype: _DTypeLike[_ScalarT], order: _OrderKACF = None, **kwargs: Unpack[_KwargsDCL] + a: object, + dtype: _DTypeLike[_ScalarT], + order: _OrderKACF = None, + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload def asanyarray( - a: object, dtype: npt.DTypeLike | None = None, order: _OrderKACF = None, **kwargs: Unpack[_KwargsDCL] + a: object, + dtype: npt.DTypeLike | None = None, + order: _OrderKACF = None, + *, + device: _Device | None = None, + copy: _Copy | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array[Incomplete]: ... # keep in sync with asfortranarray @overload def ascontiguousarray( - a: _CanArray[_nt.Array[_ScalarT, _ShapeT]], dtype: None = None, **kwargs: Unpack[_KwargsL] + a: _CanArray[_nt.Array[_ScalarT, _ShapeT]], dtype: None = None, *, like: _CanArrayFunc | None = None ) -> _nt.Array[_ScalarT, _ShapeT]: ... @overload def ascontiguousarray( - a: _ArrayLike[_ScalarT], dtype: None = None, **kwargs: Unpack[_KwargsL] + a: _ArrayLike[_ScalarT], dtype: None = None, *, like: _CanArrayFunc | None = None ) -> _nt.Array[_ScalarT]: ... @overload def ascontiguousarray(a: object, dtype: None = None, *, like: _nt.Array[_ScalarT]) -> _nt.Array[_ScalarT]: ... @overload -def ascontiguousarray(a: object, dtype: _DTypeLike[_ScalarT], **kwargs: Unpack[_KwargsL]) -> _nt.Array[_ScalarT]: ... +def ascontiguousarray( + a: object, dtype: _DTypeLike[_ScalarT], *, like: _CanArrayFunc | None = None +) -> _nt.Array[_ScalarT]: ... @overload def ascontiguousarray( - a: object, dtype: npt.DTypeLike | None = None, **kwargs: Unpack[_KwargsL] + a: object, dtype: npt.DTypeLike | None = None, *, like: _CanArrayFunc | None = None ) -> _nt.Array[Incomplete]: ... # keep in sync with ascontiguousarray @overload def asfortranarray( - a: _CanArray[_nt.Array[_ScalarT, _ShapeT]], dtype: None = None, **kwargs: Unpack[_KwargsL] + a: _CanArray[_nt.Array[_ScalarT, _ShapeT]], dtype: None = None, *, like: _CanArrayFunc | None = None ) -> _nt.Array[_ScalarT, _ShapeT]: ... @overload -def asfortranarray(a: _ArrayLike[_ScalarT], dtype: None = None, **kwargs: Unpack[_KwargsL]) -> _nt.Array[_ScalarT]: ... +def asfortranarray( + a: _ArrayLike[_ScalarT], dtype: None = None, *, like: _CanArrayFunc | None = None +) -> _nt.Array[_ScalarT]: ... @overload def asfortranarray(a: object, dtype: None = None, *, like: _nt.Array[_ScalarT]) -> _nt.Array[_ScalarT]: ... @overload -def asfortranarray(a: object, dtype: _DTypeLike[_ScalarT], **kwargs: Unpack[_KwargsL]) -> _nt.Array[_ScalarT]: ... +def asfortranarray( + a: object, dtype: _DTypeLike[_ScalarT], *, like: _CanArrayFunc | None = None +) -> _nt.Array[_ScalarT]: ... @overload def asfortranarray( - a: object, dtype: npt.DTypeLike | None = None, **kwargs: Unpack[_KwargsL] + a: object, dtype: npt.DTypeLike | None = None, *, like: _CanArrayFunc | None = None ) -> _nt.Array[Incomplete]: ... # `sep` is a de facto mandatory argument, as its default value is deprecated @@ -1134,11 +1354,16 @@ def fromstring( count: CanIndex = -1, *, sep: str, - **kwargs: Unpack[_KwargsL], + like: _CanArrayFunc | None = None, ) -> _nt.Array[np.float64]: ... @overload def fromstring( - string: bytes | str, dtype: _DTypeLike[_ScalarT], count: CanIndex = -1, *, sep: str, **kwargs: Unpack[_KwargsL] + string: bytes | str, + dtype: _DTypeLike[_ScalarT], + count: CanIndex = -1, + *, + sep: str, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload def fromstring( @@ -1146,13 +1371,13 @@ def fromstring( ) -> _nt.Array[_ScalarT]: ... @overload def fromstring( - string: bytes | str, dtype: npt.DTypeLike, count: CanIndex = -1, *, sep: str, **kwargs: Unpack[_KwargsL] + string: bytes | str, dtype: npt.DTypeLike, count: CanIndex = -1, *, sep: str, like: _CanArrayFunc | None = None ) -> _nt.Array[Incomplete]: ... # @overload def fromfile( - file: _ToFile, *, count: CanIndex = -1, sep: str = "", offset: CanIndex = 0, **kwargs: Unpack[_KwargsL] + file: _ToFile, *, count: CanIndex = -1, sep: str = "", offset: CanIndex = 0, like: _CanArrayFunc | None = None ) -> _nt.Array[np.float64]: ... @overload def fromfile( @@ -1161,7 +1386,8 @@ def fromfile( count: CanIndex = -1, sep: str = "", offset: CanIndex = 0, - **kwargs: Unpack[_KwargsL], + *, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload def fromfile( @@ -1170,124 +1396,141 @@ def fromfile( count: CanIndex = -1, sep: str = "", offset: CanIndex = 0, - **kwargs: Unpack[_KwargsL], + *, + like: _CanArrayFunc | None = None, ) -> _nt.Array[Incomplete]: ... # @overload def fromiter( - iter: Iterable[object], dtype: _DTypeLike[_ScalarT], count: CanIndex = -1, **kwargs: Unpack[_KwargsL] + iter: Iterable[object], dtype: _DTypeLike[_ScalarT], count: CanIndex = -1, *, like: _CanArrayFunc | None = None ) -> _nt.Array[_ScalarT]: ... @overload def fromiter( - iter: Iterable[object], dtype: npt.DTypeLike, count: CanIndex = -1, **kwargs: Unpack[_KwargsL] + iter: Iterable[object], dtype: npt.DTypeLike, count: CanIndex = -1, *, like: _CanArrayFunc | None = None ) -> _nt.Array[Incomplete]: ... # @overload def frombuffer( - buffer: Buffer, *, count: CanIndex = -1, offset: CanIndex = 0, **kwargs: Unpack[_KwargsL] + buffer: Buffer, *, count: CanIndex = -1, offset: CanIndex = 0, like: _CanArrayFunc | None = None ) -> _nt.Array[np.float64]: ... @overload def frombuffer( - buffer: Buffer, dtype: _DTypeLike[_ScalarT], count: CanIndex = -1, offset: CanIndex = 0, **kwargs: Unpack[_KwargsL] + buffer: Buffer, + dtype: _DTypeLike[_ScalarT], + count: CanIndex = -1, + offset: CanIndex = 0, + *, + like: _CanArrayFunc | None = None, ) -> _nt.Array[_ScalarT]: ... @overload def frombuffer( - buffer: Buffer, dtype: npt.DTypeLike, count: CanIndex = -1, offset: CanIndex = 0, **kwargs: Unpack[_KwargsL] + buffer: Buffer, + dtype: npt.DTypeLike, + count: CanIndex = -1, + offset: CanIndex = 0, + *, + like: _CanArrayFunc | None = None, ) -> _nt.Array[Incomplete]: ... # -def from_dlpack(x: _CanDLPack, /, *, copy: py_bool | None = None, **kwargs: Unpack[_KwargsD]) -> _nt.Array: ... +def from_dlpack(x: _CanDLPack, /, *, copy: py_bool | None = None, device: _Device | None = None) -> _nt.Array: ... ### +_ArangeScalar: TypeAlias = np.integer | np.floating | np.datetime64 | np.timedelta64 +_ArangeScalarT = TypeVar("_ArangeScalarT", bound=_ArangeScalar) + # -@overload # (stop, dtype=_) -def arange(stop: object, *, dtype: _DTypeLike[_ScalarT], **kwargs: Unpack[_KwargsDL]) -> _nt.Array1D[_ScalarT]: ... -@overload # (start, stop step, dtype) -def arange( - start: object, stop: object, step: object, dtype: _DTypeLike[_ScalarT], **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[_ScalarT]: ... -@overload # (start, stop, step?, dtype=) -def arange( - start: object, stop: object, step: object = ..., *, dtype: _DTypeLike[_ScalarT], **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[_ScalarT]: ... -@overload # (stop: int) -def arange( - stop: int | np.intp, *, dtype: _nt.ToDTypeInt64 | None = None, **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[np.intp]: ... -@overload # (start: int, stop: int, step?: int) -def arange( - start: int | np.intp, - stop: int | np.intp, - step: int | np.intp = ..., - dtype: _nt.ToDTypeInt64 | None = None, - **kwargs: Unpack[_KwargsDL], -) -> _nt.Array1D[np.intp]: ... -@overload # (stop: float, dtype=f64-like) -def arange(stop: float, *, dtype: _nt.ToDTypeFloat64, **kwargs: Unpack[_KwargsDL]) -> _nt.Array1D[np.float64]: ... -@overload # (start: float, stop: float, step?: float, dtype=f64-like) +# NOTE: The `float64 | Any` return types needed to avoid incompatible overlapping overloads +@overload # (int-like, int-like?, int-like?) def arange( - start: float, stop: float, step: float = ..., *, dtype: _nt.ToDTypeFloat64, **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[np.float64]: ... -@overload # (start: float, stop: float, step: float, dtype=f64-like) -def arange( - start: float, stop: float, step: float, dtype: _nt.ToDTypeFloat64, **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[np.float64]: ... -@overload # (stop: float) -def arange( - stop: _nt.JustFloat, *, dtype: _nt.ToDTypeFloat64 | None = None, **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[np.float64]: ... -@overload # (start: float, stop: float, step?: float) -def arange( - start: _nt.JustFloat, - stop: float, - step: float = ..., - dtype: _nt.ToDTypeFloat64 | None = None, - **kwargs: Unpack[_KwargsDL], -) -> _nt.Array1D[np.float64]: ... -@overload # (start: float, stop: float, step?: float) -def arange( - start: float, - stop: _nt.JustFloat, - step: float = ..., - dtype: _nt.ToDTypeFloat64 | None = None, - **kwargs: Unpack[_KwargsDL], -) -> _nt.Array1D[np.float64]: ... -@overload # int-like -def arange(stop: _ToInt, *, dtype: None = None, **kwargs: Unpack[_KwargsDL]) -> _nt.Array1D[np.signedinteger]: ... -@overload # int-like + start_or_stop: _ToInt, + /, + stop: _ToInt | None = None, + step: _ToInt | None = 1, + *, + dtype: type[int] | _DTypeLike[np.int_] | None = None, + device: L["cpu"] | None = None, + like: _CanArrayFunc | None = None, +) -> _nt.Array1D[np.int_]: ... +@overload # (float, float-like?, float-like?) def arange( - start: _ToInt, stop: _ToInt, step: _ToInt = ..., dtype: None = None, **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[np.signedinteger]: ... -@overload # float-like + start_or_stop: float | np.floating, + /, + stop: _ToFloat | None = None, + step: _ToFloat | None = 1, + *, + dtype: type[float] | _DTypeLike[np.float64] | None = None, + device: L["cpu"] | None = None, + like: _CanArrayFunc | None = None, +) -> _nt.Array1D[np.float64 | Any]: ... +@overload # (float-like, float, float-like?) def arange( - stop: _ToFloat, *, dtype: None = None, **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[np.floating | np.signedinteger]: ... -@overload # float-like + start_or_stop: _ToFloat, + /, + stop: float | np.floating, + step: _ToFloat | None = 1, + *, + dtype: type[float] | _DTypeLike[np.float64] | None = None, + device: L["cpu"] | None = None, + like: _CanArrayFunc | None = None, +) -> _nt.Array1D[np.float64 | Any]: ... +@overload # (timedelta, timedelta-like?, timedelta-like?) def arange( - start: _ToFloat, stop: _ToFloat, step: _ToFloat = ..., dtype: None = None, **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[np.floating | np.signedinteger]: ... -@overload # timedelta64 -def arange(stop: np.timedelta64, *, dtype: None = None, **kwargs: Unpack[_KwargsDL]) -> _nt.Array1D[np.timedelta64]: ... -@overload # timedelta64 + start_or_stop: np.timedelta64, + /, + stop: _ToTD64 | None = None, + step: _ToTD64 | None = 1, + *, + dtype: _DTypeLike[np.timedelta64] | None = None, + device: L["cpu"] | None = None, + like: _CanArrayFunc | None = None, +) -> _nt.Array1D[np.timedelta64[Incomplete]]: ... +@overload # (timedelta-like, timedelta, timedelta-like?) def arange( - start: _ToTD64, stop: np.timedelta64, step: _ToTD64 = ..., dtype: None = None, **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[np.timedelta64]: ... -@overload # timedelta64 + start_or_stop: _ToTD64, + /, + stop: np.timedelta64, + step: _ToTD64 | None = 1, + *, + dtype: _DTypeLike[np.timedelta64] | None = None, + device: L["cpu"] | None = None, + like: _CanArrayFunc | None = None, +) -> _nt.Array1D[np.timedelta64[Incomplete]]: ... +@overload # (datetime, datetime, timedelta-like) (requires both start and stop) def arange( - start: np.timedelta64, stop: _ToTD64, step: _ToTD64 = ..., dtype: None = None, **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[np.timedelta64]: ... -@overload # datetime64 (requires both start and stop) + start_or_stop: np.datetime64, + /, + stop: np.datetime64, + step: _ToTD64 | None = 1, + *, + dtype: _DTypeLike[np.datetime64] | None = None, + device: L["cpu"] | None = None, + like: _CanArrayFunc | None = None, +) -> _nt.Array1D[np.datetime64[Incomplete]]: ... +@overload # dtype= def arange( - start: np.datetime64, stop: np.datetime64, step: _ToDT64 = ..., dtype: None = None, **kwargs: Unpack[_KwargsDL] -) -> _nt.Array1D[np.datetime64]: ... -@overload # fallback -def arange(stop: object, *, dtype: npt.DTypeLike, **kwargs: Unpack[_KwargsDL]) -> _nt.Array1D[Incomplete]: ... -@overload # fallback + start_or_stop: _ArangeScalar | float, + /, + stop: _ArangeScalar | float | None = None, + step: _ArangeScalar | float | None = 1, + *, + dtype: _DTypeLike[_ArangeScalarT], + device: L["cpu"] | None = None, + like: _CanArrayFunc | None = None, +) -> _nt.Array1D[_ArangeScalarT]: ... +@overload # dtype= def arange( - start: object, stop: object, step: object = ..., dtype: npt.DTypeLike | None = None, **kwargs: Unpack[_KwargsDL] + start_or_stop: _ArangeScalar | float, + /, + stop: _ArangeScalar | float | None = None, + step: _ArangeScalar | float | None = 1, + *, + dtype: npt.DTypeLike | None = None, + device: L["cpu"] | None = None, + like: _CanArrayFunc | None = None, ) -> _nt.Array1D[Incomplete]: ... ### @@ -1363,11 +1606,11 @@ def packbits( ) -> _nt.Array[np.uint8]: ... # -def copyto(dst: _nt.Array, src: npt.ArrayLike, casting: _CastingKind = "same_kind") -> None: ... +def copyto(dst: _nt.Array, src: npt.ArrayLike, casting: _CastingKind = "same_kind", where: object = True) -> None: ... # @overload -def where(condition: npt.ArrayLike, /) -> tuple[_nt.Array[np.intp], ...]: ... +def where(condition: npt.ArrayLike, x: None = None, y: None = None, /) -> tuple[_nt.Array[np.intp], ...]: ... @overload def where(condition: npt.ArrayLike, x: _ArrayLike[_ScalarT], y: _ArrayLike[_ScalarT], /) -> _nt.Array[_ScalarT]: ... @overload @@ -1403,11 +1646,11 @@ def ravel_multi_index( ### # -def shares_memory(a: object, b: object, /, max_work: L[0, 1] | None = None) -> bool: ... -def may_share_memory(a: object, b: object, /, max_work: L[0, 1] | None = None) -> bool: ... -def can_cast(from_: npt.ArrayLike | npt.DTypeLike, to: npt.DTypeLike, casting: _CastingKind = "safe") -> bool: ... +def shares_memory(a: object, b: object, /, max_work: L[0, -1] = -1) -> bool: ... +def may_share_memory(a: object, b: object, /, max_work: L[0, -1] = 0) -> bool: ... # +def can_cast(from_: npt.ArrayLike | npt.DTypeLike, to: npt.DTypeLike, casting: _CastingKind = "safe") -> bool: ... def min_scalar_type(a: npt.ArrayLike, /) -> np.dtype[Incomplete]: ... def result_type(*arrays_and_dtypes: npt.ArrayLike | npt.DTypeLike) -> np.dtype[Incomplete]: ... def promote_types(type1: npt.DTypeLike, type2: npt.DTypeLike, /) -> np.dtype[Incomplete]: ... diff --git a/tool/allowlists/todo.txt b/tool/allowlists/todo.txt index 69c57276..98660e00 100644 --- a/tool/allowlists/todo.txt +++ b/tool/allowlists/todo.txt @@ -12,20 +12,6 @@ numpy._core._methods.umr_maximum numpy._core._methods.umr_minimum numpy._core._methods.umr_prod numpy._core._methods.umr_sum -numpy._core._multiarray_umath.arange -numpy._core._multiarray_umath.array -numpy._core._multiarray_umath.asanyarray -numpy._core._multiarray_umath.asarray -numpy._core._multiarray_umath.ascontiguousarray -numpy._core._multiarray_umath.asfortranarray -numpy._core._multiarray_umath.empty -numpy._core._multiarray_umath.empty_like -numpy._core._multiarray_umath.flatiter.__array__ -numpy._core._multiarray_umath.from_dlpack -numpy._core._multiarray_umath.frombuffer -numpy._core._multiarray_umath.fromfile -numpy._core._multiarray_umath.fromiter -numpy._core._multiarray_umath.zeros numpy._core._type_aliases.abstract_type numpy._core._type_aliases.base_name numpy._core._type_aliases.bits @@ -40,172 +26,54 @@ numpy._core._type_aliases.sctype_list numpy._core._type_aliases.type_group numpy._core._type_aliases.type_info numpy._core._type_aliases.v -numpy._core.arange -numpy._core.array numpy._core.array2string numpy._core.arrayprint.array2string -numpy._core.asanyarray -numpy._core.asarray -numpy._core.ascontiguousarray -numpy._core.asfortranarray -numpy._core.copyto numpy._core.defchararray.chararray.argsort numpy._core.dtype.__new__ -numpy._core.empty -numpy._core.empty_like numpy._core.finfo.smallest_normal -numpy._core.flatiter.__array__ -numpy._core.from_dlpack -numpy._core.frombuffer -numpy._core.fromfile -numpy._core.fromiter numpy._core.fromnumeric.reshape numpy._core.getlimits.finfo.smallest_normal -numpy._core.may_share_memory -numpy._core.multiarray.arange -numpy._core.multiarray.array -numpy._core.multiarray.asanyarray -numpy._core.multiarray.asarray -numpy._core.multiarray.ascontiguousarray -numpy._core.multiarray.asfortranarray -numpy._core.multiarray.copyto numpy._core.multiarray.dtype.__new__ -numpy._core.multiarray.empty -numpy._core.multiarray.empty_like -numpy._core.multiarray.flatiter.__array__ -numpy._core.multiarray.from_dlpack -numpy._core.multiarray.frombuffer -numpy._core.multiarray.fromfile -numpy._core.multiarray.fromiter -numpy._core.multiarray.may_share_memory -numpy._core.multiarray.shares_memory -numpy._core.multiarray.where -numpy._core.multiarray.zeros -numpy._core.numeric.arange -numpy._core.numeric.array numpy._core.numeric.array2string -numpy._core.numeric.asanyarray -numpy._core.numeric.asarray -numpy._core.numeric.ascontiguousarray -numpy._core.numeric.asfortranarray -numpy._core.numeric.copyto numpy._core.numeric.dtype.__new__ -numpy._core.numeric.empty -numpy._core.numeric.empty_like -numpy._core.numeric.flatiter.__array__ -numpy._core.numeric.from_dlpack -numpy._core.numeric.frombuffer -numpy._core.numeric.fromfile -numpy._core.numeric.fromiter -numpy._core.numeric.may_share_memory numpy._core.numeric.object_.__new__ numpy._core.numeric.reshape -numpy._core.numeric.shares_memory numpy._core.numeric.ufunc.__signature__ numpy._core.numeric.void.__new__ -numpy._core.numeric.where -numpy._core.numeric.zeros numpy._core.numerictypes.object_.__new__ numpy._core.numerictypes.void.__new__ numpy._core.object_.__new__ numpy._core.reshape -numpy._core.shares_memory numpy._core.strings.slice numpy._core.ufunc.__signature__ numpy._core.umath.__all__ numpy._core.void.__new__ -numpy._core.where -numpy._core.zeros -numpy.arange -numpy.array numpy.array2string -numpy.asanyarray -numpy.asarray -numpy.ascontiguousarray -numpy.asfortranarray numpy.char.chararray.argsort -numpy.copyto numpy.core._internal._ctypes.get_as_parameter numpy.core._internal._ctypes.get_data numpy.core._internal._ctypes.get_shape numpy.core._internal._ctypes.get_strides -numpy.core._multiarray_umath.arange -numpy.core._multiarray_umath.array -numpy.core._multiarray_umath.asanyarray -numpy.core._multiarray_umath.asarray -numpy.core._multiarray_umath.ascontiguousarray -numpy.core._multiarray_umath.asfortranarray -numpy.core._multiarray_umath.empty -numpy.core._multiarray_umath.empty_like -numpy.core._multiarray_umath.flatiter.__array__ -numpy.core._multiarray_umath.from_dlpack -numpy.core._multiarray_umath.frombuffer -numpy.core._multiarray_umath.fromfile -numpy.core._multiarray_umath.fromiter -numpy.core._multiarray_umath.zeros numpy.core.arrayprint.array2string numpy.core.defchararray.chararray.argsort numpy.core.fromnumeric.reshape numpy.core.getlimits.finfo.smallest_normal -numpy.core.multiarray.arange -numpy.core.multiarray.array -numpy.core.multiarray.asanyarray -numpy.core.multiarray.asarray -numpy.core.multiarray.ascontiguousarray -numpy.core.multiarray.asfortranarray -numpy.core.multiarray.copyto numpy.core.multiarray.dtype.__new__ -numpy.core.multiarray.empty -numpy.core.multiarray.empty_like -numpy.core.multiarray.flatiter.__array__ -numpy.core.multiarray.from_dlpack -numpy.core.multiarray.frombuffer -numpy.core.multiarray.fromfile -numpy.core.multiarray.fromiter -numpy.core.multiarray.may_share_memory -numpy.core.multiarray.shares_memory -numpy.core.multiarray.where -numpy.core.multiarray.zeros -numpy.core.numeric.arange -numpy.core.numeric.array numpy.core.numeric.array2string -numpy.core.numeric.asanyarray -numpy.core.numeric.asarray -numpy.core.numeric.ascontiguousarray -numpy.core.numeric.asfortranarray -numpy.core.numeric.copyto numpy.core.numeric.dtype.__new__ -numpy.core.numeric.empty -numpy.core.numeric.empty_like -numpy.core.numeric.flatiter.__array__ -numpy.core.numeric.from_dlpack -numpy.core.numeric.frombuffer -numpy.core.numeric.fromfile -numpy.core.numeric.fromiter -numpy.core.numeric.may_share_memory numpy.core.numeric.object_.__new__ numpy.core.numeric.reshape -numpy.core.numeric.shares_memory numpy.core.numeric.ufunc.__signature__ numpy.core.numeric.void.__new__ -numpy.core.numeric.where -numpy.core.numeric.zeros numpy.core.numerictypes.object_.__new__ numpy.core.numerictypes.void.__new__ numpy.core.umath.__all__ numpy.core.umath.matmul numpy.corrcoef numpy.dtype.__new__ -numpy.empty -numpy.empty_like numpy.f2py._backends._meson.MesonTemplate.objects_substitution numpy.fft.helper numpy.finfo.smallest_normal -numpy.flatiter.__array__ -numpy.from_dlpack -numpy.frombuffer -numpy.fromfile -numpy.fromiter numpy.in1d numpy.lib._arraysetops_impl.__all__ numpy.lib._arraysetops_impl.in1d @@ -329,47 +197,27 @@ numpy.ma.var numpy.ma.vstack numpy.ma.zeros numpy.ma.zeros_like -numpy.matlib.arange -numpy.matlib.array numpy.matlib.array2string -numpy.matlib.asanyarray -numpy.matlib.asarray -numpy.matlib.ascontiguousarray -numpy.matlib.asfortranarray -numpy.matlib.copyto numpy.matlib.corrcoef numpy.matlib.dtype.__new__ -numpy.matlib.empty_like numpy.matlib.finfo.smallest_normal -numpy.matlib.flatiter.__array__ -numpy.matlib.from_dlpack -numpy.matlib.frombuffer -numpy.matlib.fromfile -numpy.matlib.fromiter numpy.matlib.in1d -numpy.matlib.may_share_memory numpy.matlib.nanpercentile numpy.matlib.ndindex.ndincr numpy.matlib.object_.__new__ numpy.matlib.percentile numpy.matlib.reshape numpy.matlib.save -numpy.matlib.shares_memory numpy.matlib.trapz numpy.matlib.ufunc.__signature__ numpy.matlib.void.__new__ -numpy.matlib.where -numpy.may_share_memory numpy.nanpercentile numpy.ndindex.ndincr numpy.object_.__new__ numpy.percentile numpy.reshape numpy.save -numpy.shares_memory numpy.strings.slice numpy.trapz numpy.ufunc.__signature__ numpy.void.__new__ -numpy.where -numpy.zeros