From 64de4505c24802d0244fb7f0ff3233a21177d1af Mon Sep 17 00:00:00 2001 From: Iliya Iliev Date: Fri, 30 Jan 2026 11:13:03 +0200 Subject: [PATCH 1/2] Fix confirm returning str when pressing Enter --- src/prompt_toolkit/shortcuts/prompt.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/prompt_toolkit/shortcuts/prompt.py b/src/prompt_toolkit/shortcuts/prompt.py index 68cfeb9aa..6a1b457fd 100644 --- a/src/prompt_toolkit/shortcuts/prompt.py +++ b/src/prompt_toolkit/shortcuts/prompt.py @@ -1499,7 +1499,7 @@ def prompt( def create_confirm_session( - message: AnyFormattedText, suffix: str = " (y/n) " + message: AnyFormattedText, suffix: str = " (y/n) ", default: bool = False ) -> PromptSession[bool]: """ Create a `PromptSession` object for the 'confirm' function. @@ -1518,6 +1518,11 @@ def no(event: E) -> None: session.default_buffer.text = "n" event.app.exit(result=False) + @bindings.add(Keys.Enter) + def newline(event: E) -> None: + session.default_buffer.text = "" + event.app.exit(result=default) + @bindings.add(Keys.Any) def _(event: E) -> None: "Disallow inserting other text." @@ -1530,9 +1535,13 @@ def _(event: E) -> None: return session -def confirm(message: AnyFormattedText = "Confirm?", suffix: str = " (y/n) ") -> bool: +def confirm( + message: AnyFormattedText = "Confirm?", + suffix: str = " (y/n) ", + default: bool = False, +) -> bool: """ Display a confirmation prompt that returns True/False. """ - session = create_confirm_session(message, suffix) + session = create_confirm_session(message, suffix, default) return session.prompt() From 2ee71d514540ff37de07d6cfa3940d3e3085e3d5 Mon Sep 17 00:00:00 2001 From: Iliya Iliev Date: Fri, 30 Jan 2026 11:16:43 +0200 Subject: [PATCH 2/2] Tweak default buffer text --- src/prompt_toolkit/shortcuts/prompt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/prompt_toolkit/shortcuts/prompt.py b/src/prompt_toolkit/shortcuts/prompt.py index 6a1b457fd..23614386c 100644 --- a/src/prompt_toolkit/shortcuts/prompt.py +++ b/src/prompt_toolkit/shortcuts/prompt.py @@ -1520,7 +1520,7 @@ def no(event: E) -> None: @bindings.add(Keys.Enter) def newline(event: E) -> None: - session.default_buffer.text = "" + session.default_buffer.text = "y" if default else "n" event.app.exit(result=default) @bindings.add(Keys.Any)