diff --git a/common/devtools/pdl.py b/common/devtools/pdl.py index 75fa2abb794d8..de0dd516702ab 100644 --- a/common/devtools/pdl.py +++ b/common/devtools/pdl.py @@ -3,10 +3,11 @@ # found in the LICENSE file. from __future__ import print_function -import collections +from collections import OrderedDict import json import re import sys +from typing import Any description = "" @@ -23,10 +24,12 @@ ] -def assignType(item, type, is_array=False, map_binary_to_string=False): +def assignType( + item: dict, type: str, is_array: bool = False, map_binary_to_string: bool = False +) -> None: if is_array: item["type"] = "array" - item["items"] = collections.OrderedDict() + item["items"] = OrderedDict() assignType(item["items"], type, False, map_binary_to_string) return @@ -40,8 +43,10 @@ def assignType(item, type, is_array=False, map_binary_to_string=False): item["$ref"] = type -def createItem(d, experimental, deprecated, name=None): - result = collections.OrderedDict(d) +def createItem( + d: dict, experimental: bool | Any, deprecated: bool | Any, name: str | Any = None +) -> OrderedDict[str, Any]: + result = OrderedDict(d) if name: result["name"] = name global description @@ -54,9 +59,11 @@ def createItem(d, experimental, deprecated, name=None): return result -def parse(data, file_name, map_binary_to_string=False): - protocol = collections.OrderedDict() - protocol["version"] = collections.OrderedDict() +def parse( + data: str, file_name: str, map_binary_to_string: bool = False +) -> OrderedDict[str, Any]: + protocol = OrderedDict() + protocol["version"] = OrderedDict() protocol["domains"] = [] domain = None item = None @@ -183,7 +190,9 @@ def parse(data, file_name, map_binary_to_string=False): return protocol -def loads(data, file_name, map_binary_to_string=False): +def loads( + data: str, file_name: str, map_binary_to_string: bool = False +) -> OrderedDict[str, Any] | Any: if file_name.endswith(".pdl"): return parse(data, file_name, map_binary_to_string) return json.loads(data) diff --git a/py/selenium/webdriver/chromium/webdriver.py b/py/selenium/webdriver/chromium/webdriver.py index 894e26df3e97b..b9600a2907ac9 100644 --- a/py/selenium/webdriver/chromium/webdriver.py +++ b/py/selenium/webdriver/chromium/webdriver.py @@ -56,6 +56,11 @@ def __init__( self.service.path = self.service.env_path() or finder.get_driver_path() self.service.start() + if browser_name is None: + raise ValueError("browser_name must be specified") + if vendor_prefix is None: + raise ValueError("vendor_prefix must be specified") + executor = ChromiumRemoteConnection( remote_server_addr=self.service.service_url, browser_name=browser_name, diff --git a/py/selenium/webdriver/common/virtual_authenticator.py b/py/selenium/webdriver/common/virtual_authenticator.py index 37355d45efe4b..7eee90ddb7152 100644 --- a/py/selenium/webdriver/common/virtual_authenticator.py +++ b/py/selenium/webdriver/common/virtual_authenticator.py @@ -112,7 +112,7 @@ def is_resident_credential(self) -> bool: return self._is_resident_credential @property - def rp_id(self) -> str: + def rp_id(self) -> Optional[str]: return self._rp_id @property diff --git a/py/selenium/webdriver/remote/webdriver.py b/py/selenium/webdriver/remote/webdriver.py index 81c7cc088e917..42ac76404822b 100644 --- a/py/selenium/webdriver/remote/webdriver.py +++ b/py/selenium/webdriver/remote/webdriver.py @@ -257,18 +257,18 @@ def __init__( self.start_session(capabilities) self._fedcm = FedCM(self) - self._websocket_connection = None - self._script = None - self._network = None - self._browser = None - self._bidi_session = None - self._browsing_context = None - self._storage = None - self._webextension = None - self._permissions = None - self._emulation = None - self._input = None - self._devtools = None + self._websocket_connection: Optional[WebSocketConnection] = None + self._script: Optional[Script] = None + self._network: Optional[Network] = None + self._browser: Optional[Browser] = None + self._bidi_session: Optional[Session] = None + self._browsing_context: Optional[BrowsingContext] = None + self._storage: Optional[Storage] = None + self._webextension: Optional[WebExtension] = None + self._permissions: Optional[Permissions] = None + self._emulation: Optional[Emulation] = None + self._input: Optional[Input] = None + self._devtools: Optional[Any] = None def __repr__(self) -> str: return f'<{type(self).__module__}.{type(self).__name__} (session="{self.session_id}")>' diff --git a/py/selenium/webdriver/safari/options.py b/py/selenium/webdriver/safari/options.py index d9265ed5f624d..7591f44e44500 100644 --- a/py/selenium/webdriver/safari/options.py +++ b/py/selenium/webdriver/safari/options.py @@ -65,13 +65,13 @@ class Options(ArgOptions): SAFARI_TECH_PREVIEW = "Safari Technology Preview" # creating descriptor objects - automatic_inspection: bool = _SafariOptionsDescriptor(AUTOMATIC_INSPECTION, bool) + automatic_inspection = _SafariOptionsDescriptor(AUTOMATIC_INSPECTION, bool) """Whether to enable automatic inspection.""" - automatic_profiling: bool = _SafariOptionsDescriptor(AUTOMATIC_PROFILING, bool) + automatic_profiling = _SafariOptionsDescriptor(AUTOMATIC_PROFILING, bool) """Whether to enable automatic profiling.""" - use_technology_preview: bool = _SafariOptionsDescriptor(SAFARI_TECH_PREVIEW, bool) + use_technology_preview = _SafariOptionsDescriptor(SAFARI_TECH_PREVIEW, bool) """Whether to use Safari Technology Preview.""" @property diff --git a/py/selenium/webdriver/webkitgtk/options.py b/py/selenium/webdriver/webkitgtk/options.py index 8c337eebde0e2..0eeb251aedd2b 100644 --- a/py/selenium/webdriver/webkitgtk/options.py +++ b/py/selenium/webdriver/webkitgtk/options.py @@ -15,6 +15,8 @@ # specific language governing permissions and limitations # under the License. +from typing import Any + from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.common.options import ArgOptions @@ -59,7 +61,7 @@ def to_capabilities(self) -> dict: """Create a capabilities dictionary with all set options.""" caps = self._caps - browser_options = {} + browser_options: dict[str, Any] = {} if self.binary_location: browser_options["binary"] = self.binary_location if self.arguments: