From 6669d52599e6213819f79d659f1f79b1bfdb2106 Mon Sep 17 00:00:00 2001 From: Thomas Thron Date: Mon, 9 Feb 2026 09:34:13 +0100 Subject: [PATCH 1/3] config.__init__: add typing hint --- src/chronos/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chronos/config.py b/src/chronos/config.py index 57dccba..16cc1e1 100644 --- a/src/chronos/config.py +++ b/src/chronos/config.py @@ -87,7 +87,7 @@ class ConfigValue: Set Types: frozenset """ - def __init__(self, name, datatype=str, value=None, default=None): + def __init__(self, name, datatype: type = str, value=None, default=None): if datatype not in ( str, int, From 338e541fea1fb9a8bb2fce53277d6fa428abd15e Mon Sep 17 00:00:00 2001 From: Thomas Thron Date: Mon, 9 Feb 2026 09:37:25 +0100 Subject: [PATCH 2/3] config.Config: add show_tracebacks option, default False --- src/chronos/config.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/chronos/config.py b/src/chronos/config.py index 16cc1e1..aa95f12 100644 --- a/src/chronos/config.py +++ b/src/chronos/config.py @@ -281,6 +281,7 @@ def __init__(self): ConfigValue("rotation", default="d"), ConfigValue("interval", int, default=1), ConfigValue("backups", int, default=7), + ConfigValue("show_tracebacks", bool, default=False), ) # Section [debug] self.debug = ConfigSection( From 5e3a59bcf18b7cf5dcacfbb093721c9584b75f52 Mon Sep 17 00:00:00 2001 From: Thomas Thron Date: Mon, 9 Feb 2026 09:39:19 +0100 Subject: [PATCH 3/3] app_factory.single_run: consider option show_tracebacks --- src/chronos/app_factory.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/chronos/app_factory.py b/src/chronos/app_factory.py index d1db44c..b2cdb0f 100644 --- a/src/chronos/app_factory.py +++ b/src/chronos/app_factory.py @@ -115,7 +115,8 @@ def single_run(self) -> None: self.close_calendars() logger.debug("Closed sockets to calendars") except Exception as ex: - logger.critical(f"Cron excecution failed. Reason {ex}") + show_trace = self.app_config.get("log", "show_tracebacks") + logger.critical(f"Cron excecution failed. Reason {ex}", exc_info=show_trace) def close_calendars(self): try: