From 22b29648d2cb5d1c94bdc501b65fec247f239f49 Mon Sep 17 00:00:00 2001 From: Ja Wattanawong Date: Thu, 17 Apr 2025 16:46:21 +0900 Subject: [PATCH 1/2] Wrap read_event in exception handling --- devcycle_python_sdk/managers/sse_manager.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/devcycle_python_sdk/managers/sse_manager.py b/devcycle_python_sdk/managers/sse_manager.py index d39b6d4..610dbc6 100644 --- a/devcycle_python_sdk/managers/sse_manager.py +++ b/devcycle_python_sdk/managers/sse_manager.py @@ -2,9 +2,12 @@ import ld_eventsource import ld_eventsource.actions +import logging import ld_eventsource.config from typing import Callable +logger = logging.getLogger(__name__) + class SSEManager: def __init__( @@ -31,13 +34,16 @@ def read_events( handlemessage: Callable[[ld_eventsource.actions.Event], None], ): self.client.start() - for event in self.client.all: - if isinstance(event, ld_eventsource.actions.Start): - handlestate(event) - elif isinstance(event, ld_eventsource.actions.Fault): - handleerror(event) - elif isinstance(event, ld_eventsource.actions.Event): - handlemessage(event) + try: + for event in self.client.all: + if isinstance(event, ld_eventsource.actions.Start): + handlestate(event) + elif isinstance(event, ld_eventsource.actions.Fault): + handleerror(event) + elif isinstance(event, ld_eventsource.actions.Event): + handlemessage(event) + except Exception as e: + logger.exception(f"DevCycle: failed to read all events: {e}") def update(self, config: dict): if self.use_new_config(config["sse"]): From 4ec9ec50cde102c6015d3d12168fa1b9a9ee4bfd Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Sun, 20 Apr 2025 21:26:04 -0400 Subject: [PATCH 2/2] Update devcycle_python_sdk/managers/sse_manager.py --- devcycle_python_sdk/managers/sse_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devcycle_python_sdk/managers/sse_manager.py b/devcycle_python_sdk/managers/sse_manager.py index 610dbc6..5f55da3 100644 --- a/devcycle_python_sdk/managers/sse_manager.py +++ b/devcycle_python_sdk/managers/sse_manager.py @@ -43,7 +43,7 @@ def read_events( elif isinstance(event, ld_eventsource.actions.Event): handlemessage(event) except Exception as e: - logger.exception(f"DevCycle: failed to read all events: {e}") + logger.exception(f"DevCycle: failed to read SSE message: {e}") def update(self, config: dict): if self.use_new_config(config["sse"]):