diff options
author | Florian Bruhin <me@the-compiler.org> | 2021-01-13 12:34:47 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2021-01-13 20:27:21 +0100 |
commit | 1707607f294222a25ee066008b9cc42ae9756378 (patch) | |
tree | b49c1672b4ba440eb832bd6a2262ad709deea0a6 | |
parent | 0afe7989f8febfecc8b7a48d8c834350c4a62569 (diff) | |
download | qutebrowser-1707607f294222a25ee066008b9cc42ae9756378.tar.gz qutebrowser-1707607f294222a25ee066008b9cc42ae9756378.zip |
dataclasses: Fix typing around undo
See #6023
-rw-r--r-- | qutebrowser/mainwindow/tabbedbrowser.py | 8 | ||||
-rw-r--r-- | qutebrowser/mainwindow/windowundo.py | 6 |
2 files changed, 9 insertions, 5 deletions
diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py index 68e4de5ff..cc52bffcf 100644 --- a/qutebrowser/mainwindow/tabbedbrowser.py +++ b/qutebrowser/mainwindow/tabbedbrowser.py @@ -45,13 +45,16 @@ class _UndoEntry: """Information needed for :undo.""" url: QUrl - history: bytes # FIXME + history: bytes index: int pinned: bool created_at: datetime.datetime = dataclasses.field( default_factory=datetime.datetime.now) +UndoStackType = MutableSequence[MutableSequence[_UndoEntry]] + + class TabDeque: """Class which manages the 'last visited' tab stack. @@ -222,8 +225,7 @@ class TabbedBrowser(QWidget): # This init is never used, it is immediately thrown away in the next # line. - self.undo_stack: MutableSequence[MutableSequence[_UndoEntry]] = ( - collections.deque()) + self.undo_stack: UndoStackType = collections.deque() self._update_stack_size() self._filter = signalfilter.SignalFilter(win_id, self) self._now_focused = None diff --git a/qutebrowser/mainwindow/windowundo.py b/qutebrowser/mainwindow/windowundo.py index 07e4dc7d0..4d4e13f6a 100644 --- a/qutebrowser/mainwindow/windowundo.py +++ b/qutebrowser/mainwindow/windowundo.py @@ -21,13 +21,15 @@ import collections import dataclasses -from typing import Any, MutableSequence, cast +from typing import Any, MutableSequence, cast, TYPE_CHECKING from PyQt5.QtCore import QObject, QByteArray from qutebrowser.config import config from qutebrowser.mainwindow import mainwindow from qutebrowser.misc import objects +if TYPE_CHECKING: + from qutebrowser.mainwindow import tabbedbrowser instance = cast('WindowUndoManager', None) @@ -39,7 +41,7 @@ class _WindowUndoEntry: """Information needed for :undo -w.""" geometry: QByteArray - tab_stack: Any # FIXME + tab_stack: 'tabbedbrowser.UndoStackType' class WindowUndoManager(QObject): |