add some types to main.py

This commit is contained in:
Damien Elmes 2021-02-01 20:59:18 +10:00
parent 98f4b3db81
commit 84f8d7f604
2 changed files with 29 additions and 23 deletions

View file

@ -235,13 +235,13 @@ class DeckBrowser:
a = m.addAction(tr(TR.ACTIONS_OPTIONS)) a = m.addAction(tr(TR.ACTIONS_OPTIONS))
qconnect(a.triggered, lambda b, did=did: self._options(did)) qconnect(a.triggered, lambda b, did=did: self._options(did))
a = m.addAction(tr(TR.ACTIONS_EXPORT)) 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)) a = m.addAction(tr(TR.ACTIONS_DELETE))
qconnect(a.triggered, lambda b, did=did: self._delete(int(did))) qconnect(a.triggered, lambda b, did=did: self._delete(int(did)))
gui_hooks.deck_browser_will_show_options_menu(m, int(did)) gui_hooks.deck_browser_will_show_options_menu(m, int(did))
m.exec_(QCursor.pos()) m.exec_(QCursor.pos())
def _export(self, did): def _export(self, did: int) -> None:
self.mw.onExport(did=did) self.mw.onExport(did=did)
def _rename(self, did: int) -> None: def _rename(self, did: int) -> None:

View file

@ -14,7 +14,7 @@ import weakref
import zipfile import zipfile
from argparse import Namespace from argparse import Namespace
from threading import Thread 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 anki
import aqt import aqt
@ -71,6 +71,7 @@ install_pylib_legacy()
class ResetReason(enum.Enum): class ResetReason(enum.Enum):
Unknown = "unknown"
AddCardsAddNote = "addCardsAddNote" AddCardsAddNote = "addCardsAddNote"
EditCurrentInit = "editCurrentInit" EditCurrentInit = "editCurrentInit"
EditorBridgeCmd = "editorBridgeCmd" EditorBridgeCmd = "editorBridgeCmd"
@ -510,12 +511,12 @@ class AnkiQt(QMainWindow):
return True return True
def _loadCollection(self): def _loadCollection(self) -> None:
cpath = self.pm.collectionPath() cpath = self.pm.collectionPath()
self.col = Collection(cpath, backend=self.backend, log=True) self.col = Collection(cpath, backend=self.backend, log=True)
self.setEnabled(True) self.setEnabled(True)
def reopen(self): def reopen(self) -> None:
self.col.reopen() self.col.reopen()
def unloadCollection(self, onsuccess: Callable) -> None: def unloadCollection(self, onsuccess: Callable) -> None:
@ -656,10 +657,10 @@ class AnkiQt(QMainWindow):
return self.moveToState("deckBrowser") return self.moveToState("deckBrowser")
self.overview.show() self.overview.show()
def _reviewState(self, oldState): def _reviewState(self, oldState: str) -> None:
self.reviewer.show() self.reviewer.show()
def _reviewCleanup(self, newState): def _reviewCleanup(self, newState: str) -> None:
if newState != "resetRequired" and newState != "review": if newState != "resetRequired" and newState != "review":
self.reviewer.cleanup() self.reviewer.cleanup()
@ -675,7 +676,12 @@ class AnkiQt(QMainWindow):
self.maybeEnableUndo() self.maybeEnableUndo()
self.moveToState(self.state) 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." "Signal queue needs to be rebuilt when edits are finished or by user."
self.autosave() self.autosave()
self.resetModal = modal self.resetModal = modal
@ -684,7 +690,7 @@ class AnkiQt(QMainWindow):
): ):
self.moveToState("resetRequired") self.moveToState("resetRequired")
def interactiveState(self): def interactiveState(self) -> bool:
"True if not in profile manager, syncing, etc." "True if not in profile manager, syncing, etc."
return self.state in ("overview", "review", "deckBrowser") return self.state in ("overview", "review", "deckBrowser")
@ -823,7 +829,7 @@ title="%s" %s>%s</button>""" % (
self.addonManager.loadAddons() self.addonManager.loadAddons()
self.maybe_check_for_addon_updates() 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() last_check = self.pm.last_addon_update_check()
elap = intTime() - last_check elap = intTime() - last_check
@ -866,7 +872,7 @@ title="%s" %s>%s</button>""" % (
# Syncing # Syncing
########################################################################## ##########################################################################
def on_sync_button_clicked(self): def on_sync_button_clicked(self) -> None:
if self.media_syncer.is_syncing(): if self.media_syncer.is_syncing():
self.media_syncer.show_sync_log() self.media_syncer.show_sync_log()
else: else:
@ -879,7 +885,7 @@ title="%s" %s>%s</button>""" % (
else: else:
self._sync_collection_and_media(self._refresh_after_sync) self._sync_collection_and_media(self._refresh_after_sync)
def _refresh_after_sync(self): def _refresh_after_sync(self) -> None:
self.toolbar.redraw() self.toolbar.redraw()
def _sync_collection_and_media(self, after_sync: Callable[[], None]): def _sync_collection_and_media(self, after_sync: Callable[[], None]):
@ -1028,7 +1034,7 @@ title="%s" %s>%s</button>""" % (
self.form.actionUndo.setEnabled(False) self.form.actionUndo.setEnabled(False)
gui_hooks.undo_state_did_change(False) gui_hooks.undo_state_did_change(False)
def checkpoint(self, name): def checkpoint(self, name: str) -> None:
self.col.save(name) self.col.save(name)
self.maybeEnableUndo() self.maybeEnableUndo()
@ -1048,7 +1054,7 @@ title="%s" %s>%s</button>""" % (
browser = aqt.dialogs.open("Browser", self) browser = aqt.dialogs.open("Browser", self)
browser.show_single_card(self.reviewer.card) browser.show_single_card(self.reviewer.card)
def onEditCurrent(self): def onEditCurrent(self) -> None:
aqt.dialogs.open("EditCurrent", self) aqt.dialogs.open("EditCurrent", self)
def onDeckConf(self, deck=None): def onDeckConf(self, deck=None):
@ -1067,7 +1073,7 @@ title="%s" %s>%s</button>""" % (
self.col.reset() self.col.reset()
self.moveToState("overview") self.moveToState("overview")
def onStats(self): def onStats(self) -> None:
deck = self._selectedDeck() deck = self._selectedDeck()
if not deck: if not deck:
return return
@ -1080,7 +1086,7 @@ title="%s" %s>%s</button>""" % (
def onPrefs(self): def onPrefs(self):
aqt.dialogs.open("Preferences", self) aqt.dialogs.open("Preferences", self)
def onNoteTypes(self): def onNoteTypes(self) -> None:
import aqt.models import aqt.models
aqt.models.Models(self, self, fromMain=True) aqt.models.Models(self, self, fromMain=True)
@ -1107,12 +1113,12 @@ title="%s" %s>%s</button>""" % (
aqt.importing.importFile(self, path) aqt.importing.importFile(self, path)
return None return None
def onImport(self): def onImport(self) -> None:
import aqt.importing import aqt.importing
aqt.importing.onImport(self) aqt.importing.onImport(self)
def onExport(self, did=None): def onExport(self, did: Optional[int] = None) -> None:
import aqt.exporting import aqt.exporting
aqt.exporting.ExportDialog(self, did=did) aqt.exporting.ExportDialog(self, did=did)
@ -1229,7 +1235,7 @@ title="%s" %s>%s</button>""" % (
elif self.state == "overview": elif self.state == "overview":
self.overview.refresh() self.overview.refresh()
def on_autosync_timer(self): def on_autosync_timer(self) -> None:
elap = self.media_syncer.seconds_since_last_sync() elap = self.media_syncer.seconds_since_last_sync()
minutes = self.pm.auto_sync_media_minutes() minutes = self.pm.auto_sync_media_minutes()
if not minutes: if not minutes:
@ -1295,7 +1301,7 @@ title="%s" %s>%s</button>""" % (
########################################################################## ##########################################################################
# this will gradually be phased out # this will gradually be phased out
def onSchemaMod(self, arg): def onSchemaMod(self, arg: bool) -> bool:
assert self.inMainThread() assert self.inMainThread()
progress_shown = self.progress.busy() progress_shown = self.progress.busy()
if progress_shown: if progress_shown:
@ -1316,14 +1322,14 @@ title="%s" %s>%s</button>""" % (
# Advanced features # Advanced features
########################################################################## ##########################################################################
def onCheckDB(self): def onCheckDB(self) -> None:
check_db(self) check_db(self)
def on_check_media_db(self) -> None: def on_check_media_db(self) -> None:
gui_hooks.media_check_will_start() gui_hooks.media_check_will_start()
check_media_db(self) check_media_db(self)
def onStudyDeck(self): def onStudyDeck(self) -> None:
from aqt.studydeck import StudyDeck from aqt.studydeck import StudyDeck
ret = StudyDeck(self, dyn=True, current=self.col.decks.current()["name"]) ret = StudyDeck(self, dyn=True, current=self.col.decks.current()["name"])
@ -1377,7 +1383,7 @@ title="%s" %s>%s</button>""" % (
a = menu.addAction("Clear Code") a = menu.addAction("Clear Code")
a.setShortcuts(QKeySequence("ctrl+shift+l")) a.setShortcuts(QKeySequence("ctrl+shift+l"))
qconnect(a.triggered, frm.text.clear) qconnect(a.triggered, frm.text.clear)
menu.exec(QCursor.pos()) menu.exec_(QCursor.pos())
frm.log.contextMenuEvent = lambda ev: addContextMenu(ev, "log") frm.log.contextMenuEvent = lambda ev: addContextMenu(ev, "log")
frm.text.contextMenuEvent = lambda ev: addContextMenu(ev, "text") frm.text.contextMenuEvent = lambda ev: addContextMenu(ev, "text")