"""JARVIS quality of life utilities.""" class Singleton(object): REQUIRED = [] OPTIONAL = {} def __new__(cls, *args: list, **kwargs: dict): """Create a new singleton.""" inst = cls.__dict__.get("inst") if inst is not None: return inst inst = object.__new__(cls) inst.init(*args, **kwargs) inst._validate() cls.__inst__ = inst return inst def _validate(self) -> None: for key in self.REQUIRED: if not getattr(self, key, None): raise ValueError(f"Missing required key: {key}") def init(self, **kwargs: dict) -> None: """Initialize the object.""" for key, value in kwargs.items(): setattr(self, key, value) for key, value in self.OPTIONAL.items(): if not getattr(self, key, None): setattr(self, key, value)