import logging import os class RequireDebugFilter(logging.Filter): TRUE_VALUES = {"true", "t", "yes", "1"} def __init__( self, name: str = "", value: bool | None = None, env_var: str = "LOGGING_DEBUG", ) -> None: super().__init__(name) self.env_var = env_var if value is None: self.value = ( os.environ.get(self.env_var, "").strip().lower() in self.TRUE_VALUES ) else: self.value = value class RequireDebugTrueFilter(RequireDebugFilter): def filter(self, record: logging.LogRecord) -> bool: # noqa: ARG002 return self.value class RequireDebugFalseFilter(RequireDebugFilter): def filter(self, record: logging.LogRecord) -> bool: # noqa: ARG002 return not self.value