#!/usr/bin/env python3 # -*- coding: utf-8 -*- from abc import ABC, abstractmethod from typing import Self, Any, Optional, Sequence from Interfaces.Drivers.FilesDriversInterface import FilesDriverInterface from Interfaces.Managers.I18NManagersInterface import I18NManagerInterface from Interfaces.Managers.SettingsManagersInterface import SettingsManagerInterface from Interfaces.Managers.TerminalManagerInterface import TerminalManagerInterface from Interfaces.Managers.ModelsManagerInterface import ModelsManagerInterface from Interfaces.Managers.ControllersManagerInterface import ControllersManagerInterface from Interfaces.Managers.RoutesManagerInterface import RoutesManagerInterface from Interfaces.Abstracts.WebSocketAbstractInterface import WebSocketAbstractInterface class NucelarMonitorInterface(ABC): def __init__(self:Self, inputs:Optional[dict[str, Any|None]|Sequence[Any|None]] = None) -> None: self.files:FilesDriverInterface = None self.i18n:I18NManagerInterface = None self.settings:SettingsManagerInterface = None self.terminal:TerminalManagerInterface = None self.models:ModelsManagerInterface = None self.controllers:ControllersManagerInterface = None self.routes:RoutesManagerInterface = None self.web_socket:WebSocketAbstractInterface = None @abstractmethod def start(self:Self) -> bool:pass @abstractmethod def close(self:Self) -> bool:pass @abstractmethod def get_print_type(self:Self, _type:str) -> str:pass @abstractmethod def print(self:Self, _type:str, message:str|Sequence[str], inputs:Optional[dict[str, Any|None]|Sequence[Any|None]] = None, i:int = 0 ) -> None:pass @abstractmethod def exception(self:Self, exception:Exception, message:str|Sequence[str], inputs:Optional[dict[str, Any|None]|Sequence[Any|None]] = None, i:int = 0 ) -> None:pass @abstractmethod def is_working(self:Self) -> bool:pass