diff --git a/.mypy.ini b/.mypy.ini index 93ed0aaad..6ba52ee64 100644 --- a/.mypy.ini +++ b/.mypy.ini @@ -74,6 +74,12 @@ strict_optional = True strict_optional = True [mypy-aqt.deckoptions] strict_optional = True +[mypy-aqt.notetypechooser] +strict_optional = True +[mypy-aqt.stats] +strict_optional = True +[mypy-aqt.switch] +strict_optional = True [mypy-anki.scheduler.base] strict_optional = True [mypy-anki._backend.rsbridge] diff --git a/qt/aqt/notetypechooser.py b/qt/aqt/notetypechooser.py index 395af193b..cb282109d 100644 --- a/qt/aqt/notetypechooser.py +++ b/qt/aqt/notetypechooser.py @@ -111,6 +111,7 @@ class NotetypeChooser(QHBoxLayout): if not ret.name: return notetype = self.mw.col.models.by_name(ret.name) + assert notetype is not None if (id := notetype["id"]) != self._selected_notetype_id: self.selected_notetype_id = id @@ -146,7 +147,9 @@ class NotetypeChooser(QHBoxLayout): func(self._selected_notetype_id) def selected_notetype_name(self) -> str: - return self.mw.col.models.get(self.selected_notetype_id)["name"] + selected_notetype = self.mw.col.models.get(self.selected_notetype_id) + assert selected_notetype is not None + return selected_notetype["name"] def _ensure_selected_notetype_valid(self) -> None: if not self.mw.col.models.get(self._selected_notetype_id): diff --git a/qt/aqt/stats.py b/qt/aqt/stats.py index 206205349..05caf97f2 100644 --- a/qt/aqt/stats.py +++ b/qt/aqt/stats.py @@ -61,9 +61,11 @@ class NewDeckStats(QDialog): b = f.buttonBox.addButton( tr.statistics_save_pdf(), QDialogButtonBox.ButtonRole.ActionRole ) + assert b is not None qconnect(b.clicked, self.saveImage) b.setAutoDefault(False) b = f.buttonBox.button(QDialogButtonBox.StandardButton.Close) + assert b is not None b.setAutoDefault(False) maybeHideClose(self.form.buttonBox) addCloseShortcut(self) @@ -78,7 +80,7 @@ class NewDeckStats(QDialog): def reject(self) -> None: self.deck_chooser.cleanup() self.form.web.cleanup() - self.form.web = None + self.form.web = None # type: ignore saveGeom(self, self.name) aqt.dialogs.markClosed("NewDeckStats") QDialog.reject(self) @@ -115,7 +117,9 @@ class NewDeckStats(QDialog): # unreadable. A simple fix for now is to scroll to the top of the # page first. def after_scroll(arg: Any) -> None: - self.form.web.page().printToPdf(path) + form_web_page = self.form.web.page() + assert form_web_page is not None + form_web_page.printToPdf(path) tooltip(tr.statistics_saved()) self.form.web.evalWithCallback("window.scrollTo(0, 0);", after_scroll) @@ -165,6 +169,7 @@ class DeckStats(QDialog): b = f.buttonBox.addButton( tr.statistics_save_pdf(), QDialogButtonBox.ButtonRole.ActionRole ) + assert b is not None qconnect(b.clicked, self.saveImage) b.setAutoDefault(False) qconnect(f.groups.clicked, lambda: self.changeScope("deck")) @@ -182,7 +187,7 @@ class DeckStats(QDialog): def reject(self) -> None: self.form.web.cleanup() - self.form.web = None + self.form.web = None # type: ignore saveGeom(self, self.name) aqt.dialogs.markClosed("DeckStats") QDialog.reject(self) @@ -208,7 +213,9 @@ class DeckStats(QDialog): path = self._imagePath() if not path: return - self.form.web.page().printToPdf(path) + form_web_page = self.form.web.page() + assert form_web_page is not None + form_web_page.printToPdf(path) tooltip(tr.statistics_saved()) def changePeriod(self, n: int) -> None: diff --git a/qt/aqt/switch.py b/qt/aqt/switch.py index fb3c2da6c..214d20bc7 100644 --- a/qt/aqt/switch.py +++ b/qt/aqt/switch.py @@ -103,7 +103,7 @@ class Switch(QAbstractButton): self._position = self.end_position self.update() - def paintEvent(self, _event: QPaintEvent) -> None: + def paintEvent(self, _event: QPaintEvent | None) -> None: painter = QPainter(self) painter.setRenderHint(QPainter.RenderHint.Antialiasing, True) painter.setPen(Qt.PenStyle.NoPen) @@ -162,12 +162,13 @@ class Switch(QAbstractButton): self._current_label_rectangle(), Qt.AlignmentFlag.AlignCenter, self.label ) - def mouseReleaseEvent(self, event: QMouseEvent) -> None: + def mouseReleaseEvent(self, event: QMouseEvent | None) -> None: super().mouseReleaseEvent(event) + assert event is not None if event.button() == Qt.MouseButton.LeftButton: self._animate_toggle() - def enterEvent(self, event: QEnterEvent) -> None: + def enterEvent(self, event: QEnterEvent | None) -> None: self.setCursor(Qt.CursorShape.PointingHandCursor) super().enterEvent(event)