From 611cba35d9f9446f734ed0c7dd6d8eb314d67c84 Mon Sep 17 00:00:00 2001 From: Semyon Moroz Date: Fri, 18 Jul 2025 18:53:30 +0000 Subject: [PATCH] [argparse] Deprecate `prefix_chars` in `ArgumentParser.add_argument_group` (#14428) --- stdlib/argparse.pyi | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/stdlib/argparse.pyi b/stdlib/argparse.pyi index 312093c0a..00a4c670e 100644 --- a/stdlib/argparse.pyi +++ b/stdlib/argparse.pyi @@ -495,16 +495,40 @@ else: class _ArgumentGroup(_ActionsContainer): title: str | None _group_actions: list[Action] - def __init__( - self, - container: _ActionsContainer, - title: str | None = None, - description: str | None = None, - *, - prefix_chars: str = ..., - argument_default: Any = ..., - conflict_handler: str = ..., - ) -> None: ... + if sys.version_info >= (3, 14): + @overload + def __init__( + self, + container: _ActionsContainer, + title: str | None = None, + description: str | None = None, + *, + argument_default: Any = ..., + conflict_handler: str = ..., + ) -> None: ... + @overload + @deprecated("Undocumented `prefix_chars` parameter is deprecated since Python 3.14.") + def __init__( + self, + container: _ActionsContainer, + title: str | None = None, + description: str | None = None, + *, + prefix_chars: str, + argument_default: Any = ..., + conflict_handler: str = ..., + ) -> None: ... + else: + def __init__( + self, + container: _ActionsContainer, + title: str | None = None, + description: str | None = None, + *, + prefix_chars: str = ..., + argument_default: Any = ..., + conflict_handler: str = ..., + ) -> None: ... # undocumented class _MutuallyExclusiveGroup(_ArgumentGroup):