diff options
author | wurstsalat <mailtrash@posteo.de> | 2022-11-29 21:35:02 +0300 |
---|---|---|
committer | wurstsalat <mailtrash@posteo.de> | 2022-11-29 21:35:02 +0300 |
commit | 220e670211c4144b874391a42dfe6d254900926a (patch) | |
tree | 26684e5af4884cf613f9e6175951bb8e4cc21324 | |
parent | ff9cedf90a455649c0ba4f5c0271c58e9e23d2bf (diff) |
[quick_replies] Type annotations, linting
-rw-r--r-- | quick_replies/__init__.py | 2 | ||||
-rw-r--r-- | quick_replies/gtk/config.py | 35 | ||||
-rw-r--r-- | quick_replies/plugin.py | 19 |
3 files changed, 44 insertions, 12 deletions
diff --git a/quick_replies/__init__.py b/quick_replies/__init__.py index 67ad452..8a3a147 100644 --- a/quick_replies/__init__.py +++ b/quick_replies/__init__.py @@ -1 +1 @@ -from .plugin import QuickRepliesPlugin +from .plugin import QuickRepliesPlugin # type: ignore diff --git a/quick_replies/gtk/config.py b/quick_replies/gtk/config.py index a0844c0..5663de4 100644 --- a/quick_replies/gtk/config.py +++ b/quick_replies/gtk/config.py @@ -14,6 +14,11 @@ # You should have received a copy of the GNU General Public License # along with Quick Replies. If not, see <http://www.gnu.org/licenses/>. +from __future__ import annotations + +from typing import Any +from typing import TYPE_CHECKING + from pathlib import Path from gi.repository import Gtk @@ -24,9 +29,16 @@ from gajim.common import app from gajim.plugins.plugins_i18n import _ from gajim.plugins.helpers import get_builder +if TYPE_CHECKING: + from ..plugin import QuickRepliesPlugin + class ConfigDialog(Gtk.ApplicationWindow): - def __init__(self, plugin, transient): + def __init__(self, + plugin: QuickRepliesPlugin, + transient: Gtk.Window + ) -> None: + Gtk.ApplicationWindow.__init__(self) self.set_application(app.app) self.set_show_menubar(False) @@ -38,7 +50,7 @@ class ConfigDialog(Gtk.ApplicationWindow): self.set_destroy_with_parent(True) ui_path = Path(__file__).parent - self._ui = get_builder(ui_path.resolve() / 'config.ui') + self._ui = get_builder(str(ui_path.resolve() / 'config.ui')) self._plugin = plugin @@ -50,15 +62,20 @@ class ConfigDialog(Gtk.ApplicationWindow): self._ui.connect_signals(self) self.connect('destroy', self._on_destroy) - def _fill_list(self): + def _fill_list(self) -> None: for reply in self._plugin.quick_replies: self._ui.replies_store.append([reply]) - def _on_reply_edited(self, _renderer, path, new_text): + def _on_reply_edited(self, + _renderer: Gtk.CellRendererText, + path: str, + new_text: str + ) -> None: + iter_ = self._ui.replies_store.get_iter(path) self._ui.replies_store.set_value(iter_, 0, new_text) - def _on_add_clicked(self, _button): + def _on_add_clicked(self, _button: Gtk.Button) -> None: self._ui.replies_store.append([_('New Quick Reply')]) row = self._ui.replies_store[-1] self._ui.replies_treeview.scroll_to_cell( @@ -66,9 +83,9 @@ class ConfigDialog(Gtk.ApplicationWindow): self._ui.selection.unselect_all() self._ui.selection.select_path(row.path) - def _on_remove_clicked(self, _button): + def _on_remove_clicked(self, _button: Gtk.Button) -> None: model, paths = self._ui.selection.get_selected_rows() - references = [] + references: list[Gtk.TreeRowReference] = [] for path in paths: references.append(Gtk.TreeRowReference.new(model, path)) @@ -76,8 +93,8 @@ class ConfigDialog(Gtk.ApplicationWindow): iter_ = model.get_iter(ref.get_path()) self._ui.replies_store.remove(iter_) - def _on_destroy(self, *args): - replies = [] + def _on_destroy(self, *args: Any) -> None: + replies: list[str] = [] for row in self._ui.replies_store: if row[0] == '': continue diff --git a/quick_replies/plugin.py b/quick_replies/plugin.py index 9549f76..ecf5b0b 100644 --- a/quick_replies/plugin.py +++ b/quick_replies/plugin.py @@ -1,3 +1,18 @@ +# This file is part of Gajim. +# +# Gajim is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Gajim is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Gajim. If not, see <http://www.gnu.org/licenses/>. + from __future__ import annotations from typing import cast @@ -24,7 +39,7 @@ from quick_replies.gtk.config import ConfigDialog class QuickRepliesPlugin(GajimPlugin): - def init(self): + def init(self) -> None: self.description = _('Adds a menu with customizable quick replies') self.config_dialog = partial(ConfigDialog, self) self.gui_extension_points = { @@ -50,7 +65,7 @@ class QuickRepliesPlugin(GajimPlugin): self._button.show() @staticmethod - def _load_quick_replies(): + def _load_quick_replies() -> list[str]: try: data_path = Path(configpaths.get('PLUGINS_DATA')) except KeyError: |