From 37ea48b619c6b889288b364383f188c83ae6bfed Mon Sep 17 00:00:00 2001 From: AbdulHamid Merii <43741215+AH-Merii@users.noreply.github.com> Date: Tue, 13 May 2025 18:19:25 +0100 Subject: [PATCH] Fix `_logger` property might be `None` in Session (#1412) * fix: ensure _logger is not None in Session This ensures that the module does not crash in case the logger was called when verbosity was not defined. The old behaviour caused it to crash since _logger was None, but was still called anyways. * Default to existing logger before setting up --- clearml/backend_api/session/session.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/clearml/backend_api/session/session.py b/clearml/backend_api/session/session.py index d60c972a..5fa1cfe3 100644 --- a/clearml/backend_api/session/session.py +++ b/clearml/backend_api/session/session.py @@ -154,9 +154,10 @@ class Session(TokenManager): self.__class__._sessions_weakrefs.append(weakref.ref(self)) self._verbose = verbose if verbose is not None else ENV_VERBOSE.get() - self._logger = logger - if self._verbose and not self._logger: - level = resolve_logging_level(ENV_VERBOSE.get(converter=str)) + if logger is not None: + self._logger = logger + else: + level = resolve_logging_level(ENV_VERBOSE.get(converter=str)) if self._verbose else logging.INFO self._logger = get_logger(level=level, stream=sys.stderr if level is logging.DEBUG else None) self.__worker = worker or self.get_worker_host_name() self.client = ", ".join("{}-{}".format(*x) for x in self._client)