summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-01-12 13:50:43 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-01-13 20:26:59 +0100
commitc99b7c66e0ef3f471b0c35efd1fb1cd3ce795219 (patch)
tree5b7d6b1067c460553c71f53169849b0580676cd4
parent14373db9c7f7bee0a7e0039da7bd6c039301031b (diff)
downloadqutebrowser-c99b7c66e0ef3f471b0c35efd1fb1cd3ce795219.tar.gz
qutebrowser-c99b7c66e0ef3f471b0c35efd1fb1cd3ce795219.zip
dataclasses: Initial mypy fix
See #6023
-rw-r--r--qutebrowser/browser/browsertab.py1
-rw-r--r--qutebrowser/browser/hints.py10
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py1
-rw-r--r--qutebrowser/commands/command.py8
-rw-r--r--qutebrowser/commands/runners.py4
-rw-r--r--qutebrowser/completion/completer.py10
-rw-r--r--qutebrowser/components/misccommands.py1
-rw-r--r--qutebrowser/misc/backendproblem.py6
8 files changed, 24 insertions, 17 deletions
diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py
index b78faacd2..26d5ed65d 100644
--- a/qutebrowser/browser/browsertab.py
+++ b/qutebrowser/browser/browsertab.py
@@ -869,6 +869,7 @@ class AbstractTabPrivate:
"""Show/hide (and if needed, create) the web inspector for this tab."""
tabdata = self._tab.data
if tabdata.inspector is None:
+ assert tabdata.splitter is not None
tabdata.inspector = inspector.create(
splitter=tabdata.splitter,
win_id=self._tab.win_id)
diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py
index e36d73321..4a8a9c761 100644
--- a/qutebrowser/browser/hints.py
+++ b/qutebrowser/browser/hints.py
@@ -28,7 +28,7 @@ import enum
import dataclasses
from string import ascii_lowercase
from typing import (TYPE_CHECKING, Callable, Dict, Iterable, Iterator, List, Mapping,
- MutableSequence, Optional, Sequence, Set)
+ MutableSequence, Optional, Sequence, Set, cast)
from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, Qt, QUrl
from PyQt5.QtWidgets import QLabel
@@ -183,15 +183,15 @@ class HintContext:
all_labels: List[HintLabel] = dataclasses.field(default_factory=list)
labels: Dict[str, HintLabel] = dataclasses.field(default_factory=dict)
- target: Optional[Target] = None
- baseurl: Optional[QUrl] = None
+ target: Target = cast(Target, None) # FIXME
+ baseurl: QUrl = cast(QUrl, None) # FIXME
to_follow: Optional[str] = None
rapid: bool = False
first_run: bool = True
add_history: bool = False
- filterstr: Optional[str] = None
+ filterstr: str = cast(str, None) # FIXME
args: List[str] = dataclasses.field(default_factory=list)
- tab: Optional['browsertab.AbstractTab'] = None
+ tab: 'browsertab.AbstractTab' = cast('browsertab.AbstractTab', None) # FIXME
group: Optional[str] = None
hint_mode: Optional[str] = None
first: bool = False
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index c0b269665..efdc8a59e 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -1529,6 +1529,7 @@ class WebEngineTab(browsertab.AbstractTab):
# However, self.url() is not available yet and the requested URL
# might not match the URL we get from the error - so we just apply a
# heuristic here.
+ assert self.data.last_navigation is not None
if (show_non_overr_cert_error and
url.matches(self.data.last_navigation.url, QUrl.RemoveScheme)):
self._show_error_page(url, str(error))
diff --git a/qutebrowser/commands/command.py b/qutebrowser/commands/command.py
index 36dc73d5d..388fcfb81 100644
--- a/qutebrowser/commands/command.py
+++ b/qutebrowser/commands/command.py
@@ -24,13 +24,15 @@ import collections
import traceback
import typing
import dataclasses
-from typing import Any, MutableMapping, MutableSequence, Tuple, Union, List, Optional
+from typing import (Any, MutableMapping, MutableSequence, Tuple, Union, List, Optional,
+ Callable)
from qutebrowser.api import cmdutils
from qutebrowser.commands import cmdexc, argparser
from qutebrowser.utils import log, message, docutils, objreg, usertypes, utils
from qutebrowser.utils import debug as debug_utils
from qutebrowser.misc import objects
+from qutebrowser.completion.models import completionmodel
@dataclasses.dataclass
@@ -42,8 +44,8 @@ class ArgInfo:
hide: bool = False
metavar: Optional[str] = None
flag: Optional[str] = None
- completion: Any = None # FIXME
- choices: List[str] = None
+ completion: Optional[Callable[..., completionmodel.CompletionModel]] = None
+ choices: Optional[List[str]] = None
class Command:
diff --git a/qutebrowser/commands/runners.py b/qutebrowser/commands/runners.py
index b4994ffec..2a30344cd 100644
--- a/qutebrowser/commands/runners.py
+++ b/qutebrowser/commands/runners.py
@@ -30,7 +30,7 @@ from PyQt5.QtCore import pyqtSlot, QUrl, QObject
from qutebrowser.api import cmdutils
from qutebrowser.config import config
-from qutebrowser.commands import cmdexc
+from qutebrowser.commands import cmdexc, command
from qutebrowser.utils import message, objreg, qtutils, usertypes, utils
from qutebrowser.misc import split, objects
from qutebrowser.keyinput import macros, modeman
@@ -48,7 +48,7 @@ class ParseResult:
"""The result of parsing a commandline."""
- cmd: Optional[str]
+ cmd: Optional[command.Command]
args: Optional[List[str]]
cmdline: List[str]
diff --git a/qutebrowser/completion/completer.py b/qutebrowser/completion/completer.py
index 5b9ac2a76..df54c5908 100644
--- a/qutebrowser/completion/completer.py
+++ b/qutebrowser/completion/completer.py
@@ -20,7 +20,7 @@
"""Completer attached to a CompletionView."""
import dataclasses
-from typing import Any
+from typing import Any, TYPE_CHECKING
from PyQt5.QtCore import pyqtSlot, QObject, QTimer
@@ -29,6 +29,8 @@ from qutebrowser.commands import runners
from qutebrowser.misc import objects
from qutebrowser.utils import log, utils, debug, objreg
from qutebrowser.completion.models import miscmodels
+if TYPE_CHECKING:
+ from qutebrowser.browser import browsertab
@dataclasses.dataclass
@@ -36,10 +38,10 @@ class CompletionInfo:
"""Context passed into all completion functions."""
- config: Any # FIXME
- keyconf: Any # FIXME
+ config: config.Config
+ keyconf: config.KeyConfig
win_id: int
- cur_tab: Any # FIXME
+ cur_tab: 'browsertab.AbstractTab'
class Completer(QObject):
diff --git a/qutebrowser/components/misccommands.py b/qutebrowser/components/misccommands.py
index 85598f56a..b8906b7b0 100644
--- a/qutebrowser/components/misccommands.py
+++ b/qutebrowser/components/misccommands.py
@@ -339,6 +339,7 @@ def devtools(tab: apitypes.Tab,
@cmdutils.argument('tab', value=cmdutils.Value.cur_tab)
def devtools_focus(tab: apitypes.Tab) -> None:
"""Toggle focus between the devtools/tab."""
+ assert tab.data.splitter is not None
try:
tab.data.splitter.cycle_focus()
except apitypes.InspectorError as e:
diff --git a/qutebrowser/misc/backendproblem.py b/qutebrowser/misc/backendproblem.py
index 4d8cd80cc..2b31470b9 100644
--- a/qutebrowser/misc/backendproblem.py
+++ b/qutebrowser/misc/backendproblem.py
@@ -27,7 +27,7 @@ import enum
import shutil
import argparse
import dataclasses
-from typing import Any, List, Sequence, Tuple, Optional
+from typing import Any, List, Sequence, Tuple, Optional, cast
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QDialog, QPushButton, QHBoxLayout, QVBoxLayout, QLabel,
@@ -157,8 +157,8 @@ class _BackendImports:
webkit_available: Optional[bool] = None
webengine_available: Optional[bool] = None
- webkit_error: Optional[str] = None
- webengine_error: Optional[str] = None
+ webkit_error: str = cast(str, None) # FIXME
+ webengine_error: str = cast(str, None) # FIXME
class _BackendProblemChecker: