Skip to content

Commit

Permalink
Allow passing exception classes for KeyboardInterrupt and EOFError in…
Browse files Browse the repository at this point in the history
… PromptSession.
  • Loading branch information
jonathanslenders committed Jun 7, 2024
1 parent 98659af commit c125f79
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions src/prompt_toolkit/shortcuts/prompt.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,8 @@ def __init__(
refresh_interval: float = 0,
input: Input | None = None,
output: Output | None = None,
interrupt_exception: type[BaseException] = KeyboardInterrupt,
eof_exception: type[BaseException] = EOFError,
) -> None:
history = history or InMemoryHistory()
clipboard = clipboard or InMemoryClipboard()
Expand Down Expand Up @@ -459,6 +461,8 @@ def __init__(
self.reserve_space_for_menu = reserve_space_for_menu
self.tempfile_suffix = tempfile_suffix
self.tempfile = tempfile
self.interrupt_exception = interrupt_exception
self.eof_exception = eof_exception

# Create buffers, layout and Application.
self.history = history
Expand Down Expand Up @@ -811,7 +815,7 @@ def _complete_like_readline(event: E) -> None:
@handle("<sigint>")
def _keyboard_interrupt(event: E) -> None:
"Abort when Control-C has been pressed."
event.app.exit(exception=KeyboardInterrupt, style="class:aborting")
event.app.exit(exception=self.interrupt_exception(), style="class:aborting")

@Condition
def ctrl_d_condition() -> bool:
Expand All @@ -826,7 +830,7 @@ def ctrl_d_condition() -> bool:
@handle("c-d", filter=ctrl_d_condition & default_focused)
def _eof(event: E) -> None:
"Exit when Control-D has been pressed."
event.app.exit(exception=EOFError, style="class:exiting")
event.app.exit(exception=self.eof_exception(), style="class:exiting")

suspend_supported = Condition(suspend_to_background_supported)

Expand Down

0 comments on commit c125f79

Please sign in to comment.