From c8a978f756a7e18cd569eb6572cc8c9592070e4f Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Mon, 25 Apr 2022 21:06:32 -0700 Subject: [PATCH] typing: Add `dataclass_transform` (#7690) python/cpython#91861 --- stdlib/typing.pyi | 9 +++++++++ stdlib/typing_extensions.pyi | 18 +++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/stdlib/typing.pyi b/stdlib/typing.pyi index aaf5536e8..37ea55c9f 100644 --- a/stdlib/typing.pyi +++ b/stdlib/typing.pyi @@ -88,6 +88,7 @@ if sys.version_info >= (3, 11): "assert_type", "cast", "clear_overloads", + "dataclass_transform", "final", "get_args", "get_origin", @@ -1224,6 +1225,14 @@ if sys.version_info >= (3, 11): def assert_type(__val: _T, __typ: Any) -> _T: ... def clear_overloads() -> None: ... def get_overloads(func: Callable[..., object]) -> Sequence[Callable[..., object]]: ... + def dataclass_transform( + *, + eq_default: bool = ..., + order_default: bool = ..., + kw_only_default: bool = ..., + field_specifiers: tuple[type[Any] | Callable[..., Any], ...] = ..., + **kwargs: Any, + ) -> Callable[[_T], _T]: ... # Type constructors diff --git a/stdlib/typing_extensions.pyi b/stdlib/typing_extensions.pyi index 1c75ec38e..227bb058a 100644 --- a/stdlib/typing_extensions.pyi +++ b/stdlib/typing_extensions.pyi @@ -201,6 +201,7 @@ if sys.version_info >= (3, 11): assert_never as assert_never, assert_type as assert_type, clear_overloads as clear_overloads, + dataclass_transform as dataclass_transform, get_overloads as get_overloads, reveal_type as reveal_type, ) @@ -224,12 +225,11 @@ else: def __init__(self, name: str) -> None: ... def __iter__(self) -> Any: ... # Unpack[Self] -# Experimental (hopefully these will be in 3.11) -def dataclass_transform( - *, - eq_default: bool = ..., - order_default: bool = ..., - kw_only_default: bool = ..., - field_specifiers: tuple[type[Any] | Callable[..., Any], ...] = ..., - **kwargs: object, -) -> Callable[[_T], _T]: ... + def dataclass_transform( + *, + eq_default: bool = ..., + order_default: bool = ..., + kw_only_default: bool = ..., + field_specifiers: tuple[type[Any] | Callable[..., Any], ...] = ..., + **kwargs: object, + ) -> Callable[[_T], _T]: ...