From e916212f1da79de359a817717fe7d115fc99506f Mon Sep 17 00:00:00 2001 From: Zachary Ware Date: Tue, 20 Oct 2026 15:30:11 -0700 Subject: [PATCH] Emit each missing setting warning only once --- master/custom/settings.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/master/custom/settings.py b/master/custom/settings.py index 8ce93c3b..c3e173b0 100644 --- a/master/custom/settings.py +++ b/master/custom/settings.py @@ -22,6 +22,9 @@ ) +_WARNINGS = {*()} + + class Settings: value = ... @@ -66,10 +69,12 @@ def get(self, key, default=...): def _convert(self, func, default): if self.value is not ...: return func(self.value) - default = DEFAULTS.get(".".join(map(str, self.path)), default) - if not os.getenv("CI"): + path = ".".join(map(str, self.path)) + default = DEFAULTS.get(path, default) + if not os.getenv('CI') and path not in _WARNINGS: # Note: We use log.err to make this show up during `checkconfig` - log.err(f"WARNING: No setting at {self.path}, returning {default}") + log.err(f"WARNING: No setting at {path}, returning {default}") + _WARNINGS.add(path) return func(default) def __int__(self):