From fae25a063980aba93e7f2bfee7ab1e7c9a970c0f Mon Sep 17 00:00:00 2001 From: Benedikt Bartscher Date: Sun, 30 Jun 2024 20:18:17 +0200 Subject: [PATCH] dedupe config overrides --- reflex/config.py | 3 ++- reflex/utils/console.py | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/reflex/config.py b/reflex/config.py index 95e6e54d8f5..06d8c21933b 100644 --- a/reflex/config.py +++ b/reflex/config.py @@ -277,7 +277,8 @@ def update_from_env(self) -> dict[str, Any]: if env_var is not None: if key.upper() != "DB_URL": console.info( - f"Overriding config value {key} with env var {key.upper()}={env_var}" + f"Overriding config value {key} with env var {key.upper()}={env_var}", + dedupe=True, ) # Convert the env var to the expected type. diff --git a/reflex/utils/console.py b/reflex/utils/console.py index a541030643f..69500b32f64 100644 --- a/reflex/utils/console.py +++ b/reflex/utils/console.py @@ -17,6 +17,9 @@ # Deprecated features who's warning has been printed. _EMITTED_DEPRECATION_WARNINGS = set() +# Info messages which have been printed. +_EMITTED_INFO = set() + def set_log_level(log_level: LogLevel): """Set the log level. @@ -62,14 +65,20 @@ def debug(msg: str, **kwargs): print(msg_, **kwargs) -def info(msg: str, **kwargs): +def info(msg: str, dedupe: bool = False, **kwargs): """Print an info message. Args: msg: The info message. + dedupe: If True, suppress multiple console logs of info message. kwargs: Keyword arguments to pass to the print function. """ if _LOG_LEVEL <= LogLevel.INFO: + if dedupe: + if msg in _EMITTED_INFO: + return + else: + _EMITTED_INFO.add(msg) print(f"[cyan]Info: {msg}[/cyan]", **kwargs)