1111)
1212
1313import numpy as np
14+ import numpy .typing as npt
1415
1516if TYPE_CHECKING :
1617 from typing_extensions import Self
2021
2122# TODO: create a protocol for the attributes we need, for now we alias Numpy's ndarray
2223# both for the array-like and ndarray-like
23- ArrayLike : TypeAlias = np . ndarray
24- NDArrayLike : TypeAlias = np . ndarray
24+ ArrayLike : TypeAlias = npt . NDArray [ Any ]
25+ NDArrayLike : TypeAlias = npt . NDArray [ Any ]
2526
2627
2728def check_item_key_is_1d_contiguous (key : Any ) -> None :
@@ -40,7 +41,7 @@ def __call__(
4041 self ,
4142 * ,
4243 shape : Iterable [int ],
43- dtype : np .DTypeLike ,
44+ dtype : npt .DTypeLike ,
4445 order : Literal ["C" , "F" ],
4546 fill_value : Any | None ,
4647 ) -> NDBuffer :
@@ -163,7 +164,7 @@ def as_array_like(self) -> NDArrayLike:
163164 """
164165 return self ._data
165166
166- def as_nd_buffer (self , * , dtype : np .DTypeLike ) -> NDBuffer :
167+ def as_nd_buffer (self , * , dtype : npt .DTypeLike ) -> NDBuffer :
167168 """Create a new NDBuffer from this one.
168169
169170 This will never copy data.
@@ -179,7 +180,7 @@ def as_nd_buffer(self, *, dtype: np.DTypeLike) -> NDBuffer:
179180 """
180181 return NDBuffer .from_ndarray_like (self ._data .view (dtype = dtype ))
181182
182- def as_numpy_array (self ) -> np . ndarray :
183+ def as_numpy_array (self ) -> npt . NDArray [ Any ] :
183184 """Return the buffer as a NumPy array (host memory).
184185
185186 Warning
@@ -271,7 +272,7 @@ def create(
271272 cls ,
272273 * ,
273274 shape : Iterable [int ],
274- dtype : np .DTypeLike ,
275+ dtype : npt .DTypeLike ,
275276 order : Literal ["C" , "F" ] = "C" ,
276277 fill_value : Any | None = None ,
277278 ) -> Self :
@@ -298,7 +299,7 @@ def create(
298299 A subclass can overwrite this method to create a ndarray-like object
299300 other then the default Numpy array.
300301 """
301- ret = cls (np .empty (shape = shape , dtype = dtype , order = order ))
302+ ret = cls (np .empty (shape = tuple ( shape ) , dtype = dtype , order = order ))
302303 if fill_value is not None :
303304 ret .fill (fill_value )
304305 return ret
@@ -319,7 +320,7 @@ def from_ndarray_like(cls, ndarray_like: NDArrayLike) -> Self:
319320 return cls (ndarray_like )
320321
321322 @classmethod
322- def from_numpy_array (cls , array_like : np .ArrayLike ) -> Self :
323+ def from_numpy_array (cls , array_like : npt .ArrayLike ) -> Self :
323324 """Create a new buffer of Numpy array-like object
324325
325326 Parameters
@@ -360,7 +361,7 @@ def as_buffer(self) -> Buffer:
360361 data = np .ascontiguousarray (self ._data )
361362 return Buffer (data .reshape (- 1 ).view (dtype = "b" )) # Flatten the array without copy
362363
363- def as_numpy_array (self ) -> np . ndarray :
364+ def as_numpy_array (self ) -> npt . NDArray [ Any ] :
364365 """Return the buffer as a NumPy array (host memory).
365366
366367 Warning
@@ -393,9 +394,9 @@ def byteorder(self) -> Endian:
393394 return Endian (sys .byteorder )
394395
395396 def reshape (self , newshape : Iterable [int ]) -> Self :
396- return self .__class__ (self ._data .reshape (newshape ))
397+ return self .__class__ (self ._data .reshape (tuple ( newshape ) ))
397398
398- def astype (self , dtype : np .DTypeLike , order : Literal ["K" , "A" , "C" , "F" ] = "K" ) -> Self :
399+ def astype (self , dtype : npt .DTypeLike , order : Literal ["K" , "A" , "C" , "F" ] = "K" ) -> Self :
399400 return self .__class__ (self ._data .astype (dtype = dtype , order = order ))
400401
401402 def __getitem__ (self , key : Any ) -> Self :
@@ -418,11 +419,11 @@ def fill(self, value: Any) -> None:
418419 def copy (self ) -> Self :
419420 return self .__class__ (self ._data .copy ())
420421
421- def transpose (self , * axes : np .SupportsIndex ) -> Self :
422+ def transpose (self , * axes : np .SupportsIndex ) -> Self : # type: ignore[name-defined]
422423 return self .__class__ (self ._data .transpose (* axes ))
423424
424425
425- def as_numpy_array_wrapper (func : Callable [[np . ndarray ], bytes ], buf : Buffer ) -> Buffer :
426+ def as_numpy_array_wrapper (func : Callable [[npt . NDArray [ Any ] ], bytes ], buf : Buffer ) -> Buffer :
426427 """Converts the input of `func` to a numpy array and the output back to `Buffer`.
427428
428429 This function is useful when calling a `func` that only support host memory such
0 commit comments