From ddc12ba9bca8beeae3fb8e80bb11f99e217589be Mon Sep 17 00:00:00 2001 From: Ivan Usov Date: Fri, 10 Nov 2023 16:46:49 +0100 Subject: [PATCH] refactor: avoid logger <-> messages circular import This is a preventive measure. The logger module needs LogMessage, and messages module needs bec_logger, so as one possible fix, delay LogMessage access in logger. --- bec_lib/bec_lib/logger.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bec_lib/bec_lib/logger.py b/bec_lib/bec_lib/logger.py index 8ce8f483..da3e75b6 100644 --- a/bec_lib/bec_lib/logger.py +++ b/bec_lib/bec_lib/logger.py @@ -7,7 +7,9 @@ from typing import TYPE_CHECKING from loguru import logger as loguru_logger -from bec_lib import messages +# TODO: Importing bec_lib, instead of `from bec_lib.messages import LogMessage`, avoids potential +# logger <-> messages circular import. But there could be a better solution. +import bec_lib from bec_lib.endpoints import MessageEndpoints if TYPE_CHECKING: @@ -64,7 +66,9 @@ class BECLogger: msg["service_name"] = self.service_name self.producer.send( topic=MessageEndpoints.log(), - msg=messages.LogMessage(log_type=msg["record"]["level"]["name"], content=msg).dumps(), + msg=bec_lib.messages.LogMessage( + log_type=msg["record"]["level"]["name"], content=msg + ).dumps(), ) @property