mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 14:32:22 -04:00
fix mypy treating Qt objects as inheriting from Any
Before this change, mypy would fail to catch mistakes like mw.does_not_exist(). Also fix a couple of bugs this has uncovered.
This commit is contained in:
parent
0c59c8b591
commit
7d6fd48a6f
3 changed files with 15 additions and 3 deletions
|
@ -91,7 +91,17 @@ def copy_and_fix_pyi(source, dest):
|
||||||
with open(source) as input_file:
|
with open(source) as input_file:
|
||||||
with open(dest, "w") as output_file:
|
with open(dest, "w") as output_file:
|
||||||
for line in input_file.readlines():
|
for line in input_file.readlines():
|
||||||
|
# assigning to None is a syntax error
|
||||||
line = fix_none.sub(r"\1_ =", line)
|
line = fix_none.sub(r"\1_ =", line)
|
||||||
|
# inheriting from the missing sip.sipwrapper definition
|
||||||
|
# causes missing attributes not to be detected, as it's treating
|
||||||
|
# the class as inheriting from Any
|
||||||
|
line = line.replace("sip.simplewrapper", "object")
|
||||||
|
line = line.replace("sip.wrapper", "object")
|
||||||
|
# remove blanket getattr in QObject which also causes missing
|
||||||
|
# attributes not to be detected
|
||||||
|
if "def __getattr__(self, name: str) -> typing.Any" in line:
|
||||||
|
continue
|
||||||
output_file.write(line)
|
output_file.write(line)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1219,7 +1219,7 @@ where id in %s"""
|
||||||
) -> None:
|
) -> None:
|
||||||
"Shows prompt if tags not provided."
|
"Shows prompt if tags not provided."
|
||||||
if not (
|
if not (
|
||||||
tags := self.maybe_prompt_for_tags(tags, tr(TR.BROWSING_ENTER_TAGS_TO_ADD))
|
tags := self._maybe_prompt_for_tags(tags, tr(TR.BROWSING_ENTER_TAGS_TO_ADD))
|
||||||
):
|
):
|
||||||
return
|
return
|
||||||
add_tags(mw=self.mw, note_ids=self.selectedNotes(), space_separated_tags=tags)
|
add_tags(mw=self.mw, note_ids=self.selectedNotes(), space_separated_tags=tags)
|
||||||
|
@ -1228,7 +1228,7 @@ where id in %s"""
|
||||||
def remove_tags_from_selected_notes(self, tags: Optional[str] = None) -> None:
|
def remove_tags_from_selected_notes(self, tags: Optional[str] = None) -> None:
|
||||||
"Shows prompt if tags not provided."
|
"Shows prompt if tags not provided."
|
||||||
if not (
|
if not (
|
||||||
tags := self.maybe_prompt_for_tags(
|
tags := self._maybe_prompt_for_tags(
|
||||||
tags, tr(TR.BROWSING_ENTER_TAGS_TO_DELETE)
|
tags, tr(TR.BROWSING_ENTER_TAGS_TO_DELETE)
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
|
|
|
@ -716,7 +716,9 @@ class SidebarTreeView(QTreeView):
|
||||||
for stage in SidebarStage:
|
for stage in SidebarStage:
|
||||||
if stage == SidebarStage.ROOT:
|
if stage == SidebarStage.ROOT:
|
||||||
root = SidebarItem("", "", item_type=SidebarItemType.ROOT)
|
root = SidebarItem("", "", item_type=SidebarItemType.ROOT)
|
||||||
handled = gui_hooks.browser_will_build_tree(False, root, stage, self)
|
handled = gui_hooks.browser_will_build_tree(
|
||||||
|
False, root, stage, self.browser
|
||||||
|
)
|
||||||
if not handled:
|
if not handled:
|
||||||
self._build_stage(root, stage)
|
self._build_stage(root, stage)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue