From 84f8d7f6049c94bead492d25a7b19d62185a1d5a Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Mon, 1 Feb 2021 20:59:18 +1000 Subject: [PATCH] add some types to main.py --- qt/aqt/deckbrowser.py | 4 ++-- qt/aqt/main.py | 48 ++++++++++++++++++++++++------------------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/qt/aqt/deckbrowser.py b/qt/aqt/deckbrowser.py index bcd935f70..ef8e0a621 100644 --- a/qt/aqt/deckbrowser.py +++ b/qt/aqt/deckbrowser.py @@ -235,13 +235,13 @@ class DeckBrowser: a = m.addAction(tr(TR.ACTIONS_OPTIONS)) qconnect(a.triggered, lambda b, did=did: self._options(did)) a = m.addAction(tr(TR.ACTIONS_EXPORT)) - qconnect(a.triggered, lambda b, did=did: self._export(did)) + qconnect(a.triggered, lambda b, did=did: self._export(int(did))) a = m.addAction(tr(TR.ACTIONS_DELETE)) qconnect(a.triggered, lambda b, did=did: self._delete(int(did))) gui_hooks.deck_browser_will_show_options_menu(m, int(did)) m.exec_(QCursor.pos()) - def _export(self, did): + def _export(self, did: int) -> None: self.mw.onExport(did=did) def _rename(self, did: int) -> None: diff --git a/qt/aqt/main.py b/qt/aqt/main.py index 80475ae7a..591df9048 100644 --- a/qt/aqt/main.py +++ b/qt/aqt/main.py @@ -14,7 +14,7 @@ import weakref import zipfile from argparse import Namespace from threading import Thread -from typing import Any, Callable, List, Optional, Sequence, TextIO, Tuple, cast +from typing import Any, Callable, List, Optional, Sequence, TextIO, Tuple, Union, cast import anki import aqt @@ -71,6 +71,7 @@ install_pylib_legacy() class ResetReason(enum.Enum): + Unknown = "unknown" AddCardsAddNote = "addCardsAddNote" EditCurrentInit = "editCurrentInit" EditorBridgeCmd = "editorBridgeCmd" @@ -510,12 +511,12 @@ class AnkiQt(QMainWindow): return True - def _loadCollection(self): + def _loadCollection(self) -> None: cpath = self.pm.collectionPath() self.col = Collection(cpath, backend=self.backend, log=True) self.setEnabled(True) - def reopen(self): + def reopen(self) -> None: self.col.reopen() def unloadCollection(self, onsuccess: Callable) -> None: @@ -656,10 +657,10 @@ class AnkiQt(QMainWindow): return self.moveToState("deckBrowser") self.overview.show() - def _reviewState(self, oldState): + def _reviewState(self, oldState: str) -> None: self.reviewer.show() - def _reviewCleanup(self, newState): + def _reviewCleanup(self, newState: str) -> None: if newState != "resetRequired" and newState != "review": self.reviewer.cleanup() @@ -675,7 +676,12 @@ class AnkiQt(QMainWindow): self.maybeEnableUndo() self.moveToState(self.state) - def requireReset(self, modal=False, reason="unknown", context=None): + def requireReset( + self, + modal: bool = False, + reason: ResetReason = ResetReason.Unknown, + context: Any = None, + ) -> None: "Signal queue needs to be rebuilt when edits are finished or by user." self.autosave() self.resetModal = modal @@ -684,7 +690,7 @@ class AnkiQt(QMainWindow): ): self.moveToState("resetRequired") - def interactiveState(self): + def interactiveState(self) -> bool: "True if not in profile manager, syncing, etc." return self.state in ("overview", "review", "deckBrowser") @@ -823,7 +829,7 @@ title="%s" %s>%s""" % ( self.addonManager.loadAddons() self.maybe_check_for_addon_updates() - def maybe_check_for_addon_updates(self): + def maybe_check_for_addon_updates(self) -> None: last_check = self.pm.last_addon_update_check() elap = intTime() - last_check @@ -866,7 +872,7 @@ title="%s" %s>%s""" % ( # Syncing ########################################################################## - def on_sync_button_clicked(self): + def on_sync_button_clicked(self) -> None: if self.media_syncer.is_syncing(): self.media_syncer.show_sync_log() else: @@ -879,7 +885,7 @@ title="%s" %s>%s""" % ( else: self._sync_collection_and_media(self._refresh_after_sync) - def _refresh_after_sync(self): + def _refresh_after_sync(self) -> None: self.toolbar.redraw() def _sync_collection_and_media(self, after_sync: Callable[[], None]): @@ -1028,7 +1034,7 @@ title="%s" %s>%s""" % ( self.form.actionUndo.setEnabled(False) gui_hooks.undo_state_did_change(False) - def checkpoint(self, name): + def checkpoint(self, name: str) -> None: self.col.save(name) self.maybeEnableUndo() @@ -1048,7 +1054,7 @@ title="%s" %s>%s""" % ( browser = aqt.dialogs.open("Browser", self) browser.show_single_card(self.reviewer.card) - def onEditCurrent(self): + def onEditCurrent(self) -> None: aqt.dialogs.open("EditCurrent", self) def onDeckConf(self, deck=None): @@ -1067,7 +1073,7 @@ title="%s" %s>%s""" % ( self.col.reset() self.moveToState("overview") - def onStats(self): + def onStats(self) -> None: deck = self._selectedDeck() if not deck: return @@ -1080,7 +1086,7 @@ title="%s" %s>%s""" % ( def onPrefs(self): aqt.dialogs.open("Preferences", self) - def onNoteTypes(self): + def onNoteTypes(self) -> None: import aqt.models aqt.models.Models(self, self, fromMain=True) @@ -1107,12 +1113,12 @@ title="%s" %s>%s""" % ( aqt.importing.importFile(self, path) return None - def onImport(self): + def onImport(self) -> None: import aqt.importing aqt.importing.onImport(self) - def onExport(self, did=None): + def onExport(self, did: Optional[int] = None) -> None: import aqt.exporting aqt.exporting.ExportDialog(self, did=did) @@ -1229,7 +1235,7 @@ title="%s" %s>%s""" % ( elif self.state == "overview": self.overview.refresh() - def on_autosync_timer(self): + def on_autosync_timer(self) -> None: elap = self.media_syncer.seconds_since_last_sync() minutes = self.pm.auto_sync_media_minutes() if not minutes: @@ -1295,7 +1301,7 @@ title="%s" %s>%s""" % ( ########################################################################## # this will gradually be phased out - def onSchemaMod(self, arg): + def onSchemaMod(self, arg: bool) -> bool: assert self.inMainThread() progress_shown = self.progress.busy() if progress_shown: @@ -1316,14 +1322,14 @@ title="%s" %s>%s""" % ( # Advanced features ########################################################################## - def onCheckDB(self): + def onCheckDB(self) -> None: check_db(self) def on_check_media_db(self) -> None: gui_hooks.media_check_will_start() check_media_db(self) - def onStudyDeck(self): + def onStudyDeck(self) -> None: from aqt.studydeck import StudyDeck ret = StudyDeck(self, dyn=True, current=self.col.decks.current()["name"]) @@ -1377,7 +1383,7 @@ title="%s" %s>%s""" % ( a = menu.addAction("Clear Code") a.setShortcuts(QKeySequence("ctrl+shift+l")) qconnect(a.triggered, frm.text.clear) - menu.exec(QCursor.pos()) + menu.exec_(QCursor.pos()) frm.log.contextMenuEvent = lambda ev: addContextMenu(ev, "log") frm.text.contextMenuEvent = lambda ev: addContextMenu(ev, "text")