@@ -10,7 +10,6 @@ from types import TracebackType, MappingProxyType
1010from contextlib import ContextDecorator
1111
1212from numpy ._pytesttester import PytestTester
13- from numpy .core .multiarray import flagsobj
1413from numpy .core ._internal import _ctypes
1514from numpy .core .getlimits import MachArLike
1615
@@ -193,6 +192,7 @@ from typing import (
193192 Protocol ,
194193 SupportsIndex ,
195194 Final ,
195+ final ,
196196)
197197
198198# Ensures that the stubs are picked up
@@ -348,6 +348,8 @@ from numpy.core.multiarray import (
348348 geterrobj as geterrobj ,
349349 fromstring as fromstring ,
350350 frompyfunc as frompyfunc ,
351+ nested_iters as nested_iters ,
352+ flagsobj ,
351353)
352354
353355from numpy .core .numeric import (
@@ -765,35 +767,6 @@ class memmap(ndarray[_ShapeType, _DType_co]):
765767 ) -> Any : ...
766768 def __getattr__ (self , key : str ) -> Any : ...
767769
768- class nditer :
769- def __new__ (
770- cls ,
771- op : Any ,
772- flags : Any = ...,
773- op_flags : Any = ...,
774- op_dtypes : Any = ...,
775- order : Any = ...,
776- casting : Any = ...,
777- op_axes : Any = ...,
778- itershape : Any = ...,
779- buffersize : Any = ...,
780- ) -> Any : ...
781- def __getattr__ (self , key : str ) -> Any : ...
782- def __enter__ (self ) -> nditer : ...
783- def __exit__ (
784- self ,
785- exc_type : None | Type [BaseException ],
786- exc_value : None | BaseException ,
787- traceback : None | TracebackType ,
788- ) -> None : ...
789- def __iter__ (self ) -> Iterator [Any ]: ...
790- def __next__ (self ) -> Any : ...
791- def __len__ (self ) -> int : ...
792- def __copy__ (self ) -> nditer : ...
793- def __getitem__ (self , index : SupportsIndex | slice ) -> Any : ...
794- def __setitem__ (self , index : SupportsIndex | slice , value : Any ) -> None : ...
795- def __delitem__ (self , key : SupportsIndex | slice ) -> None : ...
796-
797770class poly1d :
798771 def __init__ (
799772 self ,
@@ -882,9 +855,6 @@ alltrue = all
882855
883856def show_config () -> None : ...
884857
885- # TODO: Sort out which parameters are positional-only
886- def nested_iters (* args , ** kwargs ): ... # TODO: Sort out parameters
887-
888858_NdArraySubClass = TypeVar ("_NdArraySubClass" , bound = ndarray )
889859_DTypeScalar_co = TypeVar ("_DTypeScalar_co" , covariant = True , bound = generic )
890860_ByteOrder = L ["S" , "<" , ">" , "=" , "|" , "L" , "B" , "N" , "I" ]
@@ -3739,3 +3709,110 @@ class record(void):
37393709 def __getitem__ (self , key : str | SupportsIndex ) -> Any : ...
37403710 @overload
37413711 def __getitem__ (self , key : list [str ]) -> record : ...
3712+
3713+ _NDIterFlagsKind = L [
3714+ "buffered" ,
3715+ "c_index" ,
3716+ "copy_if_overlap" ,
3717+ "common_dtype" ,
3718+ "delay_bufalloc" ,
3719+ "external_loop" ,
3720+ "f_index" ,
3721+ "grow_inner" , "growinner" ,
3722+ "multi_index" ,
3723+ "ranged" ,
3724+ "refs_ok" ,
3725+ "reduce_ok" ,
3726+ "zerosize_ok" ,
3727+ ]
3728+
3729+ _NDIterOpFlagsKind = L [
3730+ "aligned" ,
3731+ "allocate" ,
3732+ "arraymask" ,
3733+ "copy" ,
3734+ "config" ,
3735+ "nbo" ,
3736+ "no_subtype" ,
3737+ "no_broadcast" ,
3738+ "overlap_assume_elementwise" ,
3739+ "readonly" ,
3740+ "readwrite" ,
3741+ "updateifcopy" ,
3742+ "virtual" ,
3743+ "writeonly" ,
3744+ "writemasked"
3745+ ]
3746+
3747+ @final
3748+ class nditer :
3749+ def __new__ (
3750+ cls ,
3751+ op : ArrayLike | Sequence [ArrayLike ],
3752+ flags : None | Sequence [_NDIterFlagsKind ] = ...,
3753+ op_flags : None | Sequence [Sequence [_NDIterOpFlagsKind ]] = ...,
3754+ op_dtypes : DTypeLike | Sequence [DTypeLike ] = ...,
3755+ order : _OrderKACF = ...,
3756+ casting : _CastingKind = ...,
3757+ op_axes : None | Sequence [Sequence [SupportsIndex ]] = ...,
3758+ itershape : None | _ShapeLike = ...,
3759+ buffersize : SupportsIndex = ...,
3760+ ) -> nditer : ...
3761+ def __enter__ (self ) -> nditer : ...
3762+ def __exit__ (
3763+ self ,
3764+ exc_type : None | Type [BaseException ],
3765+ exc_value : None | BaseException ,
3766+ traceback : None | TracebackType ,
3767+ ) -> None : ...
3768+ def __iter__ (self ) -> nditer : ...
3769+ def __next__ (self ) -> Tuple [NDArray [Any ], ...]: ...
3770+ def __len__ (self ) -> int : ...
3771+ def __copy__ (self ) -> nditer : ...
3772+ @overload
3773+ def __getitem__ (self , index : SupportsIndex ) -> NDArray [Any ]: ...
3774+ @overload
3775+ def __getitem__ (self , index : slice ) -> Tuple [NDArray [Any ], ...]: ...
3776+ def __setitem__ (self , index : slice | SupportsIndex , value : ArrayLike ) -> None : ...
3777+ def close (self ) -> None : ...
3778+ def copy (self ) -> nditer : ...
3779+ def debug_print (self ) -> None : ...
3780+ def enable_external_loop (self ) -> None : ...
3781+ def iternext (self ) -> bool : ...
3782+ def remove_axis (self , i : SupportsIndex , / ) -> None : ...
3783+ def remove_multi_index (self ) -> None : ...
3784+ def reset (self ) -> None : ...
3785+ @property
3786+ def dtypes (self ) -> Tuple [dtype [Any ], ...]: ...
3787+ @property
3788+ def finished (self ) -> bool : ...
3789+ @property
3790+ def has_delayed_bufalloc (self ) -> bool : ...
3791+ @property
3792+ def has_index (self ) -> bool : ...
3793+ @property
3794+ def has_multi_index (self ) -> bool : ...
3795+ @property
3796+ def index (self ) -> int : ...
3797+ @property
3798+ def iterationneedsapi (self ) -> bool : ...
3799+ @property
3800+ def iterindex (self ) -> int : ...
3801+ @property
3802+ def iterrange (self ) -> Tuple [int , ...]: ...
3803+ @property
3804+ def itersize (self ) -> int : ...
3805+ @property
3806+ def itviews (self ) -> Tuple [NDArray [Any ], ...]: ...
3807+ @property
3808+ def multi_index (self ) -> Tuple [int , ...]: ...
3809+ @property
3810+ def ndim (self ) -> int : ...
3811+ @property
3812+ def nop (self ) -> int : ...
3813+ @property
3814+ def operands (self ) -> Tuple [NDArray [Any ], ...]: ...
3815+ @property
3816+ def shape (self ) -> Tuple [int , ...]: ...
3817+ @property
3818+ def value (self ) -> Tuple [NDArray [Any ], ...]: ...
0 commit comments