Skip to content

Commit 9d84db2

Browse files
AlexWaygoodhauntsaninja
authored andcommitted
Revert use of ParamSpec for functools.wraps
1 parent 83ecc17 commit 9d84db2

File tree

1 file changed

+6
-25
lines changed

1 file changed

+6
-25
lines changed

mypy/typeshed/stdlib/functools.pyi

+6-25
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import sys
22
import types
3-
from _typeshed import SupportsAllComparisons, SupportsItems
3+
from _typeshed import IdentityFunction, SupportsAllComparisons, SupportsItems
44
from collections.abc import Callable, Hashable, Iterable, Sequence, Sized
55
from typing import Any, Generic, NamedTuple, TypeVar, overload
6-
from typing_extensions import Literal, ParamSpec, Self, TypeAlias, final
6+
from typing_extensions import Literal, Self, TypeAlias, final
77

88
if sys.version_info >= (3, 9):
99
from types import GenericAlias
@@ -28,12 +28,10 @@ if sys.version_info >= (3, 8):
2828
if 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
3937
def reduce(function: Callable[[_T, _S], _T], sequence: Iterable[_S], initial: _T) -> _T: ...
@@ -69,25 +67,8 @@ WRAPPER_ASSIGNMENTS: tuple[
6967
]
7068
WRAPPER_UPDATES: tuple[Literal["__dict__"]]
7169

72-
class _Wrapped(Generic[_PWrapped, _RWrapped, _PWrapper, _RWapper]):
73-
__wrapped__: Callable[_PWrapped, _RWrapped]
74-
def __call__(self, *args: _PWrapper.args, **kwargs: _PWrapper.kwargs) -> _RWapper: ...
75-
# as with ``Callable``, we'll assume that these attributes exist
76-
__name__: str
77-
__qualname__: str
78-
79-
class _Wrapper(Generic[_PWrapped, _RWrapped]):
80-
def __call__(self, f: Callable[_PWrapper, _RWapper]) -> _Wrapped[_PWrapped, _RWrapped, _PWrapper, _RWapper]: ...
81-
82-
def update_wrapper(
83-
wrapper: Callable[_PWrapper, _RWapper],
84-
wrapped: Callable[_PWrapped, _RWrapped],
85-
assigned: Sequence[str] = ...,
86-
updated: Sequence[str] = ...,
87-
) -> _Wrapped[_PWrapped, _RWrapped, _PWrapper, _RWapper]: ...
88-
def wraps(
89-
wrapped: Callable[_PWrapped, _RWrapped], assigned: Sequence[str] = ..., updated: Sequence[str] = ...
90-
) -> _Wrapper[_PWrapped, _RWrapped]: ...
70+
def update_wrapper(wrapper: _T, wrapped: _AnyCallable, assigned: Sequence[str] = ..., updated: Sequence[str] = ...) -> _T: ...
71+
def wraps(wrapped: _AnyCallable, assigned: Sequence[str] = ..., updated: Sequence[str] = ...) -> IdentityFunction: ...
9172
def total_ordering(cls: type[_T]) -> type[_T]: ...
9273
def cmp_to_key(mycmp: Callable[[_T, _T], int]) -> Callable[[_T], SupportsAllComparisons]: ...
9374

0 commit comments

Comments
 (0)