From 58e0bf7149cdfc8d409ea642a2abb56b6d97d3ba Mon Sep 17 00:00:00 2001 From: kmochocki <kmochocki@syncad.com> Date: Mon, 17 Mar 2025 02:20:58 +0000 Subject: [PATCH] Fix passing of logger to handle --- beekeepy/beekeepy/_remote_handle/abc/handle.py | 9 +++++---- beekeepy/beekeepy/_runnable_handle/beekeeper.py | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/beekeepy/beekeepy/_remote_handle/abc/handle.py b/beekeepy/beekeepy/_remote_handle/abc/handle.py index a632b5bc..dc77ea88 100644 --- a/beekeepy/beekeepy/_remote_handle/abc/handle.py +++ b/beekeepy/beekeepy/_remote_handle/abc/handle.py @@ -3,7 +3,7 @@ from __future__ import annotations from abc import ABC, abstractmethod from typing import TYPE_CHECKING, Any, Generic, TypeVar -from loguru import logger +from loguru import logger as loguru_logger from beekeepy._communication.aiohttp_communicator import AioHttpCommunicator from beekeepy._communication.request_communicator import RequestCommunicator @@ -35,6 +35,7 @@ class AbstractHandle(UniqueSettingsHolder[Settings], ABC, Generic[ApiT]): self, *args: Any, settings: Settings, + logger: Logger | None = None, **kwargs: Any, ) -> None: """Constructs handle to network service. @@ -44,7 +45,7 @@ class AbstractHandle(UniqueSettingsHolder[Settings], ABC, Generic[ApiT]): communicator: communicator class to use for communication """ super().__init__(*args, settings=settings, **kwargs) - self.__logger = self.__configure_logger() + self.__logger = self.__configure_logger(logger) self.__overseer = self.settings.get_overseer( communicator=(self.settings.try_get_communicator_instance() or self._get_recommended_communicator()) ) @@ -112,9 +113,9 @@ class AbstractHandle(UniqueSettingsHolder[Settings], ABC, Generic[ApiT]): assert isinstance(serialized_data, JSONRPCResult) return serialized_data - def __configure_logger(self) -> Logger: + def __configure_logger(self, logger: Logger | None) -> Logger: # credit for lazy=True: https://github.com/Delgan/loguru/issues/402#issuecomment-2028011786 - return logger.opt(lazy=True).bind(**self._logger_extras()) + return (logger or loguru_logger).opt(lazy=True).bind(**self._logger_extras()) def teardown(self) -> None: self._overseer.teardown() diff --git a/beekeepy/beekeepy/_runnable_handle/beekeeper.py b/beekeepy/beekeepy/_runnable_handle/beekeeper.py index 0b6e7287..58bc9f66 100644 --- a/beekeepy/beekeepy/_runnable_handle/beekeeper.py +++ b/beekeepy/beekeepy/_runnable_handle/beekeeper.py @@ -58,7 +58,7 @@ class AsyncRemoteBeekeeper(remote_beekeeper.AsyncBeekeeper): class BeekeeperCommon(BeekeeperNotificationCallbacks, ABC): def __init__(self, *args: Any, settings: Settings, logger: Logger, **kwargs: Any) -> None: - super().__init__(*args, settings=settings, **kwargs) + super().__init__(*args, settings=settings, logger=logger, **kwargs) self.__exec = BeekeeperExecutable(settings, logger) self.__notification_server: UniversalNotificationServer | None = None self.__notification_event_handler: NotificationHandler | None = None -- GitLab