@@ -118,14 +118,6 @@ class ModuleEventProxy(ModuleEvent):
118118 def __str__ (self ) -> str :
119119 return f"`{ self .module } ` has propagated an event: { self .origin } "
120120
121- @property
122- def is_duplicate (self ) -> bool :
123- module , origin = self .module , self .origin
124- return any (
125- module is event .module and origin is event .origin
126- for event in self .proxy_history
127- )
128-
129121 @property
130122 def origin (self ) -> Event :
131123 reversed_proxy_history = reversed (tuple (self .proxy_history ))
@@ -170,9 +162,7 @@ def __str__(self) -> str:
170162
171163
172164@dataclass (frozen = True , slots = True )
173- class UnlockCalled (Event ):
174- module : Module
175-
165+ class UnlockCalled (ModuleEvent ):
176166 def __str__ (self ) -> str :
177167 return f"`{ self .module } .unlock` has been called."
178168
@@ -875,12 +865,8 @@ def remove_listener(self, listener: EventListener) -> Self:
875865 self .__channel .remove_listener (listener )
876866 return self
877867
878- def on_event (self , event : Event , / ) -> ContextManager [None ] | None :
868+ def on_event (self , event : Event , / ) -> ContextManager [None ]:
879869 self_event = ModuleEventProxy (self , event )
880-
881- if self_event .is_duplicate :
882- return None
883-
884870 return self .dispatch (self_event )
885871
886872 @contextmanager
@@ -894,17 +880,9 @@ def dispatch(self, event: Event, *, lock_bypass: bool = False) -> Iterator[None]
894880 finally :
895881 self .__debug (event )
896882
897- def _iter_brokers (self , visited : set [Module ] | None = None , / ) -> Iterator [Broker ]:
898- if visited is None :
899- visited = set ()
900-
901- if self in visited :
902- return
903-
904- visited .add (self )
905-
883+ def _iter_brokers (self ) -> Iterator [Broker ]:
906884 for module in self .__modules :
907- yield from module ._iter_brokers (visited )
885+ yield from module ._iter_brokers ()
908886
909887 yield self .__locator
910888
0 commit comments