From e68f4b385542079596d6a29da687c5ce934ecf8a Mon Sep 17 00:00:00 2001 From: jonathan343 Date: Thu, 6 Mar 2025 14:42:42 -0500 Subject: [PATCH 1/5] Add logging for input and output event streams --- .../src/aws_event_stream/_private/deserializers.py | 5 +++++ .../src/aws_event_stream/_private/serializers.py | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py b/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py index c9cfdbb4f..8910efc62 100644 --- a/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py +++ b/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 import asyncio import datetime +import logging from collections.abc import Callable from smithy_core.aio.interfaces import AsyncByteStream @@ -25,6 +26,8 @@ ) from smithy_core.traits import EventHeaderTrait +logger = logging.getLogger(__name__) + INITIAL_MESSAGE_TYPES = (INITIAL_REQUEST_EVENT_TYPE, INITIAL_RESPONSE_EVENT_TYPE) @@ -56,6 +59,7 @@ async def receive(self) -> E | None: if event is None: return None + logger.debug("Received raw event message: %s", event) deserializer = EventDeserializer( event=event, @@ -63,6 +67,7 @@ async def receive(self) -> E | None: is_client_mode=self._is_client_mode, ) result = self._deserializer(deserializer) + logger.debug("Deserialized event message: %s", result) if isinstance(getattr(result, "value"), Exception): raise result.value # type: ignore return result diff --git a/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py b/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py index 933381c4b..de0833b90 100644 --- a/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py +++ b/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 import asyncio import datetime +import logging from collections.abc import Callable, Iterator from contextlib import contextmanager from io import BytesIO @@ -29,6 +30,8 @@ ) from smithy_core.traits import ErrorTrait, EventHeaderTrait, MediaTypeTrait +logger = logging.getLogger(__name__) + _DEFAULT_STRING_CONTENT_TYPE = "text/plain" _DEFAULT_BLOB_CONTENT_TYPE = "application/octet-stream" @@ -55,6 +58,7 @@ def __init__( async def send(self, event: E) -> None: if self._closed: raise IOError("Attempted to write to closed stream.") + logger.debug("Raw event message: %s", event) event.serialize(self._serializer) result = self._serializer.get_result() if result is None: @@ -66,10 +70,12 @@ async def send(self, event: E) -> None: encoded_result = result.encode() try: + logger.debug("Writing event message: %s", result) await self._writer.write(encoded_result) except Exception as e: await self.close() raise IOError("Failed to write to stream.") from e + await self._writer.write(result.encode()) async def close(self) -> None: if self._closed: From 78d1ac7e31efcd4091f13dbeeadf1245588f9dd4 Mon Sep 17 00:00:00 2001 From: jonathan343 Date: Mon, 17 Mar 2025 11:47:49 -0400 Subject: [PATCH 2/5] Update logger messages --- .../src/aws_event_stream/_private/deserializers.py | 5 +++-- .../src/aws_event_stream/_private/serializers.py | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py b/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py index 8910efc62..dadf8edc0 100644 --- a/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py +++ b/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py @@ -58,8 +58,9 @@ async def receive(self) -> E | None: raise if event is None: + logger.debug("No event received from the source.") return None - logger.debug("Received raw event message: %s", event) + logger.debug("Received raw event: %s", event) deserializer = EventDeserializer( event=event, @@ -67,7 +68,7 @@ async def receive(self) -> E | None: is_client_mode=self._is_client_mode, ) result = self._deserializer(deserializer) - logger.debug("Deserialized event message: %s", result) + logger.debug("Successfully deserialized event: %s", result) if isinstance(getattr(result, "value"), Exception): raise result.value # type: ignore return result diff --git a/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py b/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py index de0833b90..6011eaa52 100644 --- a/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py +++ b/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py @@ -58,7 +58,7 @@ def __init__( async def send(self, event: E) -> None: if self._closed: raise IOError("Attempted to write to closed stream.") - logger.debug("Raw event message: %s", event) + logger.debug("Preparing to publish event: %s", event) event.serialize(self._serializer) result = self._serializer.get_result() if result is None: @@ -70,7 +70,7 @@ async def send(self, event: E) -> None: encoded_result = result.encode() try: - logger.debug("Writing event message: %s", result) + logger.debug("Publishing serialized event: %s", result) await self._writer.write(encoded_result) except Exception as e: await self.close() From a4a3c50e8d7d2ba1916172827fc3fd0c1e8d6306 Mon Sep 17 00:00:00 2001 From: jonathan343 Date: Tue, 18 Mar 2025 11:10:59 -0400 Subject: [PATCH 3/5] Make logger a constant by uppercasing it --- .../src/aws_event_stream/_private/deserializers.py | 8 ++++---- .../src/aws_event_stream/_private/serializers.py | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py b/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py index dadf8edc0..1ce19ff36 100644 --- a/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py +++ b/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py @@ -26,7 +26,7 @@ ) from smithy_core.traits import EventHeaderTrait -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) INITIAL_MESSAGE_TYPES = (INITIAL_REQUEST_EVENT_TYPE, INITIAL_RESPONSE_EVENT_TYPE) @@ -58,9 +58,9 @@ async def receive(self) -> E | None: raise if event is None: - logger.debug("No event received from the source.") + LOGGER.debug("No event received from the source.") return None - logger.debug("Received raw event: %s", event) + LOGGER.debug("Received raw event: %s", event) deserializer = EventDeserializer( event=event, @@ -68,7 +68,7 @@ async def receive(self) -> E | None: is_client_mode=self._is_client_mode, ) result = self._deserializer(deserializer) - logger.debug("Successfully deserialized event: %s", result) + LOGGER.debug("Successfully deserialized event: %s", result) if isinstance(getattr(result, "value"), Exception): raise result.value # type: ignore return result diff --git a/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py b/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py index 6011eaa52..34e7b989b 100644 --- a/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py +++ b/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py @@ -30,7 +30,7 @@ ) from smithy_core.traits import ErrorTrait, EventHeaderTrait, MediaTypeTrait -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) _DEFAULT_STRING_CONTENT_TYPE = "text/plain" _DEFAULT_BLOB_CONTENT_TYPE = "application/octet-stream" @@ -58,7 +58,7 @@ def __init__( async def send(self, event: E) -> None: if self._closed: raise IOError("Attempted to write to closed stream.") - logger.debug("Preparing to publish event: %s", event) + LOGGER.debug("Preparing to publish event: %s", event) event.serialize(self._serializer) result = self._serializer.get_result() if result is None: @@ -70,7 +70,7 @@ async def send(self, event: E) -> None: encoded_result = result.encode() try: - logger.debug("Publishing serialized event: %s", result) + LOGGER.debug("Publishing serialized event: %s", result) await self._writer.write(encoded_result) except Exception as e: await self.close() From 94a5fc705e00b39b434109ed0096628f0530d382 Mon Sep 17 00:00:00 2001 From: jonathan343 Date: Tue, 18 Mar 2025 11:28:07 -0400 Subject: [PATCH 4/5] Remove extra line added during rebase --- .../src/aws_event_stream/_private/serializers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py b/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py index 34e7b989b..75bad8041 100644 --- a/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py +++ b/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py @@ -75,7 +75,6 @@ async def send(self, event: E) -> None: except Exception as e: await self.close() raise IOError("Failed to write to stream.") from e - await self._writer.write(result.encode()) async def close(self) -> None: if self._closed: From 71dac660f1dc34a1b02ff0e96498e0393ee52967 Mon Sep 17 00:00:00 2001 From: jonathan343 Date: Tue, 18 Mar 2025 11:30:09 -0400 Subject: [PATCH 5/5] Revert "Make logger a constant by uppercasing it" This reverts commit a4a3c50e8d7d2ba1916172827fc3fd0c1e8d6306. --- .../src/aws_event_stream/_private/deserializers.py | 8 ++++---- .../src/aws_event_stream/_private/serializers.py | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py b/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py index 1ce19ff36..dadf8edc0 100644 --- a/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py +++ b/packages/aws-event-stream/src/aws_event_stream/_private/deserializers.py @@ -26,7 +26,7 @@ ) from smithy_core.traits import EventHeaderTrait -LOGGER = logging.getLogger(__name__) +logger = logging.getLogger(__name__) INITIAL_MESSAGE_TYPES = (INITIAL_REQUEST_EVENT_TYPE, INITIAL_RESPONSE_EVENT_TYPE) @@ -58,9 +58,9 @@ async def receive(self) -> E | None: raise if event is None: - LOGGER.debug("No event received from the source.") + logger.debug("No event received from the source.") return None - LOGGER.debug("Received raw event: %s", event) + logger.debug("Received raw event: %s", event) deserializer = EventDeserializer( event=event, @@ -68,7 +68,7 @@ async def receive(self) -> E | None: is_client_mode=self._is_client_mode, ) result = self._deserializer(deserializer) - LOGGER.debug("Successfully deserialized event: %s", result) + logger.debug("Successfully deserialized event: %s", result) if isinstance(getattr(result, "value"), Exception): raise result.value # type: ignore return result diff --git a/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py b/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py index 75bad8041..3c98a570a 100644 --- a/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py +++ b/packages/aws-event-stream/src/aws_event_stream/_private/serializers.py @@ -30,7 +30,7 @@ ) from smithy_core.traits import ErrorTrait, EventHeaderTrait, MediaTypeTrait -LOGGER = logging.getLogger(__name__) +logger = logging.getLogger(__name__) _DEFAULT_STRING_CONTENT_TYPE = "text/plain" _DEFAULT_BLOB_CONTENT_TYPE = "application/octet-stream" @@ -58,7 +58,7 @@ def __init__( async def send(self, event: E) -> None: if self._closed: raise IOError("Attempted to write to closed stream.") - LOGGER.debug("Preparing to publish event: %s", event) + logger.debug("Preparing to publish event: %s", event) event.serialize(self._serializer) result = self._serializer.get_result() if result is None: @@ -70,7 +70,7 @@ async def send(self, event: E) -> None: encoded_result = result.encode() try: - LOGGER.debug("Publishing serialized event: %s", result) + logger.debug("Publishing serialized event: %s", result) await self._writer.write(encoded_result) except Exception as e: await self.close()