@@ -13,7 +13,6 @@ if sys.version_info >= (3, 9):
1313 from types import GenericAlias
1414
1515from numpy ._pytesttester import PytestTester
16- from numpy .core .multiarray import flagsobj
1716from numpy .core ._internal import _ctypes
1817from numpy .core .getlimits import MachArLike
1918
@@ -196,6 +195,7 @@ from typing import (
196195 Protocol ,
197196 SupportsIndex ,
198197 Final ,
198+ final ,
199199)
200200
201201# Ensures that the stubs are picked up
@@ -351,6 +351,8 @@ from numpy.core.multiarray import (
351351 geterrobj as geterrobj ,
352352 fromstring as fromstring ,
353353 frompyfunc as frompyfunc ,
354+ nested_iters as nested_iters ,
355+ flagsobj ,
354356)
355357
356358from numpy .core .numeric import (
@@ -768,35 +770,6 @@ class memmap(ndarray[_ShapeType, _DType_co]):
768770 ) -> Any : ...
769771 def __getattr__ (self , key : str ) -> Any : ...
770772
771- class nditer :
772- def __new__ (
773- cls ,
774- op : Any ,
775- flags : Any = ...,
776- op_flags : Any = ...,
777- op_dtypes : Any = ...,
778- order : Any = ...,
779- casting : Any = ...,
780- op_axes : Any = ...,
781- itershape : Any = ...,
782- buffersize : Any = ...,
783- ) -> Any : ...
784- def __getattr__ (self , key : str ) -> Any : ...
785- def __enter__ (self ) -> nditer : ...
786- def __exit__ (
787- self ,
788- exc_type : None | Type [BaseException ],
789- exc_value : None | BaseException ,
790- traceback : None | TracebackType ,
791- ) -> None : ...
792- def __iter__ (self ) -> Iterator [Any ]: ...
793- def __next__ (self ) -> Any : ...
794- def __len__ (self ) -> int : ...
795- def __copy__ (self ) -> nditer : ...
796- def __getitem__ (self , index : SupportsIndex | slice ) -> Any : ...
797- def __setitem__ (self , index : SupportsIndex | slice , value : Any ) -> None : ...
798- def __delitem__ (self , key : SupportsIndex | slice ) -> None : ...
799-
800773class poly1d :
801774 def __init__ (
802775 self ,
@@ -885,9 +858,6 @@ alltrue = all
885858
886859def show_config () -> None : ...
887860
888- # TODO: Sort out which parameters are positional-only
889- def nested_iters (* args , ** kwargs ): ... # TODO: Sort out parameters
890-
891861_NdArraySubClass = TypeVar ("_NdArraySubClass" , bound = ndarray )
892862_DTypeScalar_co = TypeVar ("_DTypeScalar_co" , covariant = True , bound = generic )
893863_ByteOrder = L ["S" , "<" , ">" , "=" , "|" , "L" , "B" , "N" , "I" ]
@@ -3751,3 +3721,110 @@ class record(void):
37513721 def __getitem__ (self , key : str | SupportsIndex ) -> Any : ...
37523722 @overload
37533723 def __getitem__ (self , key : list [str ]) -> record : ...
3724+
3725+ _NDIterFlagsKind = L [
3726+ "buffered" ,
3727+ "c_index" ,
3728+ "copy_if_overlap" ,
3729+ "common_dtype" ,
3730+ "delay_bufalloc" ,
3731+ "external_loop" ,
3732+ "f_index" ,
3733+ "grow_inner" , "growinner" ,
3734+ "multi_index" ,
3735+ "ranged" ,
3736+ "refs_ok" ,
3737+ "reduce_ok" ,
3738+ "zerosize_ok" ,
3739+ ]
3740+
3741+ _NDIterOpFlagsKind = L [
3742+ "aligned" ,
3743+ "allocate" ,
3744+ "arraymask" ,
3745+ "copy" ,
3746+ "config" ,
3747+ "nbo" ,
3748+ "no_subtype" ,
3749+ "no_broadcast" ,
3750+ "overlap_assume_elementwise" ,
3751+ "readonly" ,
3752+ "readwrite" ,
3753+ "updateifcopy" ,
3754+ "virtual" ,
3755+ "writeonly" ,
3756+ "writemasked"
3757+ ]
3758+
3759+ @final
3760+ class nditer :
3761+ def __new__ (
3762+ cls ,
3763+ op : ArrayLike | Sequence [ArrayLike ],
3764+ flags : None | Sequence [_NDIterFlagsKind ] = ...,
3765+ op_flags : None | Sequence [Sequence [_NDIterOpFlagsKind ]] = ...,
3766+ op_dtypes : DTypeLike | Sequence [DTypeLike ] = ...,
3767+ order : _OrderKACF = ...,
3768+ casting : _CastingKind = ...,
3769+ op_axes : None | Sequence [Sequence [SupportsIndex ]] = ...,
3770+ itershape : None | _ShapeLike = ...,
3771+ buffersize : SupportsIndex = ...,
3772+ ) -> nditer : ...
3773+ def __enter__ (self ) -> nditer : ...
3774+ def __exit__ (
3775+ self ,
3776+ exc_type : None | Type [BaseException ],
3777+ exc_value : None | BaseException ,
3778+ traceback : None | TracebackType ,
3779+ ) -> None : ...
3780+ def __iter__ (self ) -> nditer : ...
3781+ def __next__ (self ) -> Tuple [NDArray [Any ], ...]: ...
3782+ def __len__ (self ) -> int : ...
3783+ def __copy__ (self ) -> nditer : ...
3784+ @overload
3785+ def __getitem__ (self , index : SupportsIndex ) -> NDArray [Any ]: ...
3786+ @overload
3787+ def __getitem__ (self , index : slice ) -> Tuple [NDArray [Any ], ...]: ...
3788+ def __setitem__ (self , index : slice | SupportsIndex , value : ArrayLike ) -> None : ...
3789+ def close (self ) -> None : ...
3790+ def copy (self ) -> nditer : ...
3791+ def debug_print (self ) -> None : ...
3792+ def enable_external_loop (self ) -> None : ...
3793+ def iternext (self ) -> bool : ...
3794+ def remove_axis (self , i : SupportsIndex , / ) -> None : ...
3795+ def remove_multi_index (self ) -> None : ...
3796+ def reset (self ) -> None : ...
3797+ @property
3798+ def dtypes (self ) -> Tuple [dtype [Any ], ...]: ...
3799+ @property
3800+ def finished (self ) -> bool : ...
3801+ @property
3802+ def has_delayed_bufalloc (self ) -> bool : ...
3803+ @property
3804+ def has_index (self ) -> bool : ...
3805+ @property
3806+ def has_multi_index (self ) -> bool : ...
3807+ @property
3808+ def index (self ) -> int : ...
3809+ @property
3810+ def iterationneedsapi (self ) -> bool : ...
3811+ @property
3812+ def iterindex (self ) -> int : ...
3813+ @property
3814+ def iterrange (self ) -> Tuple [int , ...]: ...
3815+ @property
3816+ def itersize (self ) -> int : ...
3817+ @property
3818+ def itviews (self ) -> Tuple [NDArray [Any ], ...]: ...
3819+ @property
3820+ def multi_index (self ) -> Tuple [int , ...]: ...
3821+ @property
3822+ def ndim (self ) -> int : ...
3823+ @property
3824+ def nop (self ) -> int : ...
3825+ @property
3826+ def operands (self ) -> Tuple [NDArray [Any ], ...]: ...
3827+ @property
3828+ def shape (self ) -> Tuple [int , ...]: ...
3829+ @property
3830+ def value (self ) -> Tuple [NDArray [Any ], ...]: ...
0 commit comments