CXCV/Python/Interfaces/Application/CXCVInterface.py

47 lines
1.9 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from typing import Self, Any, Optional
from abc import ABC, abstractmethod
from Interfaces.Drivers.FilesDriverInterface import FilesDriverInterface
from Interfaces.Managers.SettingsManagerInterface import SettingsManagerInterface
from Interfaces.Managers.I18NManagerInterface import I18NManagerInterface
from Interfaces.Managers.TerminalManagerInterface import TerminalManagerInterface
from Interfaces.Managers.ModelsManagerInterface import ModelsManagerInterface
from Interfaces.Managers.DatabasesManagerInterface import DatabasesManagerInterface
from Interfaces.Managers.ControllersManagerInterface import ControllersManagerInterface
from Interfaces.Managers.ProceduresManagerInterface import ProceduresManagerInterface
class CXCVInterface(ABC):
def __init__(self:Self,
inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None, ...]] = None
) -> None:
self.working:bool = None
self.files:FilesDriverInterface = None
self.settings:SettingsManagerInterface = None
self.i18n:I18NManagerInterface = None
self.terminal:TerminalManagerInterface = None
self.models:ModelsManagerInterface = None
self.databases:DatabasesManagerInterface = None
self.controllers:ControllersManagerInterface = None
self.procedures:ProceduresManagerInterface = None
@abstractmethod
def close(self:Self) -> None:pass
@abstractmethod
def print(self:Self,
_type:str,
message:str|list[str]|tuple[str, ...],
inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None, ...]] = None,
i:int = 0
) -> None:pass
@abstractmethod
def exception(self:Self,
exception:Exception,
message:str|list[str]|tuple[str, ...],
inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None, ...]] = None,
i:int = 0
) -> None:pass