FaceMask / src /state.py
tejani's picture
Upload 115 files
79eeb88 verified
from app_settings import AppSettings
from typing import Optional
from context import Context
from models.interface_types import InterfaceType
from backend.safety_checker import SafetyChecker
class _AppState:
_instance: Optional["_AppState"] = None
settings: Optional[AppSettings] = None
context: Optional[Context] = None
safety_checker: Optional[SafetyChecker] = 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
def get_safety_checker() -> SafetyChecker:
state = get_state()
if state.safety_checker is None:
print("Initializing safety checker")
state.safety_checker = SafetyChecker()
return state.safety_checker