Add processor registration
This commit is contained in:
parent
f9f9c08f2e
commit
5bd04b3a49
1 changed files with 11 additions and 1 deletions
|
@ -99,6 +99,7 @@ class EventHandler():
|
||||||
"""
|
"""
|
||||||
assert handler_map is not None and len(handler_map) > 0, f'empty map: {handler_map}'
|
assert handler_map is not None and len(handler_map) > 0, f'empty map: {handler_map}'
|
||||||
self._handler_map = handler_map
|
self._handler_map = handler_map
|
||||||
|
self.processor = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def handler_map(self) -> HandlerMap:
|
def handler_map(self) -> HandlerMap:
|
||||||
|
@ -115,6 +116,10 @@ class EventHandler():
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
def register_processor(self, processor: 'Processor') -> None:
|
||||||
|
"""Register processor with this `EventHandler` so that it can query other handlers."""
|
||||||
|
self.processor = processor
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def process(cls, events: List[DictEvent], **kwargs) -> 'EventHandler':
|
def process(cls, events: List[DictEvent], **kwargs) -> 'EventHandler':
|
||||||
"""
|
"""
|
||||||
|
@ -147,7 +152,12 @@ class Processor():
|
||||||
print('handlers before:', [type(handler).__name__ for handler in self._handlers])
|
print('handlers before:', [type(handler).__name__ for handler in self._handlers])
|
||||||
self._add_handler_dependencies(self._handlers, **kwargs)
|
self._add_handler_dependencies(self._handlers, **kwargs)
|
||||||
print('handlers after:', [type(handler).__name__ for handler in self._handlers])
|
print('handlers after:', [type(handler).__name__ for handler in self._handlers])
|
||||||
self._register(self._handlers)
|
self._register_with_handlers(self._handlers)
|
||||||
|
|
||||||
|
def _register_with_handlers(self, handlers: List[EventHandler]) -> None:
|
||||||
|
"""Register this processor with its `EventHandler`s."""
|
||||||
|
for handler in handlers:
|
||||||
|
handler.register_processor(self)
|
||||||
|
|
||||||
def _add_handler_dependencies(self, handlers: List[EventHandler], **kwargs) -> None:
|
def _add_handler_dependencies(self, handlers: List[EventHandler], **kwargs) -> None:
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue