11import sys
22import types
3- from _typeshed import SupportsAllComparisons , SupportsItems
3+ from _typeshed import IdentityFunction , SupportsAllComparisons , SupportsItems
44from collections .abc import Callable , Hashable , Iterable , Sequence , Sized
55from typing import Any , Generic , NamedTuple , TypeVar , overload
6- from typing_extensions import Literal , ParamSpec , Self , TypeAlias , TypedDict , final
6+ from typing_extensions import Literal , Self , TypeAlias , TypedDict , final
77
88if sys .version_info >= (3 , 9 ):
99 from types import GenericAlias
@@ -28,12 +28,10 @@ if sys.version_info >= (3, 8):
2828if sys .version_info >= (3 , 9 ):
2929 __all__ += ["cache" ]
3030
31+ _AnyCallable : TypeAlias = Callable [..., object ]
32+
3133_T = TypeVar ("_T" )
3234_S = TypeVar ("_S" )
33- _PWrapped = ParamSpec ("_PWrapped" )
34- _RWrapped = TypeVar ("_RWrapped" )
35- _PWrapper = ParamSpec ("_PWrapper" )
36- _RWapper = TypeVar ("_RWapper" )
3735
3836@overload
3937def reduce (function : Callable [[_T , _S ], _T ], sequence : Iterable [_S ], initial : _T ) -> _T : ...
@@ -87,41 +85,31 @@ else:
8785 ]
8886WRAPPER_UPDATES : tuple [Literal ["__dict__" ]]
8987
90- class _Wrapped (Generic [_PWrapped , _RWrapped , _PWrapper , _RWapper ]):
91- __wrapped__ : Callable [_PWrapped , _RWrapped ]
92- def __call__ (self , * args : _PWrapper .args , ** kwargs : _PWrapper .kwargs ) -> _RWapper : ...
93- # as with ``Callable``, we'll assume that these attributes exist
94- __name__ : str
95- __qualname__ : str
96-
97- class _Wrapper (Generic [_PWrapped , _RWrapped ]):
98- def __call__ (self , f : Callable [_PWrapper , _RWapper ]) -> _Wrapped [_PWrapped , _RWrapped , _PWrapper , _RWapper ]: ...
99-
10088if sys .version_info >= (3 , 12 ):
10189 def update_wrapper (
102- wrapper : Callable [ _PWrapper , _RWapper ] ,
103- wrapped : Callable [ _PWrapped , _RWrapped ] ,
90+ wrapper : _T ,
91+ wrapped : _AnyCallable ,
10492 assigned : Sequence [str ] = ("__module__" , "__name__" , "__qualname__" , "__doc__" , "__annotations__" , "__type_params__" ),
10593 updated : Sequence [str ] = ("__dict__" ,),
106- ) -> _Wrapped [ _PWrapped , _RWrapped , _PWrapper , _RWapper ] : ...
94+ ) -> _T : ...
10795 def wraps (
108- wrapped : Callable [ _PWrapped , _RWrapped ] ,
96+ wrapped : _AnyCallable ,
10997 assigned : Sequence [str ] = ("__module__" , "__name__" , "__qualname__" , "__doc__" , "__annotations__" , "__type_params__" ),
11098 updated : Sequence [str ] = ("__dict__" ,),
111- ) -> _Wrapper [ _PWrapped , _RWrapped ] : ...
99+ ) -> IdentityFunction : ...
112100
113101else :
114102 def update_wrapper (
115- wrapper : Callable [ _PWrapper , _RWapper ] ,
116- wrapped : Callable [ _PWrapped , _RWrapped ] ,
103+ wrapper : _T ,
104+ wrapped : _AnyCallable ,
117105 assigned : Sequence [str ] = ("__module__" , "__name__" , "__qualname__" , "__doc__" , "__annotations__" ),
118106 updated : Sequence [str ] = ("__dict__" ,),
119- ) -> _Wrapped [ _PWrapped , _RWrapped , _PWrapper , _RWapper ] : ...
107+ ) -> _T : ...
120108 def wraps (
121- wrapped : Callable [ _PWrapped , _RWrapped ] ,
109+ wrapped : _AnyCallable ,
122110 assigned : Sequence [str ] = ("__module__" , "__name__" , "__qualname__" , "__doc__" , "__annotations__" ),
123111 updated : Sequence [str ] = ("__dict__" ,),
124- ) -> _Wrapper [ _PWrapped , _RWrapped ] : ...
112+ ) -> IdentityFunction : ...
125113
126114def total_ordering (cls : type [_T ]) -> type [_T ]: ...
127115def cmp_to_key (mycmp : Callable [[_T , _T ], int ]) -> Callable [[_T ], SupportsAllComparisons ]: ...
0 commit comments