Skip to content

Commit e2fd988

Browse files
authored
Merge pull request numpy#26928 from jorenham/covariant-flatiter
TYP: Covariant `numpy.flatiter` type parameter
2 parents 66d3ec1 + 7d77682 commit e2fd988

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

numpy/__init__.pyi

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,7 @@ test: PytestTester
638638
def show_config() -> None: ...
639639

640640
_NdArraySubClass = TypeVar("_NdArraySubClass", bound=NDArray[Any])
641+
_NdArraySubClass_co = TypeVar("_NdArraySubClass_co", bound=NDArray[Any], covariant=True)
641642
_DTypeScalar_co = TypeVar("_DTypeScalar_co", covariant=True, bound=generic)
642643
_ByteOrder: TypeAlias = L["S", "<", ">", "=", "|", "L", "B", "N", "I", "little", "big", "native"]
643644

@@ -904,15 +905,15 @@ _FlatIterSelf = TypeVar("_FlatIterSelf", bound=flatiter[Any])
904905
_FlatShapeType = TypeVar("_FlatShapeType", bound=tuple[int])
905906

906907
@final
907-
class flatiter(Generic[_NdArraySubClass]):
908+
class flatiter(Generic[_NdArraySubClass_co]):
908909
__hash__: ClassVar[None]
909910
@property
910-
def base(self) -> _NdArraySubClass: ...
911+
def base(self) -> _NdArraySubClass_co: ...
911912
@property
912913
def coords(self) -> _Shape: ...
913914
@property
914915
def index(self) -> int: ...
915-
def copy(self) -> _NdArraySubClass: ...
916+
def copy(self) -> _NdArraySubClass_co: ...
916917
def __iter__(self: _FlatIterSelf) -> _FlatIterSelf: ...
917918
def __next__(self: flatiter[NDArray[_ScalarType]]) -> _ScalarType: ...
918919
def __len__(self) -> int: ...
@@ -925,7 +926,7 @@ class flatiter(Generic[_NdArraySubClass]):
925926
def __getitem__(
926927
self,
927928
key: _ArrayLikeInt | slice | ellipsis | tuple[_ArrayLikeInt | slice | ellipsis],
928-
) -> _NdArraySubClass: ...
929+
) -> _NdArraySubClass_co: ...
929930
# TODO: `__setitem__` operates via `unsafe` casting rules, and can
930931
# thus accept any type accepted by the relevant underlying `np.generic`
931932
# constructor.

0 commit comments

Comments
 (0)