diff --git a/src/cleveragents/a2a/events.py b/src/cleveragents/a2a/events.py index 7b410c011..431f945f6 100644 --- a/src/cleveragents/a2a/events.py +++ b/src/cleveragents/a2a/events.py @@ -15,6 +15,7 @@ publishes translated :class:`A2aEvent` instances to an event queue. from __future__ import annotations +import contextlib import json from collections.abc import Callable from typing import Any, ClassVar @@ -277,10 +278,8 @@ class EventBusBridge: if self._subscribed_types is None: return for et in self._subscribed_types: - try: + with contextlib.suppress(TypeError, AttributeError): self._event_bus.unsubscribe(et, self._on_domain_event) - except (TypeError, AttributeError): - pass self._subscribed_types = None logger.info("a2a.event_bridge.stopped") diff --git a/src/cleveragents/infrastructure/events/logging_bus.py b/src/cleveragents/infrastructure/events/logging_bus.py index 3844d8972..b1b604dea 100644 --- a/src/cleveragents/infrastructure/events/logging_bus.py +++ b/src/cleveragents/infrastructure/events/logging_bus.py @@ -114,7 +114,8 @@ class LoggingEventBus: Args: event_type: The :class:`EventType` to stop listening for. - handler: The callable to remove (must be the same object passed to subscribe). + handler: Callable to remove (same object passed to + :meth:`subscribe`). Returns: True if the handler was found and removed, False otherwise. diff --git a/src/cleveragents/infrastructure/events/reactive.py b/src/cleveragents/infrastructure/events/reactive.py index 320230a08..e0dfd86a7 100644 --- a/src/cleveragents/infrastructure/events/reactive.py +++ b/src/cleveragents/infrastructure/events/reactive.py @@ -173,7 +173,8 @@ class ReactiveEventBus: Args: event_type: The :class:`EventType` to stop listening for. - handler: The callable to remove (must be the same object passed to subscribe). + handler: Callable to remove (same object passed to + :meth:`subscribe`). Returns: True if the handler was found and removed, False otherwise.