| from typing import ( | |
| ClassVar, | |
| Literal, | |
| TypeAlias, | |
| TypedDict, | |
| TypeVar, | |
| final, | |
| overload, | |
| type_check_only, | |
| ) | |
| from typing_extensions import Never | |
| import numpy as np | |
| _Device: TypeAlias = Literal["cpu"] | |
| _DeviceLike: TypeAlias = None | _Device | |
| _Capabilities = TypedDict( | |
| "_Capabilities", | |
| { | |
| "boolean indexing": Literal[True], | |
| "data-dependent shapes": Literal[True], | |
| }, | |
| ) | |
| _DefaultDTypes = TypedDict( | |
| "_DefaultDTypes", | |
| { | |
| "real floating": np.dtype[np.float64], | |
| "complex floating": np.dtype[np.complex128], | |
| "integral": np.dtype[np.intp], | |
| "indexing": np.dtype[np.intp], | |
| }, | |
| ) | |
| _KindBool: TypeAlias = Literal["bool"] | |
| _KindInt: TypeAlias = Literal["signed integer"] | |
| _KindUInt: TypeAlias = Literal["unsigned integer"] | |
| _KindInteger: TypeAlias = Literal["integral"] | |
| _KindFloat: TypeAlias = Literal["real floating"] | |
| _KindComplex: TypeAlias = Literal["complex floating"] | |
| _KindNumber: TypeAlias = Literal["numeric"] | |
| _Kind: TypeAlias = ( | |
| _KindBool | |
| | _KindInt | |
| | _KindUInt | |
| | _KindInteger | |
| | _KindFloat | |
| | _KindComplex | |
| | _KindNumber | |
| ) | |
| _T1 = TypeVar("_T1") | |
| _T2 = TypeVar("_T2") | |
| _T3 = TypeVar("_T3") | |
| _Permute1: TypeAlias = _T1 | tuple[_T1] | |
| _Permute2: TypeAlias = tuple[_T1, _T2] | tuple[_T2, _T1] | |
| _Permute3: TypeAlias = ( | |
| tuple[_T1, _T2, _T3] | tuple[_T1, _T3, _T2] | |
| | tuple[_T2, _T1, _T3] | tuple[_T2, _T3, _T1] | |
| | tuple[_T3, _T1, _T2] | tuple[_T3, _T2, _T1] | |
| ) | |
| @type_check_only | |
| class _DTypesBool(TypedDict): | |
| bool: np.dtype[np.bool] | |
| @type_check_only | |
| class _DTypesInt(TypedDict): | |
| int8: np.dtype[np.int8] | |
| int16: np.dtype[np.int16] | |
| int32: np.dtype[np.int32] | |
| int64: np.dtype[np.int64] | |
| @type_check_only | |
| class _DTypesUInt(TypedDict): | |
| uint8: np.dtype[np.uint8] | |
| uint16: np.dtype[np.uint16] | |
| uint32: np.dtype[np.uint32] | |
| uint64: np.dtype[np.uint64] | |
| @type_check_only | |
| class _DTypesInteger(_DTypesInt, _DTypesUInt): ... | |
| @type_check_only | |
| class _DTypesFloat(TypedDict): | |
| float32: np.dtype[np.float32] | |
| float64: np.dtype[np.float64] | |
| @type_check_only | |
| class _DTypesComplex(TypedDict): | |
| complex64: np.dtype[np.complex64] | |
| complex128: np.dtype[np.complex128] | |
| @type_check_only | |
| class _DTypesNumber(_DTypesInteger, _DTypesFloat, _DTypesComplex): ... | |
| @type_check_only | |
| class _DTypes(_DTypesBool, _DTypesNumber): ... | |
| @type_check_only | |
| class _DTypesUnion(TypedDict, total=False): | |
| bool: np.dtype[np.bool] | |
| int8: np.dtype[np.int8] | |
| int16: np.dtype[np.int16] | |
| int32: np.dtype[np.int32] | |
| int64: np.dtype[np.int64] | |
| uint8: np.dtype[np.uint8] | |
| uint16: np.dtype[np.uint16] | |
| uint32: np.dtype[np.uint32] | |
| uint64: np.dtype[np.uint64] | |
| float32: np.dtype[np.float32] | |
| float64: np.dtype[np.float64] | |
| complex64: np.dtype[np.complex64] | |
| complex128: np.dtype[np.complex128] | |
| _EmptyDict: TypeAlias = dict[Never, Never] | |
| @final | |
| class __array_namespace_info__: | |
| __module__: ClassVar[Literal['numpy']] | |
| def capabilities(self) -> _Capabilities: ... | |
| def default_device(self) -> _Device: ... | |
| def default_dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| ) -> _DefaultDTypes: ... | |
| def devices(self) -> list[_Device]: ... | |
| @overload | |
| def dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| kind: None = ..., | |
| ) -> _DTypes: ... | |
| @overload | |
| def dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| kind: _Permute1[_KindBool], | |
| ) -> _DTypesBool: ... | |
| @overload | |
| def dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| kind: _Permute1[_KindInt], | |
| ) -> _DTypesInt: ... | |
| @overload | |
| def dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| kind: _Permute1[_KindUInt], | |
| ) -> _DTypesUInt: ... | |
| @overload | |
| def dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| kind: _Permute1[_KindFloat], | |
| ) -> _DTypesFloat: ... | |
| @overload | |
| def dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| kind: _Permute1[_KindComplex], | |
| ) -> _DTypesComplex: ... | |
| @overload | |
| def dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| kind: ( | |
| _Permute1[_KindInteger] | |
| | _Permute2[_KindInt, _KindUInt] | |
| ), | |
| ) -> _DTypesInteger: ... | |
| @overload | |
| def dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| kind: ( | |
| _Permute1[_KindNumber] | |
| | _Permute3[_KindInteger, _KindFloat, _KindComplex] | |
| ), | |
| ) -> _DTypesNumber: ... | |
| @overload | |
| def dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| kind: tuple[()], | |
| ) -> _EmptyDict: ... | |
| @overload | |
| def dtypes( | |
| self, | |
| *, | |
| device: _DeviceLike = ..., | |
| kind: tuple[_Kind, ...], | |
| ) -> _DTypesUnion: ... | |