Skip to content

Commit c6f6697

Browse files
fix: renderer type fixes (#1114)
* fix: type fixes * fix: address review feedback
1 parent c1599c9 commit c6f6697

File tree

4 files changed

+61
-53
lines changed

4 files changed

+61
-53
lines changed

src/tagstudio/qt/mixed/media_player.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import typing
66
from pathlib import Path
77
from time import gmtime
8-
from typing import override
8+
from typing import cast, override
99

1010
import structlog
1111
from PIL import Image, ImageDraw
@@ -411,11 +411,11 @@ def play(self, filepath: Path) -> None:
411411
self.player.play()
412412

413413
def load_toggle_play_icon(self, playing: bool) -> None:
414-
icon = self.driver.rm.pause_icon if playing else self.driver.rm.play_icon
414+
icon = cast(bytes, self.driver.rm.pause_icon if playing else self.driver.rm.play_icon)
415415
self.play_pause.load(icon)
416416

417417
def load_mute_unmute_icon(self, muted: bool) -> None:
418-
icon = self.driver.rm.volume_mute_icon if muted else self.driver.rm.volume_icon
418+
icon = cast(bytes, self.driver.rm.volume_mute_icon if muted else self.driver.rm.volume_icon)
419419
self.mute_unmute.load(icon)
420420

421421
def slider_value_changed(self, value: int) -> None:

src/tagstudio/qt/mixed/migration_modal.py

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import traceback
77
from pathlib import Path
8+
from typing import cast
89

910
import structlog
1011
from PySide6.QtCore import QObject, Qt, QThreadPool, Signal
@@ -61,8 +62,8 @@ def __init__(self, path: Path):
6162
self.path: Path = path
6263

6364
self.stack: list[PagedPanelState] = []
64-
self.json_lib: JsonLibrary = None
65-
self.sql_lib: SqliteLibrary = None
65+
self.json_lib: JsonLibrary = None # pyright: ignore[reportAttributeAccessIssue]
66+
self.sql_lib: SqliteLibrary = None # pyright: ignore[reportAttributeAccessIssue]
6667
self.is_migration_initialized: bool = False
6768
self.discrepancies: list[str] = []
6869

@@ -72,7 +73,7 @@ def __init__(self, path: Path):
7273
self.old_entry_count: int = 0
7374
self.old_tag_count: int = 0
7475
self.old_ext_count: int = 0
75-
self.old_ext_type: bool = None
76+
self.old_ext_type: bool = None # pyright: ignore[reportAttributeAccessIssue]
7677

7778
self.field_parity: bool = False
7879
self.path_parity: bool = False
@@ -367,7 +368,7 @@ def migration_progress(self, skip_ui: bool = False):
367368
minimum=0,
368369
maximum=0,
369370
)
370-
pb.setCancelButton(None)
371+
pb.setCancelButton(None) # pyright: ignore[reportArgumentType]
371372
self.body_wrapper_01.layout().addWidget(pb)
372373

373374
try:
@@ -390,7 +391,7 @@ def migration_progress(self, skip_ui: bool = False):
390391
pb.setMinimum(1), # type: ignore
391392
pb.setValue(1), # type: ignore
392393
# Enable the finish button
393-
self.stack[1].buttons[4].setDisabled(False),
394+
cast(QPushButtonWrapper, self.stack[1].buttons[4]).setDisabled(False),
394395
)
395396
)
396397
QThreadPool.globalInstance().start(r)
@@ -474,7 +475,7 @@ def update_sql_value_ui(self, show_msg_box: bool = True):
474475
)
475476
self.update_sql_value(
476477
self.ext_type_row,
477-
self.sql_lib.prefs(LibraryPrefs.IS_EXCLUDE_LIST),
478+
self.sql_lib.prefs(LibraryPrefs.IS_EXCLUDE_LIST), # pyright: ignore[reportArgumentType]
478479
self.old_ext_type,
479480
)
480481
logger.info("Parity check complete!")
@@ -636,18 +637,15 @@ def check_path_parity(self) -> bool:
636637

637638
def check_subtag_parity(self) -> bool:
638639
"""Check if all JSON parent tags match the new SQL parent tags."""
639-
sql_parent_tags: set[int] = None
640-
json_parent_tags: set[int] = None
641-
642640
with Session(self.sql_lib.engine) as session:
643641
for tag in self.sql_lib.tags:
644642
tag_id = tag.id # Tag IDs start at 0
645-
sql_parent_tags = set(
643+
sql_parent_tags: set[int] = set(
646644
session.scalars(select(TagParent.parent_id).where(TagParent.child_id == tag.id))
647645
)
648646

649647
# JSON tags allowed self-parenting; SQL tags no longer allow this.
650-
json_parent_tags = set(self.json_lib.get_tag(tag_id).subtag_ids)
648+
json_parent_tags: set[int] = set(self.json_lib.get_tag(tag_id).subtag_ids)
651649
json_parent_tags.discard(tag_id)
652650

653651
logger.info(
@@ -677,16 +675,15 @@ def check_ext_type(self) -> bool:
677675

678676
def check_alias_parity(self) -> bool:
679677
"""Check if all JSON aliases match the new SQL aliases."""
680-
sql_aliases: set[str] = None
681-
json_aliases: set[str] = None
682-
683678
with Session(self.sql_lib.engine) as session:
684679
for tag in self.sql_lib.tags:
685680
tag_id = tag.id # Tag IDs start at 0
686-
sql_aliases = set(
681+
sql_aliases: set[str] = set(
687682
session.scalars(select(TagAlias.name).where(TagAlias.tag_id == tag.id))
688683
)
689-
json_aliases = set([x for x in self.json_lib.get_tag(tag_id).aliases if x])
684+
json_aliases: set[str] = set(
685+
[x for x in self.json_lib.get_tag(tag_id).aliases if x]
686+
)
690687

691688
logger.info(
692689
"[Alias Parity]",

src/tagstudio/qt/mixed/pagination.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55

66
"""A pagination widget created for TagStudio."""
77

8-
from typing import override
8+
from typing import cast, override
99

1010
from PIL import Image, ImageQt
11-
from PySide6.QtCore import QObject, QSize, Signal
11+
from PySide6.QtCore import QSize, Signal
1212
from PySide6.QtGui import QIntValidator, QPixmap
1313
from PySide6.QtWidgets import QHBoxLayout, QLabel, QLineEdit, QSizePolicy, QWidget
1414

@@ -17,7 +17,7 @@
1717
from tagstudio.qt.views.qbutton_wrapper import QPushButtonWrapper
1818

1919

20-
class Pagination(QWidget, QObject):
20+
class Pagination(QWidget):
2121
"""Widget containing controls for navigating between pages of items."""
2222

2323
index = Signal(int)
@@ -160,8 +160,8 @@ def update_buttons(self, page_count: int, index: int, emit: bool = True):
160160
srt_scale = max(1, (7 - (end_page - index)))
161161

162162
if page_count >= 8:
163-
end_size = self.button_size.width() * end_scale + (3 * (end_scale - 1))
164-
srt_size = self.button_size.width() * srt_scale + (3 * (srt_scale - 1))
163+
end_size = self.button_size.width() * end_scale + (3 * (end_scale - 1)) # pyright: ignore[reportPossiblyUnboundVariable]
164+
srt_size = self.button_size.width() * srt_scale + (3 * (srt_scale - 1)) # pyright: ignore[reportPossiblyUnboundVariable]
165165
self.end_ellipses.setMinimumWidth(end_size)
166166
self.end_ellipses.setMaximumWidth(end_size)
167167
self.start_ellipses.setMinimumWidth(srt_size)
@@ -223,7 +223,10 @@ def update_buttons(self, page_count: int, index: int, emit: bool = True):
223223
str(i + 1)
224224
)
225225
self._assign_click(
226-
self.start_buffer_layout.itemAt(i - start_offset).widget(),
226+
cast(
227+
QPushButtonWrapper,
228+
self.start_buffer_layout.itemAt(i - start_offset).widget(),
229+
),
227230
i,
228231
)
229232
sbc += 1
@@ -239,7 +242,10 @@ def update_buttons(self, page_count: int, index: int, emit: bool = True):
239242
str(i + 1)
240243
)
241244
self._assign_click(
242-
self.end_buffer_layout.itemAt(i - end_offset).widget(),
245+
cast(
246+
QPushButtonWrapper,
247+
self.end_buffer_layout.itemAt(i - end_offset).widget(),
248+
),
243249
i,
244250
)
245251
else:

0 commit comments

Comments
 (0)