NucelarMonitor/Python/Interfaces/Application/NucelarMonitorInterface.py

53 lines
2.0 KiB
Python

#!/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