Philipp Hörist pushed to branch master at gajim / gajim
Commits: c890931a by lovetox at 2021-12-19T12:45:42+01:00 Remove unused methods
- - - - - 245c5f6a by lovetox at 2021-12-19T12:48:14+01:00 GED: Add type annotations
- - - - - 9c0fbd21 by lovetox at 2021-12-19T13:09:49+01:00 Update pyrightconfig.json
- - - - -
4 changed files:
- gajim/common/connection.py - gajim/common/ged.py - gajim/common/storage/archive.py - pyrightconfig.json
Changes:
===================================== gajim/common/connection.py ===================================== @@ -113,12 +113,6 @@ def _unregister_new_handlers(self, con): con.UnregisterHandler(*handler) self.handlers_registered = False
- def dispatch(self, event, data): - """ - Always passes account name as first param - """ - app.ged.raise_event(event, self.name, data) - def get_module(self, name): return modules.get(self.name, name)
===================================== gajim/common/ged.py ===================================== @@ -22,12 +22,19 @@ :license: GPL '''
+from __future__ import annotations + +from typing import Any +from typing import Callable + import logging import traceback import inspect
from nbxmpp import NodeProcessed
+from gajim.common.nec import NetworkEvent + log = logging.getLogger('gajim.c.ged')
PRECORE = 10 @@ -54,12 +61,20 @@ OUT_CORE = 100 OUT_POSTCORE = 110
+ +HandlerFuncT = Callable[[NetworkEvent], Any] + + class GlobalEventsDispatcher:
def __init__(self): - self.handlers = {} + self.handlers: dict[str, list[tuple[int, HandlerFuncT]]] = {} + + def register_event_handler(self, + event_name: str, + priority: int, + handler: HandlerFuncT) -> None:
- def register_event_handler(self, event_name, priority, handler): if event_name in self.handlers: handlers_list = self.handlers[event_name] i = 0 @@ -74,7 +89,11 @@ def register_event_handler(self, event_name, priority, handler): else: self.handlers[event_name] = [(priority, handler)]
- def remove_event_handler(self, event_name, priority, handler): + def remove_event_handler(self, + event_name: str, + priority: int, + handler: HandlerFuncT) -> None: + if event_name in self.handlers: try: self.handlers[event_name].remove((priority, handler)) @@ -84,7 +103,8 @@ def remove_event_handler(self, event_name, priority, handler): registered as handler of event "%s". Couldn't remove. Error: %s''', handler, priority, event_name, error)
- def raise_event(self, event_name, *args, **kwargs): + def raise_event(self, event_name: str, event_obj: NetworkEvent) -> Any: + log.debug('Raise event: %s', event_name) if event_name in self.handlers: node_processed = False @@ -98,7 +118,7 @@ def raise_event(self, event_name, *args, **kwargs): handler.__self__) else: log.debug('Call handler %s', handler.__name__) - if handler(*args, **kwargs): + if handler(event_obj): return True except NodeProcessed: node_processed = True
===================================== gajim/common/storage/archive.py ===================================== @@ -182,10 +182,6 @@ def _migrate(self) -> None: ] self._execute_multiple(statements)
- @staticmethod - def dispatch(event, error): - app.ged.raise_event(event, None, str(error)) - @staticmethod def _get_timeout() -> int: """
===================================== pyrightconfig.json ===================================== @@ -11,6 +11,6 @@ ], "typeCheckingMode": "strict", "include": [ - "gajim/gtk/chat_page.py" + "gajim/gtk/chat_filter.py" ], }
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/aa76df62c5fbbf339d75fb54da049281...