diff options
author | Bas van Beek <43369155+BvB93@users.noreply.github.com> | 2022-02-23 16:12:59 +0100 |
---|---|---|
committer | Bas van Beek <43369155+BvB93@users.noreply.github.com> | 2022-02-23 16:21:31 +0100 |
commit | 370b404d9652ab1f4086f2726ed63a9e0e013029 (patch) | |
tree | aa3de28cdcbeac789fbfbb6e8f77ca38f4a0a786 | |
parent | 0705bde8c0b6f723d6c75b9f029725a325ac461c (diff) | |
download | numpy-370b404d9652ab1f4086f2726ed63a9e0e013029.tar.gz |
MAINT: Relax the `obj` type in `__array_finalize__`
-rw-r--r-- | numpy/__init__.pyi | 9 | ||||
-rw-r--r-- | numpy/typing/tests/data/reveal/chararray.pyi | 3 | ||||
-rw-r--r-- | numpy/typing/tests/data/reveal/memmap.pyi | 2 | ||||
-rw-r--r-- | numpy/typing/tests/data/reveal/rec.pyi | 1 |
4 files changed, 12 insertions, 3 deletions
diff --git a/numpy/__init__.pyi b/numpy/__init__.pyi index 8d82013e2..cabde7969 100644 --- a/numpy/__init__.pyi +++ b/numpy/__init__.pyi @@ -1524,6 +1524,9 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeType, _DType_co]): kwargs: Mapping[str, Any], ) -> Any: ... + # NOTE: In practice any object is accepted by `obj`, but as `__array_finalize__` + # is a pseudo-abstract method the type has been narrowed down in order to + # grant subclasses a bit more flexiblity def __array_finalize__(self, obj: None | NDArray[Any], /) -> None: ... def __array_wrap__( @@ -3693,7 +3696,7 @@ class memmap(ndarray[_ShapeType, _DType_co]): shape: None | int | tuple[int, ...] = ..., order: _OrderKACF = ..., ) -> memmap[Any, dtype[Any]]: ... - def __array_finalize__(self, obj: memmap[Any, Any]) -> None: ... + def __array_finalize__(self, obj: object) -> None: ... def __array_wrap__( self, array: memmap[_ShapeType, _DType_co], @@ -3805,7 +3808,7 @@ class matrix(ndarray[_ShapeType, _DType_co]): dtype: DTypeLike = ..., copy: bool = ..., ) -> matrix[Any, Any]: ... - def __array_finalize__(self, obj: NDArray[Any]) -> None: ... + def __array_finalize__(self, obj: object) -> None: ... @overload def __getitem__(self, key: ( @@ -3966,7 +3969,7 @@ class chararray(ndarray[_ShapeType, _CharDType]): order: _OrderKACF = ..., ) -> chararray[Any, dtype[str_]]: ... - def __array_finalize__(self, obj: NDArray[str_ | bytes_]) -> None: ... + def __array_finalize__(self, obj: object) -> None: ... def __mul__(self, other: _ArrayLikeInt_co) -> chararray[Any, _CharDType]: ... def __rmul__(self, other: _ArrayLikeInt_co) -> chararray[Any, _CharDType]: ... def __mod__(self, i: Any) -> chararray[Any, _CharDType]: ... diff --git a/numpy/typing/tests/data/reveal/chararray.pyi b/numpy/typing/tests/data/reveal/chararray.pyi index 3da2e1599..61906c860 100644 --- a/numpy/typing/tests/data/reveal/chararray.pyi +++ b/numpy/typing/tests/data/reveal/chararray.pyi @@ -127,3 +127,6 @@ reveal_type(AR_S.istitle()) # E: ndarray[Any, dtype[bool_]] reveal_type(AR_U.isupper()) # E: ndarray[Any, dtype[bool_]] reveal_type(AR_S.isupper()) # E: ndarray[Any, dtype[bool_]] + +reveal_type(AR_U.__array_finalize__(object())) # E: None +reveal_type(AR_S.__array_finalize__(object())) # E: None diff --git a/numpy/typing/tests/data/reveal/memmap.pyi b/numpy/typing/tests/data/reveal/memmap.pyi index 86de8eb08..af7307499 100644 --- a/numpy/typing/tests/data/reveal/memmap.pyi +++ b/numpy/typing/tests/data/reveal/memmap.pyi @@ -14,3 +14,5 @@ reveal_type(np.memmap("file.txt", offset=5)) # E: memmap[Any, dtype[{uint8}]] reveal_type(np.memmap(b"file.txt", dtype=np.float64, shape=(10, 3))) # E: memmap[Any, dtype[{float64}]] with open("file.txt", "rb") as f: reveal_type(np.memmap(f, dtype=float, order="K")) # E: memmap[Any, dtype[Any]] + +reveal_type(memmap_obj.__array_finalize__(object())) # E: None diff --git a/numpy/typing/tests/data/reveal/rec.pyi b/numpy/typing/tests/data/reveal/rec.pyi index b2eaca899..8ea4a6ee8 100644 --- a/numpy/typing/tests/data/reveal/rec.pyi +++ b/numpy/typing/tests/data/reveal/rec.pyi @@ -33,6 +33,7 @@ reveal_type(REC_AR_V.field(0, AR_i8)) # E: None reveal_type(REC_AR_V.field("field_a", AR_i8)) # E: None reveal_type(REC_AR_V["field_a"]) # E: Any reveal_type(REC_AR_V.field_a) # E: Any +reveal_type(REC_AR_V.__array_finalize__(object())) # E: None reveal_type(np.recarray( # recarray[Any, dtype[record]] shape=(10, 5), |