From c3d1163742e2f735696e440575017352fe95f537 Mon Sep 17 00:00:00 2001 From: wurstsalat <mailtrash@posteo.de> Date: Sat, 28 May 2022 18:21:58 +0200 Subject: [PATCH] chore: Discovery: Add type annotations --- gajim/common/modules/discovery.py | 62 ++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/gajim/common/modules/discovery.py b/gajim/common/modules/discovery.py index 8b1131118d..56fb66de69 100644 --- a/gajim/common/modules/discovery.py +++ b/gajim/common/modules/discovery.py @@ -14,13 +14,24 @@ # XEP-0030: Service Discovery +from __future__ import annotations + +from typing import Optional +from typing import Union + import nbxmpp -from nbxmpp.namespaces import Namespace -from nbxmpp.structs import StanzaHandler from nbxmpp.errors import StanzaError from nbxmpp.errors import is_error +from nbxmpp.namespaces import Namespace +from nbxmpp.protocol import Iq +from nbxmpp.protocol import JID +from nbxmpp.structs import DiscoInfo +from nbxmpp.structs import IqProperties +from nbxmpp.structs import StanzaHandler +from nbxmpp.task import Task from gajim.common import app +from gajim.common import types from gajim.common.events import ServerDiscoReceived from gajim.common.events import MucDiscoUpdate from gajim.common.modules.util import as_task @@ -35,7 +46,7 @@ class Discovery(BaseModule): 'disco_items', ] - def __init__(self, con): + def __init__(self, con: types.Client) -> None: BaseModule.__init__(self, con) self.handlers = [ @@ -49,22 +60,22 @@ def __init__(self, con): ns=Namespace.DISCO_ITEMS), ] - self._account_info = None - self._server_info = None + self._account_info: Optional[DiscoInfo] = None + self._server_info: Optional[DiscoInfo] = None @property - def account_info(self): + def account_info(self) -> Optional[DiscoInfo]: return self._account_info @property - def server_info(self): + def server_info(self) -> Optional[DiscoInfo]: return self._server_info - def discover_server_items(self): + def discover_server_items(self) -> None: server = self._con.get_own_jid().domain self.disco_items(server, callback=self._server_items_received) - def _server_items_received(self, task): + def _server_items_received(self, task: Task) -> None: try: result = task.finish() except StanzaError as error: @@ -80,7 +91,7 @@ def _server_items_received(self, task): continue self.disco_info(item.jid, callback=self._server_items_info_received) - def _server_items_info_received(self, task): + def _server_items_info_received(self, task: Task) -> None: try: result = task.finish() except StanzaError as error: @@ -99,11 +110,11 @@ def _server_items_info_received(self, task): app.ged.raise_event(ServerDiscoReceived()) - def discover_account_info(self): + def discover_account_info(self) -> None: own_jid = self._con.get_own_jid().bare self.disco_info(own_jid, callback=self._account_info_received) - def _account_info_received(self, task): + def _account_info_received(self, task: Task) -> None: try: result = task.finish() except StanzaError as error: @@ -123,12 +134,12 @@ def _account_info_received(self, task): self._con.get_module('Caps').update_caps() - def discover_server_info(self): + def discover_server_info(self) -> None: # Calling this method starts the connect_maschine() server = self._con.get_own_jid().domain self.disco_info(server, callback=self._server_info_received) - def _server_info_received(self, task): + def _server_info_received(self, task: Task) -> None: try: result = task.finish() except StanzaError as error: @@ -149,7 +160,7 @@ def _server_info_received(self, task): self._con.connect_machine(restart=True) - def _parse_transports(self, info): + def _parse_transports(self, info: DiscoInfo) -> None: for identity in info.identities: if identity.category not in ('gateway', 'headline'): continue @@ -166,7 +177,11 @@ def _parse_transports(self, info): else: self._con.available_transports[identity.type] = [jid] - def _answer_disco_items(self, _con, stanza, _properties): + def _answer_disco_items(self, + _con: types.xmppClient, + stanza: Iq, + _properties: IqProperties + ) -> None: from_ = stanza.getFrom() self._log.info('Answer disco items to %s', from_) @@ -183,7 +198,11 @@ def _answer_disco_items(self, _con, stanza, _properties): self._con.get_module('AdHocCommands').command_list_query(stanza) raise nbxmpp.NodeProcessed - def _answer_disco_info(self, _con, stanza, _properties): + def _answer_disco_info(self, + _con: types.xmppClient, + stanza: Iq, + _properties: IqProperties + ) -> None: from_ = stanza.getFrom() self._log.info('Answer disco info %s', from_) if str(from_).startswith('echo.'): @@ -195,9 +214,10 @@ def _answer_disco_info(self, _con, stanza, _properties): @as_task def disco_muc(self, - jid, - request_vcard=False, - allow_redirect=False): + jid: Union[JID, str], + request_vcard: bool = False, + allow_redirect: bool = False + ): _task = yield @@ -236,7 +256,7 @@ def disco_muc(self, yield result @as_task - def disco_contact(self, contact): + def disco_contact(self, contact: types.ContactT): _task = yield result = yield self.disco_info(contact.jid) -- GitLab