Skip to content

Commit bc998e8

Browse files
toofardaerich
authored andcommitted
Handle PyQt WebEngine version strings being Optional
With PyQt6-WebEngine 6.6.0 some pointer return types are now wrapped in Optionals[]. In practice they should never be None, we've been relying on them being set for long enough. `qWebEngineVersion()` and `qWebEngineChromiumVersion()` now are typed as returning `Optional[str]`. In `from_api()` we can handle the `chromium_version` being null, so pass that through, but we are depending on the `qtwe_version` being set, so add an assert there. ref: qutebrowser#7990
1 parent 337a7fb commit bc998e8

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

qutebrowser/utils/version.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ def _infer_chromium_version(
686686
return cls._CHROMIUM_VERSIONS.get(minor_version)
687687

688688
@classmethod
689-
def from_api(cls, qtwe_version: str, chromium_version: str) -> 'WebEngineVersions':
689+
def from_api(cls, qtwe_version: str, chromium_version: Optional[str]) -> 'WebEngineVersions':
690690
"""Get the versions based on the exact versions.
691691
692692
This is called if we have proper APIs to get the versions easily
@@ -796,8 +796,10 @@ def qtwebengine_versions(*, avoid_init: bool = False) -> WebEngineVersions:
796796
except ImportError:
797797
pass # Needs QtWebEngine 6.2+ with PyQtWebEngine 6.3.1+
798798
else:
799+
qtwe_version = qWebEngineVersion()
800+
assert qtwe_version is not None
799801
return WebEngineVersions.from_api(
800-
qtwe_version=qWebEngineVersion(),
802+
qtwe_version=qtwe_version,
801803
chromium_version=qWebEngineChromiumVersion(),
802804
)
803805

0 commit comments

Comments
 (0)