From 68c63c6708dd98d97b8f8dbe9dac1ba8231d640c Mon Sep 17 00:00:00 2001 From: jorenham Date: Tue, 23 Dec 2025 11:47:43 +0100 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=91=BD=EF=B8=8F=20`bool.=5F=5Fclass?= =?UTF-8?q?=5Fgetitem=5F=5F`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/numpy-stubs/__init__.pyi | 4 ++++ tool/allowlists/todo.txt | 16 ---------------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/numpy-stubs/__init__.pyi b/src/numpy-stubs/__init__.pyi index 9f792ab1..9fc359f3 100644 --- a/src/numpy-stubs/__init__.pyi +++ b/src/numpy-stubs/__init__.pyi @@ -3504,6 +3504,10 @@ class generic(_ArrayOrScalarCommon, Generic[_ItemT_co]): # NOTE: Naming it `bool_` results in less unreadable type-checker output class bool_(generic[_BoolItemT_co], Generic[_BoolItemT_co]): + @classmethod + def __class_getitem__(cls, item: Any, /) -> GenericAlias: ... + + # @overload def __new__(cls, value: L[False, 0] | _Bool0 = ..., /) -> _Bool0: ... @overload diff --git a/tool/allowlists/todo.txt b/tool/allowlists/todo.txt index b6c58124..a7ec99db 100644 --- a/tool/allowlists/todo.txt +++ b/tool/allowlists/todo.txt @@ -48,8 +48,6 @@ numpy._core.asanyarray numpy._core.asarray numpy._core.ascontiguousarray numpy._core.asfortranarray -numpy._core.bool.__class_getitem__ -numpy._core.bool_.__class_getitem__ numpy._core.copyto numpy._core.datetime64.__class_getitem__ numpy._core.defchararray.chararray.argsort @@ -91,8 +89,6 @@ numpy._core.numeric.asanyarray numpy._core.numeric.asarray numpy._core.numeric.ascontiguousarray numpy._core.numeric.asfortranarray -numpy._core.numeric.bool.__class_getitem__ -numpy._core.numeric.bool_.__class_getitem__ numpy._core.numeric.copyto numpy._core.numeric.datetime64.__class_getitem__ numpy._core.numeric.dtype.__new__ @@ -111,8 +107,6 @@ numpy._core.numeric.ufunc.__signature__ numpy._core.numeric.void.__new__ numpy._core.numeric.where numpy._core.numeric.zeros -numpy._core.numerictypes.bool.__class_getitem__ -numpy._core.numerictypes.bool_.__class_getitem__ numpy._core.numerictypes.datetime64.__class_getitem__ numpy._core.numerictypes.object_.__new__ numpy._core.numerictypes.void.__new__ @@ -132,8 +126,6 @@ numpy.asanyarray numpy.asarray numpy.ascontiguousarray numpy.asfortranarray -numpy.bool.__class_getitem__ -numpy.bool_.__class_getitem__ numpy.char.chararray.argsort numpy.copyto numpy.core._internal._ctypes.get_as_parameter @@ -184,8 +176,6 @@ numpy.core.numeric.asanyarray numpy.core.numeric.asarray numpy.core.numeric.ascontiguousarray numpy.core.numeric.asfortranarray -numpy.core.numeric.bool.__class_getitem__ -numpy.core.numeric.bool_.__class_getitem__ numpy.core.numeric.copyto numpy.core.numeric.datetime64.__class_getitem__ numpy.core.numeric.dtype.__new__ @@ -204,8 +194,6 @@ numpy.core.numeric.ufunc.__signature__ numpy.core.numeric.void.__new__ numpy.core.numeric.where numpy.core.numeric.zeros -numpy.core.numerictypes.bool.__class_getitem__ -numpy.core.numerictypes.bool_.__class_getitem__ numpy.core.numerictypes.datetime64.__class_getitem__ numpy.core.numerictypes.object_.__new__ numpy.core.numerictypes.void.__new__ @@ -248,7 +236,6 @@ numpy.ma.asanyarray numpy.ma.atleast_1d numpy.ma.atleast_2d numpy.ma.atleast_3d -numpy.ma.bool_.__class_getitem__ numpy.ma.clip numpy.ma.column_stack numpy.ma.compress @@ -263,7 +250,6 @@ numpy.ma.core.arange numpy.ma.core.argmax numpy.ma.core.argmin numpy.ma.core.asanyarray -numpy.ma.core.bool_.__class_getitem__ numpy.ma.core.clip numpy.ma.core.compress numpy.ma.core.copy @@ -356,8 +342,6 @@ numpy.matlib.asanyarray numpy.matlib.asarray numpy.matlib.ascontiguousarray numpy.matlib.asfortranarray -numpy.matlib.bool.__class_getitem__ -numpy.matlib.bool_.__class_getitem__ numpy.matlib.copyto numpy.matlib.corrcoef numpy.matlib.datetime64.__class_getitem__ From d0921407fc8f6b7bfee9852380876a874cb2f5dc Mon Sep 17 00:00:00 2001 From: jorenham Date: Tue, 23 Dec 2025 11:48:48 +0100 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20mark=20`=5F=5Fclass?= =?UTF-8?q?=5Fgetitem=5F=5F`=20as=20`@classmethod`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/numpy-stubs/__init__.pyi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/numpy-stubs/__init__.pyi b/src/numpy-stubs/__init__.pyi index 9fc359f3..e636e59b 100644 --- a/src/numpy-stubs/__init__.pyi +++ b/src/numpy-stubs/__init__.pyi @@ -1217,6 +1217,7 @@ class dtype(Generic[_ScalarT_co], metaclass=_DTypeMeta): ) -> dtype: ... # + @classmethod def __class_getitem__(cls, item: Any, /) -> GenericAlias: ... # @@ -1754,6 +1755,7 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeT_co, _DTypeT_co]): ) -> Self: ... # + @classmethod def __class_getitem__(cls, item: object, /) -> GenericAlias: ... # @@ -3980,6 +3982,7 @@ class number(_CmpOpMixin[_nt.CoComplex_0d, _nt.CoComplex_1nd], generic[_NumberIt def itemsize(self) -> int: ... # + @classmethod def __class_getitem__(cls, item: Any, /) -> GenericAlias: ... # @@ -5197,6 +5200,7 @@ class timedelta64( def nbytes(self) -> L[8]: ... # inherited at runtime from `signedinteger` + @classmethod def __class_getitem__(cls, type_arg: type | object, /) -> GenericAlias: ... # NOTE: Only a limited number of units support conversion From c3669849c75b88b766b964115c4446dfd7a70798 Mon Sep 17 00:00:00 2001 From: jorenham Date: Tue, 23 Dec 2025 11:50:30 +0100 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=91=BD=EF=B8=8F=20`datetime64.=5F=5Fc?= =?UTF-8?q?lass=5Fgetitem=5F=5F`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/numpy-stubs/__init__.pyi | 4 ++++ tool/allowlists/todo.txt | 7 ------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/numpy-stubs/__init__.pyi b/src/numpy-stubs/__init__.pyi index e636e59b..7ef1e2ac 100644 --- a/src/numpy-stubs/__init__.pyi +++ b/src/numpy-stubs/__init__.pyi @@ -5043,6 +5043,10 @@ class void(flexible[bytes | tuple[Any, ...]]): # type: ignore[misc] # pyright: class datetime64( _RealMixin, _CmpOpMixin[datetime64, _ArrayLikeDT64_co], generic[_DT64ItemT_co], Generic[_DT64ItemT_co] ): + @classmethod + def __class_getitem__(cls, type_arg: type | object, /) -> GenericAlias: ... + + # @overload def __new__(cls, /) -> datetime64[None]: ... @overload diff --git a/tool/allowlists/todo.txt b/tool/allowlists/todo.txt index a7ec99db..69c57276 100644 --- a/tool/allowlists/todo.txt +++ b/tool/allowlists/todo.txt @@ -49,7 +49,6 @@ numpy._core.asarray numpy._core.ascontiguousarray numpy._core.asfortranarray numpy._core.copyto -numpy._core.datetime64.__class_getitem__ numpy._core.defchararray.chararray.argsort numpy._core.dtype.__new__ numpy._core.empty @@ -90,7 +89,6 @@ numpy._core.numeric.asarray numpy._core.numeric.ascontiguousarray numpy._core.numeric.asfortranarray numpy._core.numeric.copyto -numpy._core.numeric.datetime64.__class_getitem__ numpy._core.numeric.dtype.__new__ numpy._core.numeric.empty numpy._core.numeric.empty_like @@ -107,7 +105,6 @@ numpy._core.numeric.ufunc.__signature__ numpy._core.numeric.void.__new__ numpy._core.numeric.where numpy._core.numeric.zeros -numpy._core.numerictypes.datetime64.__class_getitem__ numpy._core.numerictypes.object_.__new__ numpy._core.numerictypes.void.__new__ numpy._core.object_.__new__ @@ -177,7 +174,6 @@ numpy.core.numeric.asarray numpy.core.numeric.ascontiguousarray numpy.core.numeric.asfortranarray numpy.core.numeric.copyto -numpy.core.numeric.datetime64.__class_getitem__ numpy.core.numeric.dtype.__new__ numpy.core.numeric.empty numpy.core.numeric.empty_like @@ -194,13 +190,11 @@ numpy.core.numeric.ufunc.__signature__ numpy.core.numeric.void.__new__ numpy.core.numeric.where numpy.core.numeric.zeros -numpy.core.numerictypes.datetime64.__class_getitem__ numpy.core.numerictypes.object_.__new__ numpy.core.numerictypes.void.__new__ numpy.core.umath.__all__ numpy.core.umath.matmul numpy.corrcoef -numpy.datetime64.__class_getitem__ numpy.dtype.__new__ numpy.empty numpy.empty_like @@ -344,7 +338,6 @@ numpy.matlib.ascontiguousarray numpy.matlib.asfortranarray numpy.matlib.copyto numpy.matlib.corrcoef -numpy.matlib.datetime64.__class_getitem__ numpy.matlib.dtype.__new__ numpy.matlib.empty_like numpy.matlib.finfo.smallest_normal