fastsdcpu / state.py
rupeshs's picture
added files
ef20d79
raw
history blame contribute delete
835 Bytes
from app_settings import AppSettings
from typing import Optional
from context import Context
from models.interface_types import InterfaceType
class _AppState:
_instance: Optional["_AppState"] = None
settings: Optional[AppSettings] = None
context: Optional[Context] = None
def get_state() -> _AppState:
if _AppState._instance is None:
_AppState._instance = _AppState()
return _AppState._instance
def get_settings(skip_file: bool = False) -> AppSettings:
state = get_state()
if state.settings is None:
state.settings = AppSettings()
state.settings.load(skip_file)
return state.settings
def get_context(interface_type: InterfaceType) -> Context:
state = get_state()
if state.context is None:
state.context = Context(interface_type)
return state.context