Исходный код dublib.CLI.Templates.Bus

from ..TextStyler import Codes, TextStyler
from .. import readline

import enum

#==========================================================================================#
# >>>>> ПЕРЕЧИСЛЕНИЯ <<<<< #
#==========================================================================================#

[документация] class MessagesTypes(enum.Enum): """Перечисление типов сообщений.""" Info = "info" Warning = "warning" Error = "error" Critical = "critical"
#==========================================================================================# # >>>>> ФУНКЦИИ ГЕНЕРАЦИИ И ВЫВОДА СООБЩЕНИЙ <<<<< # #==========================================================================================#
[документация] def GenerateMessage(text: str, type: MessagesTypes | None = None, origin: str | None = None) -> str: """ Генерирует сообщение на основе переданных параметров. :param text: Текст сообщения. :type text: str :param type: Тип сообщения. :type type: MessagesTypes | None :param origin: Источник сообщения. :type origin: str | None :return: Текст сообщения в формате `[{ORIGIN}:{TYPE}] {MESSAGE}`. :rtype: str """ OriginPart = "" TypePart = "" if origin: OriginPart = f"{origin}:" if type: TypePart = f"[{OriginPart}{type.name.upper()}] " return f"{TypePart}{text}"
[документация] def PrintMessage(text: str, type: MessagesTypes | None = None, origin: str | None = None): """ Выводит в консоль стилизованное сообщение. :param text: Текст сообщения. :type text: str :param type: Тип сообщения. :type type: MessagesTypes | None :param origin: Источник сообщения. :type origin: str | None """ ColorsDict = { MessagesTypes.Info: Codes.Colors.White, MessagesTypes.Error: Codes.Colors.Red, MessagesTypes.Warning: Codes.Colors.Yellow, MessagesTypes.Critical: Codes.Colors.Red, None: Codes.Drops.DEFAULT_COLOR } print(TextStyler(text_color = ColorsDict[type]).get_styled_text(GenerateMessage(text, type, origin)))
#==========================================================================================# # >>>>> ШАБЛОНЫ ТИПОВ СООБЩЕНИЙ <<<<< # #==========================================================================================#
[документация] def PrintInfo(text: str, origin: str | None = None): """ Выводит в консоль стилизованное информационное сообщение. :param text: Текст сообщения. :type text: str :param origin: Источник сообщения. :type origin: str | None """ PrintMessage(text, type = MessagesTypes.Info, origin = origin)
[документация] def PrintWarning(text: str, origin: str | None = None): """ Выводит в консоль стилизованное предупреждение. :param text: Текст сообщения. :type text: str :param origin: Источник сообщения. :type origin: str | None """ PrintMessage(text, type = MessagesTypes.Warning, origin = origin)
[документация] def PrintError(text: str, origin: str | None = None): """ Выводит в консоль стилизованное сообщение об ошибке. :param text: Текст сообщения. :type text: str :param origin: Источник сообщения. :type origin: str | None """ PrintMessage(text, type = MessagesTypes.Error, origin = origin)
[документация] def PrintCritical(text: str, origin: str | None = None): """ Выводит в консоль стилизованное сообщение о критической ошибке. :param text: Текст сообщения. :type text: str :param origin: Источник сообщения. :type origin: str | None """ PrintMessage(text, type = MessagesTypes.Critical, origin = origin)