← Files VeraARCHIVED FILE
modules/variance-analysis/vendor/modules/utilities/notifier.py
1020 Bytes · Oct 2, 2026 · 00:29 UTC
from __future__ import annotations
import logging
from typing import Any, Protocol
__all__ = ["Notifier", "LoggingNotifier", "get_notifier"]
class Notifier(Protocol):
def info(self, message: str, **kwargs: Any) -> None: ...
def warning(self, message: str, **kwargs: Any) -> None: ...
def error(self, message: str, **kwargs: Any) -> None: ...
class LoggingNotifier:
def __init__(self, logger: logging.Logger | None = None) -> None:
self._logger = logger or logging.getLogger(__name__)
def info(self, message: str, **kwargs: Any) -> None:
self._logger.info(message, **kwargs)
def warning(self, message: str, **kwargs: Any) -> None:
self._logger.warning(message, **kwargs)
def error(self, message: str, **kwargs: Any) -> None:
self._logger.error(message, **kwargs)
def get_notifier(
notifier: Notifier | None, logger: logging.Logger | None = None
) -> Notifier:
if notifier is None:
return LoggingNotifier(logger)
return notifier
SHA-256: 5bcd244b4d319381b9cf67e8f1d6d7a9764891c32fd589801dd1ae5d98846b08