summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-04-13 09:37:57 +0200
committerFlorian Bruhin <me@the-compiler.org>2021-04-13 10:16:19 +0200
commit075b6823b62c8b4b86957819110fd177b2acf4a4 (patch)
treec2ae9f843a2745e9a40adcfa5d74c0a33c960248
parent5a048aedd93a39c44323fa8356431a3cd2513df0 (diff)
downloadqutebrowser-075b6823b62c8b4b86957819110fd177b2acf4a4.tar.gz
qutebrowser-075b6823b62c8b4b86957819110fd177b2acf4a4.zip
Avoid module-level circular import
When running ua_fetch.py, websettings gets imported and fails: $ python3 scripts/dev/ua_fetch.py Traceback (most recent call last): File ".../scripts/dev/ua_fetch.py", line 16, in <module> import qutebrowser.config.websettings File ".../qutebrowser/config/websettings.py", line 32, in <module> from qutebrowser.config import config File ".../qutebrowser/config/config.py", line 31, in <module> from qutebrowser.config import configdata, configexc, configutils File ".../qutebrowser/config/configdata.py", line 32, in <module> from qutebrowser.config import configtypes File ".../qutebrowser/config/configtypes.py", line 65, in <module> from qutebrowser.utils import (standarddir, utils, qtutils, urlutils, urlmatch, File ".../qutebrowser/utils/standarddir.py", line 33, in <module> from qutebrowser.utils import log, debug, utils, version File ".../qutebrowser/utils/version.py", line 529, in <module> class WebEngineVersions: File ".../qutebrowser/utils/version.py", line 597, in WebEngineVersions def from_ua(cls, ua: websettings.UserAgent) -> 'WebEngineVersions': AttributeError: partially initialized module 'qutebrowser.config.websettings' has no attribute 'UserAgent' (most likely due to a circular import)
-rw-r--r--qutebrowser/utils/version.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py
index d1fcc8e32..2bac125ed 100644
--- a/qutebrowser/utils/version.py
+++ b/qutebrowser/utils/version.py
@@ -34,7 +34,8 @@ import datetime
import getpass
import functools
import dataclasses
-from typing import Mapping, Optional, Sequence, Tuple, ClassVar, Dict, cast
+from typing import (Mapping, Optional, Sequence, Tuple, ClassVar, Dict, cast,
+ TYPE_CHECKING)
from PyQt5.QtCore import PYQT_VERSION_STR, QLibraryInfo, qVersion
@@ -58,7 +59,9 @@ import qutebrowser
from qutebrowser.utils import log, utils, standarddir, usertypes, message, resources
from qutebrowser.misc import objects, earlyinit, sql, httpclient, pastebin, elf
from qutebrowser.browser import pdfjs
-from qutebrowser.config import config, websettings
+from qutebrowser.config import config
+if TYPE_CHECKING:
+ from qutebrowser.config import websettings
_LOGO = r'''
______ ,,
@@ -594,7 +597,7 @@ class WebEngineVersions:
return s
@classmethod
- def from_ua(cls, ua: websettings.UserAgent) -> 'WebEngineVersions':
+ def from_ua(cls, ua: 'websettings.UserAgent') -> 'WebEngineVersions':
"""Get the versions parsed from a user agent.
This is the most reliable and "default" way to get this information (at least