@@ -9,6 +9,7 @@ from _typeshed import (
9
9
ConvertibleToFloat ,
10
10
ConvertibleToInt ,
11
11
FileDescriptorOrPath ,
12
+ MaybeNone ,
12
13
OpenBinaryMode ,
13
14
OpenBinaryModeReading ,
14
15
OpenBinaryModeUpdating ,
@@ -94,6 +95,9 @@ _SupportsAnextT = TypeVar("_SupportsAnextT", bound=SupportsAnext[Any], covariant
94
95
_AwaitableT = TypeVar ("_AwaitableT" , bound = Awaitable [Any ])
95
96
_AwaitableT_co = TypeVar ("_AwaitableT_co" , bound = Awaitable [Any ], covariant = True )
96
97
_P = ParamSpec ("_P" )
98
+ _StartT = TypeVar ("_StartT" , covariant = True , default = Any )
99
+ _StopT = TypeVar ("_StopT" , covariant = True , default = Any )
100
+ _StepT = TypeVar ("_StepT" , covariant = True , default = Any )
97
101
98
102
class object :
99
103
__doc__ : str | None
@@ -936,17 +940,25 @@ class bool(int):
936
940
def __invert__ (self ) -> int : ...
937
941
938
942
@final
939
- class slice :
943
+ class slice ( Generic [ _StartT , _StopT , _StepT ]) :
940
944
@property
941
- def start (self ) -> Any : ...
945
+ def start (self ) -> _StartT : ...
942
946
@property
943
- def step (self ) -> Any : ...
947
+ def step (self ) -> _StepT : ...
944
948
@property
945
- def stop (self ) -> Any : ...
949
+ def stop (self ) -> _StopT : ...
946
950
@overload
947
- def __new__ (cls , stop : Any , / ) -> Self : ...
951
+ def __new__ (cls , stop : int | None ) -> slice [ int | MaybeNone , int | MaybeNone , int | MaybeNone ] : ...
948
952
@overload
949
- def __new__ (cls , start : Any , stop : Any , step : Any = ..., / ) -> Self : ...
953
+ def __new__ (
954
+ cls , start : int | None , stop : int | None , step : int | None = None
955
+ ) -> slice [int | MaybeNone , int | MaybeNone , int | MaybeNone ]: ...
956
+ @overload
957
+ def __new__ (cls , stop : _T2 , / ) -> slice [Any , _T2 , Any ]: ...
958
+ @overload
959
+ def __new__ (cls , start : _T1 , stop : _T2 , / ) -> slice [_T1 , _T2 , Any ]: ...
960
+ @overload
961
+ def __new__ (cls , start : _T1 , stop : _T2 , step : _T3 , / ) -> slice [_T1 , _T2 , _T3 ]: ...
950
962
def __eq__ (self , value : object , / ) -> bool : ...
951
963
if sys .version_info >= (3 , 12 ):
952
964
def __hash__ (self ) -> int : ...
0 commit comments