mixin dandy.core.service.mixin BaseServiceMixin dataclass __init_subclass__ Source code in dandy/core/service/mixin.py 11 12 13 14 15 16def __init_subclass__(cls): super().__init_subclass__() for attr in cls._required_attrs: if getattr(cls, attr) is None: message = f'"{cls.__name__}.{attr}" is not set' raise ServiceCriticalException(message)