From d03a906ed6d220fb9a359c51bf8413dfb3012a49 Mon Sep 17 00:00:00 2001 From: Bas van Beek Date: Sun, 30 Aug 2020 00:45:55 +0200 Subject: ENH,WIP: Added type hints to `np.core._asarray` --- numpy/core/_asarray.pyi | 70 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 numpy/core/_asarray.pyi (limited to 'numpy/core/_asarray.pyi') diff --git a/numpy/core/_asarray.pyi b/numpy/core/_asarray.pyi new file mode 100644 index 000000000..bcfc5dbd1 --- /dev/null +++ b/numpy/core/_asarray.pyi @@ -0,0 +1,70 @@ +import sys +from typing import TypeVar, Optional, Union, Iterable, Tuple, overload + +from numpy import ndarray +from numpy.typing import ArrayLike, DtypeLike + +if sys.version_info >= (3, 8): + from typing import Literal +else: + from typing_extensions import Literal + +_ArrayType = TypeVar("_ArrayType", bound=ndarray) + +def asarray( + a: object, + dtype: DtypeLike = ..., + order: Optional[str] = ..., + *, + like: ArrayLike = ... +) -> ndarray: ... +@overload +def asanyarray( + a: _ArrayType, + dtype: None = ..., + order: Optional[str] = ..., + *, + like: ArrayLike = ... +) -> _ArrayType: ... +@overload +def asanyarray( + a: object, + dtype: DtypeLike = ..., + order: Optional[str] = ..., + *, + like: ArrayLike = ... +) -> ndarray: ... +def ascontiguousarray( + a: object, dtype: DtypeLike = ..., *, like: ArrayLike = ... +) -> ndarray: ... +def asfortranarray( + a: object, dtype: DtypeLike = ..., *, like: ArrayLike = ... +) -> ndarray: ... + +_Requirements = Literal["F", "C", "A", "W", "O"] +_E = Literal["E"] + +@overload +def require( + a: object, + dtype: DtypeLike = ..., + requirements: Union[_E, Iterable[Union[_E, _Requirements]]] = ..., + *, + like: ArrayLike = ... +) -> ndarray: ... +@overload +def require( + a: _ArrayType, + dtype: None = ..., + requirements: Union[None, _Requirements, Iterable[_Requirements]] = ..., + *, + like: ArrayLike = ... +) -> _ArrayType: ... +@overload +def require( + a: object, + dtype: DtypeLike = ..., + requirements: Union[None, _Requirements, Iterable[_Requirements]] = ..., + *, + like: ArrayLike = ... +) -> ndarray: ... -- cgit v1.2.1 From abe1429ee329571b640bf2b59b9be361e4f84c86 Mon Sep 17 00:00:00 2001 From: Bas van Beek Date: Sun, 30 Aug 2020 00:49:55 +0200 Subject: ENH: Use literals where possible --- numpy/core/_asarray.pyi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'numpy/core/_asarray.pyi') diff --git a/numpy/core/_asarray.pyi b/numpy/core/_asarray.pyi index bcfc5dbd1..57081b760 100644 --- a/numpy/core/_asarray.pyi +++ b/numpy/core/_asarray.pyi @@ -1,7 +1,7 @@ import sys from typing import TypeVar, Optional, Union, Iterable, Tuple, overload -from numpy import ndarray +from numpy import ndarray, _OrderKACF from numpy.typing import ArrayLike, DtypeLike if sys.version_info >= (3, 8): @@ -14,7 +14,7 @@ _ArrayType = TypeVar("_ArrayType", bound=ndarray) def asarray( a: object, dtype: DtypeLike = ..., - order: Optional[str] = ..., + order: _OrderKACF = ..., *, like: ArrayLike = ... ) -> ndarray: ... @@ -22,7 +22,7 @@ def asarray( def asanyarray( a: _ArrayType, dtype: None = ..., - order: Optional[str] = ..., + order: _OrderKACF = ..., *, like: ArrayLike = ... ) -> _ArrayType: ... @@ -30,7 +30,7 @@ def asanyarray( def asanyarray( a: object, dtype: DtypeLike = ..., - order: Optional[str] = ..., + order: _OrderKACF = ..., *, like: ArrayLike = ... ) -> ndarray: ... -- cgit v1.2.1 From 97c221685fd4a8773bfe24e974a59cca6babf8c5 Mon Sep 17 00:00:00 2001 From: Bas van Beek Date: Wed, 16 Sep 2020 11:45:36 +0200 Subject: MAINT: Minor fixes; removed unused imports --- numpy/core/_asarray.pyi | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'numpy/core/_asarray.pyi') diff --git a/numpy/core/_asarray.pyi b/numpy/core/_asarray.pyi index 57081b760..5eb5dac36 100644 --- a/numpy/core/_asarray.pyi +++ b/numpy/core/_asarray.pyi @@ -1,5 +1,5 @@ import sys -from typing import TypeVar, Optional, Union, Iterable, Tuple, overload +from typing import TypeVar, Union, Iterable, overload from numpy import ndarray, _OrderKACF from numpy.typing import ArrayLike, DtypeLike @@ -41,17 +41,15 @@ def asfortranarray( a: object, dtype: DtypeLike = ..., *, like: ArrayLike = ... ) -> ndarray: ... -_Requirements = Literal["F", "C", "A", "W", "O"] -_E = Literal["E"] +_Requirements = Literal[ + "C", "C_CONTIGUOUS", "CONTIGUOUS", + "F", "F_CONTIGUOUS", "FORTRAN", + "A", "ALIGNED", + "W", "WRITEABLE", + "O", "OWNDATA" +] +_E = Literal["E", "ENSUREARRAY"] -@overload -def require( - a: object, - dtype: DtypeLike = ..., - requirements: Union[_E, Iterable[Union[_E, _Requirements]]] = ..., - *, - like: ArrayLike = ... -) -> ndarray: ... @overload def require( a: _ArrayType, @@ -61,6 +59,14 @@ def require( like: ArrayLike = ... ) -> _ArrayType: ... @overload +def require( + a: object, + dtype: DtypeLike = ..., + requirements: Union[_E, Iterable[Union[_E, _Requirements]]] = ..., + *, + like: ArrayLike = ... +) -> ndarray: ... +@overload def require( a: object, dtype: DtypeLike = ..., -- cgit v1.2.1 From 7794d059f3531965b05cc11052376d3930d1c518 Mon Sep 17 00:00:00 2001 From: Bas van Beek Date: Wed, 16 Sep 2020 12:59:50 +0200 Subject: ENH: Add an alias for `Union[_Requirements, _E]` Addresses https://github.com/numpy/numpy/pull/17326#discussion_r489322146 --- numpy/core/_asarray.pyi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'numpy/core/_asarray.pyi') diff --git a/numpy/core/_asarray.pyi b/numpy/core/_asarray.pyi index 5eb5dac36..e074d69d2 100644 --- a/numpy/core/_asarray.pyi +++ b/numpy/core/_asarray.pyi @@ -49,6 +49,7 @@ _Requirements = Literal[ "O", "OWNDATA" ] _E = Literal["E", "ENSUREARRAY"] +_RequirementsWithE = Union[_Requirements, _E] @overload def require( @@ -62,7 +63,7 @@ def require( def require( a: object, dtype: DtypeLike = ..., - requirements: Union[_E, Iterable[Union[_E, _Requirements]]] = ..., + requirements: Union[_E, Iterable[_RequirementsWithE]] = ..., *, like: ArrayLike = ... ) -> ndarray: ... -- cgit v1.2.1 From c4684bb542db2690e678d22bf32745e484ef04e3 Mon Sep 17 00:00:00 2001 From: Bas van Beek Date: Tue, 3 Nov 2020 13:08:58 +0100 Subject: MAINT: Rename `DtypeLike` to `DTypeLike` --- numpy/core/_asarray.pyi | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'numpy/core/_asarray.pyi') diff --git a/numpy/core/_asarray.pyi b/numpy/core/_asarray.pyi index e074d69d2..8c200ba22 100644 --- a/numpy/core/_asarray.pyi +++ b/numpy/core/_asarray.pyi @@ -2,7 +2,7 @@ import sys from typing import TypeVar, Union, Iterable, overload from numpy import ndarray, _OrderKACF -from numpy.typing import ArrayLike, DtypeLike +from numpy.typing import ArrayLike, DTypeLike if sys.version_info >= (3, 8): from typing import Literal @@ -13,7 +13,7 @@ _ArrayType = TypeVar("_ArrayType", bound=ndarray) def asarray( a: object, - dtype: DtypeLike = ..., + dtype: DTypeLike = ..., order: _OrderKACF = ..., *, like: ArrayLike = ... @@ -29,16 +29,16 @@ def asanyarray( @overload def asanyarray( a: object, - dtype: DtypeLike = ..., + dtype: DTypeLike = ..., order: _OrderKACF = ..., *, like: ArrayLike = ... ) -> ndarray: ... def ascontiguousarray( - a: object, dtype: DtypeLike = ..., *, like: ArrayLike = ... + a: object, dtype: DTypeLike = ..., *, like: ArrayLike = ... ) -> ndarray: ... def asfortranarray( - a: object, dtype: DtypeLike = ..., *, like: ArrayLike = ... + a: object, dtype: DTypeLike = ..., *, like: ArrayLike = ... ) -> ndarray: ... _Requirements = Literal[ @@ -62,7 +62,7 @@ def require( @overload def require( a: object, - dtype: DtypeLike = ..., + dtype: DTypeLike = ..., requirements: Union[_E, Iterable[_RequirementsWithE]] = ..., *, like: ArrayLike = ... @@ -70,7 +70,7 @@ def require( @overload def require( a: object, - dtype: DtypeLike = ..., + dtype: DTypeLike = ..., requirements: Union[None, _Requirements, Iterable[_Requirements]] = ..., *, like: ArrayLike = ... -- cgit v1.2.1