From cf4678c84a3ca029981d0290f4e7c13b348d7ef2 Mon Sep 17 00:00:00 2001 From: benchatt Date: Thu, 23 May 2024 13:46:06 -0400 Subject: [PATCH] Add deprecated parameter to two classes in argparse (#12017) --- stdlib/@tests/stubtest_allowlists/py313.txt | 4 - stdlib/argparse.pyi | 116 ++++++++++++++------ 2 files changed, 80 insertions(+), 40 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/py313.txt b/stdlib/@tests/stubtest_allowlists/py313.txt index 16b964149..6fc5ef5c2 100644 --- a/stdlib/@tests/stubtest_allowlists/py313.txt +++ b/stdlib/@tests/stubtest_allowlists/py313.txt @@ -37,13 +37,9 @@ _thread.start_new_thread _tkinter.TkappType.gettrace _tkinter.TkappType.settrace _tkinter.create -argparse.Action.__init__ -argparse.BooleanOptionalAction.__init__ -argparse._AppendAction.__init__ argparse._AppendConstAction.__init__ argparse._CountAction.__init__ argparse._HelpAction.__init__ -argparse._StoreAction.__init__ argparse._StoreConstAction.__init__ argparse._StoreFalseAction.__init__ argparse._StoreTrueAction.__init__ diff --git a/stdlib/argparse.pyi b/stdlib/argparse.pyi index 070165473..a0e59630d 100644 --- a/stdlib/argparse.pyi +++ b/stdlib/argparse.pyi @@ -318,19 +318,36 @@ class Action(_AttributeHolder): required: bool help: str | None metavar: str | tuple[str, ...] | None - def __init__( - self, - option_strings: Sequence[str], - dest: str, - nargs: int | str | None = None, - const: _T | None = None, - default: _T | str | None = None, - type: Callable[[str], _T] | FileType | None = None, - choices: Iterable[_T] | None = None, - required: bool = False, - help: str | None = None, - metavar: str | tuple[str, ...] | None = None, - ) -> None: ... + if sys.version_info >= (3, 13): + def __init__( + self, + option_strings: Sequence[str], + dest: str, + nargs: int | str | None = None, + const: _T | None = None, + default: _T | str | None = None, + type: Callable[[str], _T] | FileType | None = None, + choices: Iterable[_T] | None = None, + required: bool = False, + help: str | None = None, + metavar: str | tuple[str, ...] | None = None, + deprecated: bool = False, + ) -> None: ... + else: + def __init__( + self, + option_strings: Sequence[str], + dest: str, + nargs: int | str | None = None, + const: _T | None = None, + default: _T | str | None = None, + type: Callable[[str], _T] | FileType | None = None, + choices: Iterable[_T] | None = None, + required: bool = False, + help: str | None = None, + metavar: str | tuple[str, ...] | None = None, + ) -> None: ... + def __call__( self, parser: ArgumentParser, namespace: Namespace, values: str | Sequence[Any] | None, option_string: str | None = None ) -> None: ... @@ -339,29 +356,56 @@ class Action(_AttributeHolder): if sys.version_info >= (3, 12): class BooleanOptionalAction(Action): - @overload - def __init__( - self, - option_strings: Sequence[str], - dest: str, - default: bool | None = None, - *, - required: bool = False, - help: str | None = None, - ) -> None: ... - @overload - @deprecated("The `type`, `choices`, and `metavar` parameters are ignored and will be removed in Python 3.14.") - def __init__( - self, - option_strings: Sequence[str], - dest: str, - default: _T | bool | None = None, - type: Callable[[str], _T] | FileType | None = sentinel, - choices: Iterable[_T] | None = sentinel, - required: bool = False, - help: str | None = None, - metavar: str | tuple[str, ...] | None = sentinel, - ) -> None: ... + if sys.version_info >= (3, 13): + @overload + def __init__( + self, + option_strings: Sequence[str], + dest: str, + default: bool | None = None, + *, + required: bool = False, + help: str | None = None, + deprecated: bool = False, + ) -> None: ... + @overload + @deprecated("The `type`, `choices`, and `metavar` parameters are ignored and will be removed in Python 3.14.") + def __init__( + self, + option_strings: Sequence[str], + dest: str, + default: _T | bool | None = None, + type: Callable[[str], _T] | FileType | None = sentinel, + choices: Iterable[_T] | None = sentinel, + required: bool = False, + help: str | None = None, + metavar: str | tuple[str, ...] | None = sentinel, + deprecated: bool = False, + ) -> None: ... + else: + @overload + def __init__( + self, + option_strings: Sequence[str], + dest: str, + default: bool | None = None, + *, + required: bool = False, + help: str | None = None, + ) -> None: ... + @overload + @deprecated("The `type`, `choices`, and `metavar` parameters are ignored and will be removed in Python 3.14.") + def __init__( + self, + option_strings: Sequence[str], + dest: str, + default: _T | bool | None = None, + type: Callable[[str], _T] | FileType | None = sentinel, + choices: Iterable[_T] | None = sentinel, + required: bool = False, + help: str | None = None, + metavar: str | tuple[str, ...] | None = sentinel, + ) -> None: ... elif sys.version_info >= (3, 9): class BooleanOptionalAction(Action):