Skip to content

Commit 3be7918

Browse files
authored
deprecated: support use as decorator (#4449)
As opposed to just a decorator factory Co-authored-by: hauntsaninja <>
1 parent e2d335b commit 3be7918

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from typing import Any, Callable, Optional, Type, TypeVar
1+
from typing import Any, Callable, Optional, Type, TypeVar, overload
22

3-
_T = TypeVar("_T", bound=Callable[..., Any])
3+
_F = TypeVar("_F", bound=Callable[..., Any])
44

55
class ClassicAdapter:
66
reason: str
@@ -11,8 +11,11 @@ class ClassicAdapter:
1111
self, reason: str = ..., version: str = ..., action: Optional[str] = ..., category: Type[DeprecationWarning] = ...,
1212
) -> None: ...
1313
def get_deprecated_msg(self, wrapped: Callable[..., Any], instance: object) -> str: ...
14-
def __call__(self, wrapped: _T) -> Callable[[_T], _T]: ...
14+
def __call__(self, wrapped: _F) -> Callable[[_F], _F]: ...
1515

16+
@overload
17+
def deprecated(__wrapped: _F) -> _F: ...
18+
@overload
1619
def deprecated(
17-
*, reason: str = ..., version: str = ..., action: Optional[str] = ..., category: Optional[Type[DeprecationWarning]] = ...,
18-
) -> Callable[[_T], _T]: ...
20+
reason: str = ..., *, version: str = ..., action: Optional[str] = ..., category: Optional[Type[DeprecationWarning]] = ...,
21+
) -> Callable[[_F], _F]: ...

third_party/2and3/deprecated/sphinx.pyi

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
from typing import Any, Callable, Optional, Type, TypeVar
1+
from typing import Any, Callable, Optional, Type, TypeVar, overload
22
from typing_extensions import Literal
33

44
from .classic import ClassicAdapter
55

6-
_T = TypeVar("_T", bound=Callable[..., Any])
6+
_F = TypeVar("_F", bound=Callable[..., Any])
77

88
class SphinxAdapter(ClassicAdapter):
99
directive: Literal["versionadded", "versionchanged", "deprecated"]
@@ -19,10 +19,13 @@ class SphinxAdapter(ClassicAdapter):
1919
action: Optional[str] = ...,
2020
category: Type[DeprecationWarning] = ...,
2121
) -> None: ...
22-
def __call__(self, wrapped: _T) -> Callable[[_T], _T]: ...
22+
def __call__(self, wrapped: _F) -> Callable[[_F], _F]: ...
2323

24-
def versionadded(reason: str = ..., version: str = ...) -> Callable[[_T], _T]: ...
25-
def versionchanged(reason: str = ..., version: str = ...) -> Callable[[_T], _T]: ...
24+
def versionadded(reason: str = ..., version: str = ...) -> Callable[[_F], _F]: ...
25+
def versionchanged(reason: str = ..., version: str = ...) -> Callable[[_F], _F]: ...
26+
@overload
27+
def deprecated(__wrapped: _F) -> _F: ...
28+
@overload
2629
def deprecated(
27-
*, reason: str = ..., version: str = ..., action: Optional[str] = ..., category: Optional[Type[DeprecationWarning]] = ...,
28-
) -> Callable[[_T], _T]: ...
30+
reason: str = ..., *, version: str = ..., action: Optional[str] = ..., category: Optional[Type[DeprecationWarning]] = ...,
31+
) -> Callable[[_F], _F]: ...

0 commit comments

Comments
 (0)