from typing import List, Tuple from bauh.api.abstract.view import MessageType, ViewComponent class ProcessWatcher: """ Represents an view component watching background processes. It's a bridge for ApplicationManager instances notifiy the view of processes progression and also request any user interaction without the need of knowing any GUI code. """ def print(self, msg: str): """ prints a given message to the user. In the current GUI implementation, the message is printed on the terminal window ("Details") :param msg: :return: """ pass def request_confirmation(self, title: str, body: str, components: List[ViewComponent] = None, confirmation_label: str = None, deny_label: str = None)-> bool: """ request a user confirmation. In the current GUI implementation, it shows a popup to the user. :param title: popup title :param body: popup body :param components: extra view components that will be rendered to the confirmation popup. :param confirmation_label: optional confirmation button label (default to 'yes') :param deny_label: optional deny button label (default to 'no') :return: if the request was confirmed by the user """ pass def show_message(self, title: str, body: str, type_: MessageType = MessageType.INFO): """ shows a message to the user. In the current GUI implementation, it shows a popup. :param title: :param body: :param type_: determines the icon that will be displayed :return: """ pass def change_status(self, msg: str): """ Changes the process status. In the current GUI implementation, the process status is displayed above the toolbar. :param msg: msg :return: """ pass def change_substatus(self, msg: str): """ Changes the process substatus. In the current GUI implementation, the process substatus is displayed above the progress bar. :param msg: :return: """ def change_progress(self, val: int): """ Changes the process progress. In the current GUI implementation, the progress is displayed as a bottom bar. :param val: a val between 0 and 100 :return: """ def should_stop(self) -> bool: """ :return: if the use requested to stop the process. """ def request_root_password(self) -> Tuple[str, bool]: """ asks the root password for the user :return: a tuple with the typed password and if it is valid """