From 310fc0d958a3caf0b2978aab025ffd34d82e687b Mon Sep 17 00:00:00 2001 From: Andrew Arneson Date: Sun, 28 Apr 2024 12:17:16 -0600 Subject: [PATCH] Re-enable typechecking and autocompletion for modals that rely on QtDriver in ts_qt.py --- tagstudio/src/qt/modals/delete_unlinked.py | 5 +++++ tagstudio/src/qt/modals/fix_dupes.py | 5 +++++ tagstudio/src/qt/modals/fix_unlinked.py | 5 +++++ tagstudio/src/qt/modals/folders_to_tags.py | 5 +++++ tagstudio/src/qt/modals/mirror_entities.py | 5 +++++ tagstudio/src/qt/modals/relink_unlinked.py | 5 +++++ tagstudio/src/qt/widgets/tag_box.py | 5 +++++ 7 files changed, 35 insertions(+) diff --git a/tagstudio/src/qt/modals/delete_unlinked.py b/tagstudio/src/qt/modals/delete_unlinked.py index d5800bd7..bd7a9fc0 100644 --- a/tagstudio/src/qt/modals/delete_unlinked.py +++ b/tagstudio/src/qt/modals/delete_unlinked.py @@ -2,6 +2,7 @@ # Licensed under the GPL-3.0 License. # Created for TagStudio: https://github.com/CyanVoxel/TagStudio +import typing from PySide6.QtCore import Signal, Qt, QThreadPool from PySide6.QtGui import QStandardItemModel, QStandardItem @@ -11,6 +12,10 @@ from src.core.library import ItemType, Library from src.qt.helpers import CustomRunnable, FunctionIterator from src.qt.widgets import ProgressWidget +# Only import for type checking/autocompletion, will not be imported at runtime. +if typing.TYPE_CHECKING: + from src.qt.ts_qt import QtDriver + class DeleteUnlinkedEntriesModal(QWidget): done = Signal() diff --git a/tagstudio/src/qt/modals/fix_dupes.py b/tagstudio/src/qt/modals/fix_dupes.py index 782f19c2..a6f1c561 100644 --- a/tagstudio/src/qt/modals/fix_dupes.py +++ b/tagstudio/src/qt/modals/fix_dupes.py @@ -4,6 +4,7 @@ import os +import typing from PySide6.QtCore import Qt from PySide6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QFileDialog @@ -11,6 +12,10 @@ from PySide6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushBu from src.core.library import Library from src.qt.modals import MirrorEntriesModal +# Only import for type checking/autocompletion, will not be imported at runtime. +if typing.TYPE_CHECKING: + from src.qt.ts_qt import QtDriver + class FixDupeFilesModal(QWidget): # done = Signal(int) diff --git a/tagstudio/src/qt/modals/fix_unlinked.py b/tagstudio/src/qt/modals/fix_unlinked.py index 52560a5d..3b5f8423 100644 --- a/tagstudio/src/qt/modals/fix_unlinked.py +++ b/tagstudio/src/qt/modals/fix_unlinked.py @@ -4,6 +4,7 @@ import logging +import typing from PySide6.QtCore import QThread, Qt, QThreadPool from PySide6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton @@ -13,6 +14,10 @@ from src.qt.helpers import FunctionIterator, CustomRunnable from src.qt.modals import DeleteUnlinkedEntriesModal, RelinkUnlinkedEntries from src.qt.widgets import ProgressWidget +# Only import for type checking/autocompletion, will not be imported at runtime. +if typing.TYPE_CHECKING: + from src.qt.ts_qt import QtDriver + ERROR = f'[ERROR]' WARNING = f'[WARNING]' diff --git a/tagstudio/src/qt/modals/folders_to_tags.py b/tagstudio/src/qt/modals/folders_to_tags.py index faf77390..bb05083b 100644 --- a/tagstudio/src/qt/modals/folders_to_tags.py +++ b/tagstudio/src/qt/modals/folders_to_tags.py @@ -5,6 +5,7 @@ import logging import math +import typing from PySide6.QtCore import Qt from PySide6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QScrollArea, QFrame @@ -13,6 +14,10 @@ from src.core.library import Library, Tag from src.core.palette import ColorType, get_tag_color from src.qt.flowlayout import FlowLayout +# Only import for type checking/autocompletion, will not be imported at runtime. +if typing.TYPE_CHECKING: + from src.qt.ts_qt import QtDriver + ERROR = f'[ERROR]' WARNING = f'[WARNING]' diff --git a/tagstudio/src/qt/modals/mirror_entities.py b/tagstudio/src/qt/modals/mirror_entities.py index e67bbba1..10d5f003 100644 --- a/tagstudio/src/qt/modals/mirror_entities.py +++ b/tagstudio/src/qt/modals/mirror_entities.py @@ -4,6 +4,7 @@ from time import sleep +import typing from PySide6.QtCore import Signal, Qt, QThreadPool from PySide6.QtGui import QStandardItemModel, QStandardItem @@ -13,6 +14,10 @@ from src.core.library import Library from src.qt.helpers import FunctionIterator, CustomRunnable from src.qt.widgets import ProgressWidget +# Only import for type checking/autocompletion, will not be imported at runtime. +if typing.TYPE_CHECKING: + from src.qt.ts_qt import QtDriver + class MirrorEntriesModal(QWidget): done = Signal() diff --git a/tagstudio/src/qt/modals/relink_unlinked.py b/tagstudio/src/qt/modals/relink_unlinked.py index 4f82fdcb..97ac60a2 100644 --- a/tagstudio/src/qt/modals/relink_unlinked.py +++ b/tagstudio/src/qt/modals/relink_unlinked.py @@ -2,6 +2,7 @@ # Licensed under the GPL-3.0 License. # Created for TagStudio: https://github.com/CyanVoxel/TagStudio +import typing from PySide6.QtCore import QObject, Signal, QThreadPool @@ -9,6 +10,10 @@ from src.core.library import Library from src.qt.helpers import FunctionIterator, CustomRunnable from src.qt.widgets import ProgressWidget +# Only import for type checking/autocompletion, will not be imported at runtime. +if typing.TYPE_CHECKING: + from src.qt.ts_qt import QtDriver + class RelinkUnlinkedEntries(QObject): done = Signal() diff --git a/tagstudio/src/qt/widgets/tag_box.py b/tagstudio/src/qt/widgets/tag_box.py index 18d5ce8c..52ee76d7 100644 --- a/tagstudio/src/qt/widgets/tag_box.py +++ b/tagstudio/src/qt/widgets/tag_box.py @@ -5,6 +5,7 @@ import logging import math +import typing from PySide6.QtCore import Signal, Qt from PySide6.QtWidgets import QPushButton @@ -14,6 +15,10 @@ from src.qt.flowlayout import FlowLayout from src.qt.widgets import FieldWidget, TagWidget, PanelModal from src.qt.modals import BuildTagPanel, TagSearchPanel +# Only import for type checking/autocompletion, will not be imported at runtime. +if typing.TYPE_CHECKING: + from src.qt.ts_qt import QtDriver + class TagBoxWidget(FieldWidget): updated = Signal()