Source code for pixviz.ui_logging

import datetime
from typing import Literal

from PyQt6.QtGui import QTextCursor

__all__ = ['LOGGING_TYPE',
           'DEBUG_LOGGING',
           'log_message']

LOGGING_TYPE = Literal['DEBUG', 'INFO', 'IO', 'WARNING', 'ERROR']
DEBUG_LOGGING = False


[docs] def log_message(message: str, log_type: LOGGING_TYPE = 'INFO', debug_mode: bool = DEBUG_LOGGING) -> None: """ Logging in the message area of the GUI :param message: message string :param log_type: ``LOGGING_TYPE`` :param debug_mode: If show the debug type """ from .main_gui import PixVizGUI app = PixVizGUI.INSTANCE if not debug_mode and log_type == 'DEBUG': return timestamp = datetime.datetime.now().strftime("%H:%M:%S") color = _get_log_type_color(log_type) log_entry = f'<span style="color:{color};">[{timestamp}] [{log_type}] - {message}</span><br>' if app.message_log is None: print(message) else: app.message_log.insertHtml(log_entry) app.message_log.moveCursor(QTextCursor.MoveOperation.End)
def _get_log_type_color(log_type: LOGGING_TYPE) -> str: match log_type: case 'INFO': return 'white' case 'IO': return 'cyan' case 'WARNING': return 'orange' case 'ERROR': return 'red' case _: return 'white'