diff --git a/numpy/__init__.pyi b/numpy/__init__.pyi index 6a6d133e335d..e1269fb5ba17 100644 --- a/numpy/__init__.pyi +++ b/numpy/__init__.pyi @@ -1388,15 +1388,7 @@ _NumberType = TypeVar("_NumberType", bound=number[Any]) if sys.version_info >= (3, 12): from collections.abc import Buffer as _SupportsBuffer else: - _SupportsBuffer = ( - bytes - | bytearray - | memoryview - | _array.array[Any] - | mmap.mmap - | NDArray[Any] - | generic - ) + from typing_extensions import Buffer as _SupportsBuffer _T = TypeVar("_T") _T_co = TypeVar("_T_co", covariant=True) @@ -1459,8 +1451,7 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeType, _DType_co]): order: _OrderKACF = ..., ) -> _ArraySelf: ... - if sys.version_info >= (3, 12): - def __buffer__(self, flags: int, /) -> memoryview: ... + def __buffer__(self, flags: int, /) -> memoryview: ... def __class_getitem__(self, item: Any) -> GenericAlias: ... @@ -2622,8 +2613,7 @@ class generic(_ArrayOrScalarCommon): @property def flat(self: _ScalarType) -> flatiter[NDArray[_ScalarType]]: ... - if sys.version_info >= (3, 12): - def __buffer__(self, flags: int, /) -> memoryview: ... + def __buffer__(self, flags: int, /) -> memoryview: ... @overload def astype( diff --git a/numpy/_typing/_array_like.py b/numpy/_typing/_array_like.py index 33255693806e..f599dc0eb304 100644 --- a/numpy/_typing/_array_like.py +++ b/numpy/_typing/_array_like.py @@ -80,16 +80,13 @@ def __array_function__( if sys.version_info >= (3, 12): from collections.abc import Buffer - - ArrayLike = Buffer | _DualArrayLike[ - dtype[Any], - Union[bool, int, float, complex, str, bytes], - ] else: - ArrayLike = _DualArrayLike[ - dtype[Any], - Union[bool, int, float, complex, str, bytes], - ] + from typing_extensions import Buffer + +ArrayLike = Buffer | _DualArrayLike[ + dtype[Any], + Union[bool, int, float, complex, str, bytes], +] # `ArrayLike_co`: array-like objects that can be coerced into `X` # given the casting rules `same_kind` diff --git a/numpy/typing/tests/data/reveal/array_constructors.pyi b/numpy/typing/tests/data/reveal/array_constructors.pyi index 814da1b9d639..e3dc6b25ccdb 100644 --- a/numpy/typing/tests/data/reveal/array_constructors.pyi +++ b/numpy/typing/tests/data/reveal/array_constructors.pyi @@ -214,10 +214,9 @@ assert_type(np.stack([A, A], out=B), SubClass[np.float64]) assert_type(np.block([[A, A], [A, A]]), npt.NDArray[Any]) assert_type(np.block(C), npt.NDArray[Any]) -if sys.version_info >= (3, 12): - from collections.abc import Buffer +from typing_extensions import Buffer - def create_array(obj: npt.ArrayLike) -> npt.NDArray[Any]: ... +def create_array(obj: npt.ArrayLike) -> npt.NDArray[Any]: ... - buffer: Buffer - assert_type(create_array(buffer), npt.NDArray[Any]) +buffer: Buffer +assert_type(create_array(buffer), npt.NDArray[Any])