from __future__ import annotations from typing import Callable from prompt_toolkit.eventloop import InputHook from prompt_toolkit.formatted_text import AnyFormattedText from prompt_toolkit.input import DummyInput from prompt_toolkit.output import DummyOutput from .application import Application __all__ = [ "DummyApplication", ] class DummyApplication(Application[None]): """ When no :class:`.Application` is running, :func:`.get_app` will run an instance of this :class:`.DummyApplication` instead. """ def __init__(self) -> None: super().__init__(output=DummyOutput(), input=DummyInput()) def run( self, pre_run: Callable[[], None] | None = None, set_exception_handler: bool = True, handle_sigint: bool = True, in_thread: bool = False, inputhook: InputHook | None = None, ) -> None: raise NotImplementedError("A DummyApplication is not supposed to run.") async def run_async( self, pre_run: Callable[[], None] | None = None, set_exception_handler: bool = True, handle_sigint: bool = True, slow_callback_duration: float = 0.5, ) -> None: raise NotImplementedError("A DummyApplication is not supposed to run.") async def run_system_command( self, command: str, wait_for_enter: bool = True, display_before_text: AnyFormattedText = "", wait_text: str = "", ) -> None: raise NotImplementedError def suspend_to_background(self, suspend_group: bool = True) -> None: raise NotImplementedError