diff options
Diffstat (limited to 'numpy/typing/_array_like.py')
-rw-r--r-- | numpy/typing/_array_like.py | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/numpy/typing/_array_like.py b/numpy/typing/_array_like.py deleted file mode 100644 index 02f264222..000000000 --- a/numpy/typing/_array_like.py +++ /dev/null @@ -1,143 +0,0 @@ -from __future__ import annotations - -# NOTE: Import `Sequence` from `typing` as we it is needed for a type-alias, -# not an annotation -from collections.abc import Collection, Callable -from typing import Any, Sequence, Protocol, Union, TypeVar -from numpy import ( - ndarray, - dtype, - generic, - bool_, - unsignedinteger, - integer, - floating, - complexfloating, - number, - timedelta64, - datetime64, - object_, - void, - str_, - bytes_, -) -from ._nested_sequence import _NestedSequence - -_T = TypeVar("_T") -_ScalarType = TypeVar("_ScalarType", bound=generic) -_DType = TypeVar("_DType", bound="dtype[Any]") -_DType_co = TypeVar("_DType_co", covariant=True, bound="dtype[Any]") - -# The `_SupportsArray` protocol only cares about the default dtype -# (i.e. `dtype=None` or no `dtype` parameter at all) of the to-be returned -# array. -# Concrete implementations of the protocol are responsible for adding -# any and all remaining overloads -class _SupportsArray(Protocol[_DType_co]): - def __array__(self) -> ndarray[Any, _DType_co]: ... - - -class _SupportsArrayFunc(Protocol): - """A protocol class representing `~class.__array_function__`.""" - def __array_function__( - self, - func: Callable[..., Any], - types: Collection[type[Any]], - args: tuple[Any, ...], - kwargs: dict[str, Any], - ) -> object: ... - - -# TODO: Wait until mypy supports recursive objects in combination with typevars -_FiniteNestedSequence = Union[ - _T, - Sequence[_T], - Sequence[Sequence[_T]], - Sequence[Sequence[Sequence[_T]]], - Sequence[Sequence[Sequence[Sequence[_T]]]], -] - -# A subset of `npt.ArrayLike` that can be parametrized w.r.t. `np.generic` -_ArrayLike = Union[ - _SupportsArray["dtype[_ScalarType]"], - _NestedSequence[_SupportsArray["dtype[_ScalarType]"]], -] - -# A union representing array-like objects; consists of two typevars: -# One representing types that can be parametrized w.r.t. `np.dtype` -# and another one for the rest -_DualArrayLike = Union[ - _SupportsArray[_DType], - _NestedSequence[_SupportsArray[_DType]], - _T, - _NestedSequence[_T], -] - -# TODO: support buffer protocols once -# -# https://bugs.python.org/issue27501 -# -# is resolved. See also the mypy issue: -# -# https://github.com/python/typing/issues/593 -ArrayLike = _DualArrayLike[ - dtype, - Union[bool, int, float, complex, str, bytes], -] - -# `ArrayLike<X>_co`: array-like objects that can be coerced into `X` -# given the casting rules `same_kind` -_ArrayLikeBool_co = _DualArrayLike[ - "dtype[bool_]", - bool, -] -_ArrayLikeUInt_co = _DualArrayLike[ - "dtype[Union[bool_, unsignedinteger[Any]]]", - bool, -] -_ArrayLikeInt_co = _DualArrayLike[ - "dtype[Union[bool_, integer[Any]]]", - Union[bool, int], -] -_ArrayLikeFloat_co = _DualArrayLike[ - "dtype[Union[bool_, integer[Any], floating[Any]]]", - Union[bool, int, float], -] -_ArrayLikeComplex_co = _DualArrayLike[ - "dtype[Union[bool_, integer[Any], floating[Any], complexfloating[Any, Any]]]", - Union[bool, int, float, complex], -] -_ArrayLikeNumber_co = _DualArrayLike[ - "dtype[Union[bool_, number[Any]]]", - Union[bool, int, float, complex], -] -_ArrayLikeTD64_co = _DualArrayLike[ - "dtype[Union[bool_, integer[Any], timedelta64]]", - Union[bool, int], -] -_ArrayLikeDT64_co = Union[ - _SupportsArray["dtype[datetime64]"], - _NestedSequence[_SupportsArray["dtype[datetime64]"]], -] -_ArrayLikeObject_co = Union[ - _SupportsArray["dtype[object_]"], - _NestedSequence[_SupportsArray["dtype[object_]"]], -] - -_ArrayLikeVoid_co = Union[ - _SupportsArray["dtype[void]"], - _NestedSequence[_SupportsArray["dtype[void]"]], -] -_ArrayLikeStr_co = _DualArrayLike[ - "dtype[str_]", - str, -] -_ArrayLikeBytes_co = _DualArrayLike[ - "dtype[bytes_]", - bytes, -] - -_ArrayLikeInt = _DualArrayLike[ - "dtype[integer[Any]]", - int, -] |