From d85743a5e509a1393945a03dad2a7456a2a10be3 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jul 2024 21:22:37 +0700 Subject: [PATCH 01/10] added to chromium.service --- py/selenium/webdriver/chromium/service.py | 34 +++++++++++++++-------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/py/selenium/webdriver/chromium/service.py b/py/selenium/webdriver/chromium/service.py index b37850cf100a2..dbf5f7bdebc62 100644 --- a/py/selenium/webdriver/chromium/service.py +++ b/py/selenium/webdriver/chromium/service.py @@ -14,7 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -import typing +from typing import List, Optional, Mapping, Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.common import service @@ -32,18 +32,18 @@ class ChromiumService(service.Service): """ def __init__( - self, - executable_path: str = None, - port: int = 0, - service_args: typing.Optional[typing.List[str]] = None, - log_output: SubprocessStdAlias = None, - env: typing.Optional[typing.Mapping[str, str]] = None, - **kwargs, + self, + executable_path: str = None, + port: int = 0, + service_args: Optional[Sequence[str]] = None, + log_output: SubprocessStdAlias = None, + env: Optional[Mapping[str, str]] = None, + **kwargs, ) -> None: - self.service_args = service_args or [] + self._service_args = service_args or [] if isinstance(log_output, str): - self.service_args.append(f"--log-path={log_output}") + self._service_args.append(f"--log-path={log_output}") self.log_output = None else: self.log_output = log_output @@ -56,5 +56,15 @@ def __init__( **kwargs, ) - def command_line_args(self) -> typing.List[str]: - return [f"--port={self.port}"] + self.service_args + @property + def service_args(self): + return self._service_args + + @service_args.setter + def service_args(self, value): + if not isinstance(value, Sequence): + raise TypeError("service args must be a sequence") + self._service_args = value + + def command_line_args(self) -> List[str]: + return [f"--port={self.port}"] + self._service_args From 03b9d54a92d27033fb5c55c294a10c48a46f6432 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jul 2024 21:26:07 +0700 Subject: [PATCH 02/10] added to edge.service --- py/selenium/webdriver/edge/service.py | 30 ++++++++++++++++++--------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/py/selenium/webdriver/edge/service.py b/py/selenium/webdriver/edge/service.py index 7a9142ce75467..fa1edbd8d23a0 100644 --- a/py/selenium/webdriver/edge/service.py +++ b/py/selenium/webdriver/edge/service.py @@ -14,7 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -import typing +from typing import Mapping, Optional, Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.chromium import service @@ -34,21 +34,31 @@ class Service(service.ChromiumService): """ def __init__( - self, - executable_path: str = None, - port: int = 0, - log_output: SubprocessStdAlias = None, - service_args: typing.Optional[typing.List[str]] = None, - env: typing.Optional[typing.Mapping[str, str]] = None, - **kwargs, + self, + executable_path: str = None, + port: int = 0, + log_output: SubprocessStdAlias = None, + service_args: Optional[Sequence[str]] = None, + env: Optional[Mapping[str, str]] = None, + **kwargs, ) -> None: - self.service_args = service_args or [] + self._service_args = service_args or [] super().__init__( executable_path=executable_path, port=port, - service_args=service_args, + service_args=self.service_args, log_output=log_output, env=env, **kwargs, ) + + @property + def service_args(self): + return self._service_args + + @service_args.setter + def service_args(self, value): + if not isinstance(value, Sequence): + raise TypeError("service args must be a sequence") + self._service_args = value From 5e2438c0f4e9f5db71fc2ec601d19403f885d59f Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jul 2024 21:30:21 +0700 Subject: [PATCH 03/10] added to firefox.service --- py/selenium/webdriver/firefox/service.py | 27 ++++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/py/selenium/webdriver/firefox/service.py b/py/selenium/webdriver/firefox/service.py index 4b25cc7b5304d..7ebdb2e759aa4 100644 --- a/py/selenium/webdriver/firefox/service.py +++ b/py/selenium/webdriver/firefox/service.py @@ -14,8 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -import typing -from typing import List +from typing import List, Optional, Mapping, Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.common import service @@ -37,12 +36,12 @@ def __init__( self, executable_path: str = None, port: int = 0, - service_args: typing.Optional[typing.List[str]] = None, + service_args: Optional[Sequence[str]] = None, log_output: SubprocessStdAlias = None, - env: typing.Optional[typing.Mapping[str, str]] = None, + env: Optional[Mapping[str, str]] = None, **kwargs, ) -> None: - self.service_args = service_args or [] + self._service_args = service_args or [] super().__init__( executable_path=executable_path, @@ -53,9 +52,19 @@ def __init__( ) # Set a port for CDP - if "--connect-existing" not in self.service_args: - self.service_args.append("--websocket-port") - self.service_args.append(f"{utils.free_port()}") + if "--connect-existing" not in self._service_args: + self._service_args.append("--websocket-port") + self._service_args.append(f"{utils.free_port()}") def command_line_args(self) -> List[str]: - return ["--port", f"{self.port}"] + self.service_args + return ["--port", f"{self.port}"] + self._service_args + + @property + def service_args(self): + return self._service_args + + @service_args.setter + def service_args(self, value): + if not isinstance(value, Sequence): + raise TypeError("service args must be a sequence") + self._service_args = value From 4e8358de00a1fd6b44e76572f1e4f7a7d67ba5d3 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jul 2024 21:33:12 +0700 Subject: [PATCH 04/10] added to ie.service --- py/selenium/webdriver/ie/service.py | 37 ++++++++++++++++++----------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/py/selenium/webdriver/ie/service.py b/py/selenium/webdriver/ie/service.py index 4b0d7f0f3bd90..86d4583befb83 100644 --- a/py/selenium/webdriver/ie/service.py +++ b/py/selenium/webdriver/ie/service.py @@ -14,8 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -import typing -from typing import List +from typing import List, Sequence, Optional from selenium.types import SubprocessStdAlias from selenium.webdriver.common import service @@ -25,14 +24,14 @@ class Service(service.Service): """Object that manages the starting and stopping of the IEDriver.""" def __init__( - self, - executable_path: str = None, - port: int = 0, - host: typing.Optional[str] = None, - service_args: typing.Optional[typing.List[str]] = None, - log_level: typing.Optional[str] = None, - log_output: SubprocessStdAlias = None, - **kwargs, + self, + executable_path: str = None, + port: int = 0, + host: Optional[str] = None, + service_args: Optional[Sequence[str]] = None, + log_level: Optional[str] = None, + log_output: SubprocessStdAlias = None, + **kwargs, ) -> None: """Creates a new instance of the Service. @@ -45,11 +44,11 @@ def __init__( - log_output: (Optional) int representation of STDOUT/DEVNULL, any IO instance or String path to file. Default is "stdout". """ - self.service_args = service_args or [] + self._service_args = service_args or [] if host: - self.service_args.append(f"--host={host}") + self._service_args.append(f"--host={host}") if log_level: - self.service_args.append(f"--log-level={log_level}") + self._service_args.append(f"--log-level={log_level}") super().__init__( executable_path=executable_path, @@ -59,4 +58,14 @@ def __init__( ) def command_line_args(self) -> List[str]: - return [f"--port={self.port}"] + self.service_args + return [f"--port={self.port}"] + self._service_args + + @property + def service_args(self): + return self._service_args + + @service_args.setter + def service_args(self, value): + if not isinstance(value, Sequence): + raise TypeError("Service args must be a sequence") + self._service_args = value From 1e2b509871e4c3632531922cf85a6ab4bd0ec563 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jul 2024 21:37:36 +0700 Subject: [PATCH 05/10] added to safari.service --- py/selenium/webdriver/safari/service.py | 32 ++++++++++++++++--------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/py/selenium/webdriver/safari/service.py b/py/selenium/webdriver/safari/service.py index 9728b877720c4..909b1458127a3 100644 --- a/py/selenium/webdriver/safari/service.py +++ b/py/selenium/webdriver/safari/service.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -import typing +from typing import List, Sequence, Optional, Mapping from selenium.webdriver.common import service @@ -31,15 +31,15 @@ class Service(service.Service): """ def __init__( - self, - executable_path: str = None, - port: int = 0, - service_args: typing.Optional[typing.List[str]] = None, - env: typing.Optional[typing.Mapping[str, str]] = None, - reuse_service=False, - **kwargs, + self, + executable_path: str = None, + port: int = 0, + service_args: Optional[Sequence[str]] = None, + env: Optional[Mapping[str, str]] = None, + reuse_service=False, + **kwargs, ) -> None: - self.service_args = service_args or [] + self._service_args = service_args or [] self.reuse_service = reuse_service super().__init__( @@ -49,8 +49,8 @@ def __init__( **kwargs, ) - def command_line_args(self) -> typing.List[str]: - return ["-p", f"{self.port}"] + self.service_args + def command_line_args(self) -> List[str]: + return ["-p", f"{self.port}"] + self._service_args @property def service_url(self) -> str: @@ -66,3 +66,13 @@ def reuse_service(self, reuse: bool) -> None: if not isinstance(reuse, bool): raise TypeError("reuse must be a boolean") self._reuse_service = reuse + + @property + def service_args(self): + return self._service_args + + @service_args.setter + def service_args(self, value): + if not isinstance(value, Sequence): + raise TypeError("service args must be a sequence") + self._service_args = value From 494366fc7d4daec2e3d4272be2948d85420ac03e Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jul 2024 21:39:08 +0700 Subject: [PATCH 06/10] added to webkitgtk.service --- py/selenium/webdriver/webkitgtk/service.py | 32 ++++++++++++++-------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/py/selenium/webdriver/webkitgtk/service.py b/py/selenium/webdriver/webkitgtk/service.py index 978aa3cadfe1a..599faa3c73b17 100644 --- a/py/selenium/webdriver/webkitgtk/service.py +++ b/py/selenium/webdriver/webkitgtk/service.py @@ -14,7 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -import typing +from typing import Optional, List, Mapping, Sequence from selenium.webdriver.common import service @@ -33,15 +33,15 @@ class Service(service.Service): """ def __init__( - self, - executable_path: str = DEFAULT_EXECUTABLE_PATH, - port: int = 0, - log_path: typing.Optional[str] = None, - service_args: typing.Optional[typing.List[str]] = None, - env: typing.Optional[typing.Mapping[str, str]] = None, - **kwargs, + self, + executable_path: str = DEFAULT_EXECUTABLE_PATH, + port: int = 0, + log_path: Optional[str] = None, + service_args: Optional[Sequence[str]] = None, + env: Optional[Mapping[str, str]] = None, + **kwargs, ): - self.service_args = service_args or [] + self._service_args = service_args or [] log_file = open(log_path, "wb") if log_path else None super().__init__( executable_path=executable_path, @@ -51,5 +51,15 @@ def __init__( **kwargs, ) # type: ignore - def command_line_args(self) -> typing.List[str]: - return ["-p", f"{self.port}"] + self.service_args + def command_line_args(self) -> List[str]: + return ["-p", f"{self.port}"] + self._service_args + + @property + def service_args(self): + return self._service_args + + @service_args.setter + def service_args(self, value): + if not isinstance(value, Sequence): + raise TypeError("service args must be a sequence") + self._service_args = value From 4b583ce49fec1d2ebf3ec9acfe4aba81836db0ca Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jul 2024 21:44:17 +0700 Subject: [PATCH 07/10] added to wpewebkit.service --- py/selenium/webdriver/wpewebkit/service.py | 32 ++++++++++++++-------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/py/selenium/webdriver/wpewebkit/service.py b/py/selenium/webdriver/wpewebkit/service.py index 26e8747bae803..c93f5642ff1ae 100644 --- a/py/selenium/webdriver/wpewebkit/service.py +++ b/py/selenium/webdriver/wpewebkit/service.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. import shutil -import typing +from typing import Mapping, List, Optional, Sequence from selenium.webdriver.common import service @@ -34,15 +34,15 @@ class Service(service.Service): """ def __init__( - self, - executable_path: str = DEFAULT_EXECUTABLE_PATH, - port: int = 0, - log_output: typing.Optional[str] = None, - service_args: typing.Optional[typing.List[str]] = None, - env: typing.Optional[typing.Mapping[str, str]] = None, - **kwargs, + self, + executable_path: str = DEFAULT_EXECUTABLE_PATH, + port: int = 0, + log_output: Optional[str] = None, + service_args: Optional[Sequence[str]] = None, + env: Optional[Mapping[str, str]] = None, + **kwargs, ): - self.service_args = service_args or [] + self._service_args = service_args or [] super().__init__( executable_path=executable_path, port=port, @@ -51,5 +51,15 @@ def __init__( **kwargs, ) # type: ignore - def command_line_args(self) -> typing.List[str]: - return ["-p", f"{self.port}"] + self.service_args + def command_line_args(self) -> List[str]: + return ["-p", f"{self.port}"] + self._service_args + + @property + def service_args(self): + return self._service_args + + @service_args.setter + def service_args(self, value): + if not isinstance(value, Sequence): + raise TypeError("service args must be a sequence") + self._service_args = value From 5a12a2579ca5d36beb6e6630b6aee07861c696d6 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jul 2024 22:21:53 +0700 Subject: [PATCH 08/10] applied formatting --- py/selenium/webdriver/chromium/service.py | 19 +++++++++++-------- py/selenium/webdriver/edge/service.py | 18 ++++++++++-------- py/selenium/webdriver/firefox/service.py | 5 ++++- py/selenium/webdriver/ie/service.py | 20 +++++++++++--------- py/selenium/webdriver/safari/service.py | 19 +++++++++++-------- py/selenium/webdriver/webkitgtk/service.py | 19 +++++++++++-------- py/selenium/webdriver/wpewebkit/service.py | 19 +++++++++++-------- 7 files changed, 69 insertions(+), 50 deletions(-) diff --git a/py/selenium/webdriver/chromium/service.py b/py/selenium/webdriver/chromium/service.py index dbf5f7bdebc62..b219dd8956d57 100644 --- a/py/selenium/webdriver/chromium/service.py +++ b/py/selenium/webdriver/chromium/service.py @@ -14,7 +14,10 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -from typing import List, Optional, Mapping, Sequence +from typing import List +from typing import Mapping +from typing import Optional +from typing import Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.common import service @@ -32,13 +35,13 @@ class ChromiumService(service.Service): """ def __init__( - self, - executable_path: str = None, - port: int = 0, - service_args: Optional[Sequence[str]] = None, - log_output: SubprocessStdAlias = None, - env: Optional[Mapping[str, str]] = None, - **kwargs, + self, + executable_path: str = None, + port: int = 0, + service_args: Optional[Sequence[str]] = None, + log_output: SubprocessStdAlias = None, + env: Optional[Mapping[str, str]] = None, + **kwargs, ) -> None: self._service_args = service_args or [] diff --git a/py/selenium/webdriver/edge/service.py b/py/selenium/webdriver/edge/service.py index fa1edbd8d23a0..ac1df0b9678c6 100644 --- a/py/selenium/webdriver/edge/service.py +++ b/py/selenium/webdriver/edge/service.py @@ -14,7 +14,9 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -from typing import Mapping, Optional, Sequence +from typing import Mapping +from typing import Optional +from typing import Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.chromium import service @@ -34,13 +36,13 @@ class Service(service.ChromiumService): """ def __init__( - self, - executable_path: str = None, - port: int = 0, - log_output: SubprocessStdAlias = None, - service_args: Optional[Sequence[str]] = None, - env: Optional[Mapping[str, str]] = None, - **kwargs, + self, + executable_path: str = None, + port: int = 0, + log_output: SubprocessStdAlias = None, + service_args: Optional[Sequence[str]] = None, + env: Optional[Mapping[str, str]] = None, + **kwargs, ) -> None: self._service_args = service_args or [] diff --git a/py/selenium/webdriver/firefox/service.py b/py/selenium/webdriver/firefox/service.py index 7ebdb2e759aa4..b84bb38362d28 100644 --- a/py/selenium/webdriver/firefox/service.py +++ b/py/selenium/webdriver/firefox/service.py @@ -14,7 +14,10 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -from typing import List, Optional, Mapping, Sequence +from typing import List +from typing import Mapping +from typing import Optional +from typing import Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.common import service diff --git a/py/selenium/webdriver/ie/service.py b/py/selenium/webdriver/ie/service.py index 86d4583befb83..05bbb1ebf021b 100644 --- a/py/selenium/webdriver/ie/service.py +++ b/py/selenium/webdriver/ie/service.py @@ -14,7 +14,9 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -from typing import List, Sequence, Optional +from typing import List +from typing import Optional +from typing import Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.common import service @@ -24,14 +26,14 @@ class Service(service.Service): """Object that manages the starting and stopping of the IEDriver.""" def __init__( - self, - executable_path: str = None, - port: int = 0, - host: Optional[str] = None, - service_args: Optional[Sequence[str]] = None, - log_level: Optional[str] = None, - log_output: SubprocessStdAlias = None, - **kwargs, + self, + executable_path: str = None, + port: int = 0, + host: Optional[str] = None, + service_args: Optional[Sequence[str]] = None, + log_level: Optional[str] = None, + log_output: SubprocessStdAlias = None, + **kwargs, ) -> None: """Creates a new instance of the Service. diff --git a/py/selenium/webdriver/safari/service.py b/py/selenium/webdriver/safari/service.py index 909b1458127a3..0b0ab374ea416 100644 --- a/py/selenium/webdriver/safari/service.py +++ b/py/selenium/webdriver/safari/service.py @@ -15,7 +15,10 @@ # specific language governing permissions and limitations # under the License. -from typing import List, Sequence, Optional, Mapping +from typing import List +from typing import Mapping +from typing import Optional +from typing import Sequence from selenium.webdriver.common import service @@ -31,13 +34,13 @@ class Service(service.Service): """ def __init__( - self, - executable_path: str = None, - port: int = 0, - service_args: Optional[Sequence[str]] = None, - env: Optional[Mapping[str, str]] = None, - reuse_service=False, - **kwargs, + self, + executable_path: str = None, + port: int = 0, + service_args: Optional[Sequence[str]] = None, + env: Optional[Mapping[str, str]] = None, + reuse_service=False, + **kwargs, ) -> None: self._service_args = service_args or [] diff --git a/py/selenium/webdriver/webkitgtk/service.py b/py/selenium/webdriver/webkitgtk/service.py index 599faa3c73b17..4152f229f70ad 100644 --- a/py/selenium/webdriver/webkitgtk/service.py +++ b/py/selenium/webdriver/webkitgtk/service.py @@ -14,7 +14,10 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -from typing import Optional, List, Mapping, Sequence +from typing import List +from typing import Mapping +from typing import Optional +from typing import Sequence from selenium.webdriver.common import service @@ -33,13 +36,13 @@ class Service(service.Service): """ def __init__( - self, - executable_path: str = DEFAULT_EXECUTABLE_PATH, - port: int = 0, - log_path: Optional[str] = None, - service_args: Optional[Sequence[str]] = None, - env: Optional[Mapping[str, str]] = None, - **kwargs, + self, + executable_path: str = DEFAULT_EXECUTABLE_PATH, + port: int = 0, + log_path: Optional[str] = None, + service_args: Optional[Sequence[str]] = None, + env: Optional[Mapping[str, str]] = None, + **kwargs, ): self._service_args = service_args or [] log_file = open(log_path, "wb") if log_path else None diff --git a/py/selenium/webdriver/wpewebkit/service.py b/py/selenium/webdriver/wpewebkit/service.py index c93f5642ff1ae..12e94cd25e65d 100644 --- a/py/selenium/webdriver/wpewebkit/service.py +++ b/py/selenium/webdriver/wpewebkit/service.py @@ -15,7 +15,10 @@ # specific language governing permissions and limitations # under the License. import shutil -from typing import Mapping, List, Optional, Sequence +from typing import List +from typing import Mapping +from typing import Optional +from typing import Sequence from selenium.webdriver.common import service @@ -34,13 +37,13 @@ class Service(service.Service): """ def __init__( - self, - executable_path: str = DEFAULT_EXECUTABLE_PATH, - port: int = 0, - log_output: Optional[str] = None, - service_args: Optional[Sequence[str]] = None, - env: Optional[Mapping[str, str]] = None, - **kwargs, + self, + executable_path: str = DEFAULT_EXECUTABLE_PATH, + port: int = 0, + log_output: Optional[str] = None, + service_args: Optional[Sequence[str]] = None, + env: Optional[Mapping[str, str]] = None, + **kwargs, ): self._service_args = service_args or [] super().__init__( From c9682545c1d902ae17902155869baa6520b09631 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jul 2024 22:53:38 +0700 Subject: [PATCH 09/10] replace Sequence with List and added type hints --- py/selenium/webdriver/chrome/service.py | 8 +++++--- py/selenium/webdriver/chromium/service.py | 11 +++++------ py/selenium/webdriver/edge/service.py | 12 ++++++------ py/selenium/webdriver/firefox/service.py | 11 +++++------ py/selenium/webdriver/ie/service.py | 11 +++++------ py/selenium/webdriver/safari/service.py | 11 +++++------ py/selenium/webdriver/webkitgtk/service.py | 11 +++++------ 7 files changed, 36 insertions(+), 39 deletions(-) diff --git a/py/selenium/webdriver/chrome/service.py b/py/selenium/webdriver/chrome/service.py index e151f768d5618..b9762f764aeb2 100644 --- a/py/selenium/webdriver/chrome/service.py +++ b/py/selenium/webdriver/chrome/service.py @@ -14,7 +14,9 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -import typing +from typing import List +from typing import Mapping +from typing import Optional from selenium.types import SubprocessStdAlias from selenium.webdriver.chromium import service @@ -35,9 +37,9 @@ def __init__( self, executable_path=None, port: int = 0, - service_args: typing.Optional[typing.List[str]] = None, + service_args: Optional[List[str]] = None, log_output: SubprocessStdAlias = None, - env: typing.Optional[typing.Mapping[str, str]] = None, + env: Optional[Mapping[str, str]] = None, **kwargs, ) -> None: super().__init__( diff --git a/py/selenium/webdriver/chromium/service.py b/py/selenium/webdriver/chromium/service.py index b219dd8956d57..7106faf3ee719 100644 --- a/py/selenium/webdriver/chromium/service.py +++ b/py/selenium/webdriver/chromium/service.py @@ -17,7 +17,6 @@ from typing import List from typing import Mapping from typing import Optional -from typing import Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.common import service @@ -38,7 +37,7 @@ def __init__( self, executable_path: str = None, port: int = 0, - service_args: Optional[Sequence[str]] = None, + service_args: Optional[List[str]] = None, log_output: SubprocessStdAlias = None, env: Optional[Mapping[str, str]] = None, **kwargs, @@ -60,13 +59,13 @@ def __init__( ) @property - def service_args(self): + def service_args(self) -> List[str]: return self._service_args @service_args.setter - def service_args(self, value): - if not isinstance(value, Sequence): - raise TypeError("service args must be a sequence") + def service_args(self, value: List[str]): + if not isinstance(value, List): + raise TypeError("service args must be a List of strings") self._service_args = value def command_line_args(self) -> List[str]: diff --git a/py/selenium/webdriver/edge/service.py b/py/selenium/webdriver/edge/service.py index ac1df0b9678c6..242095d13bf27 100644 --- a/py/selenium/webdriver/edge/service.py +++ b/py/selenium/webdriver/edge/service.py @@ -14,9 +14,9 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. +from typing import List from typing import Mapping from typing import Optional -from typing import Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.chromium import service @@ -40,7 +40,7 @@ def __init__( executable_path: str = None, port: int = 0, log_output: SubprocessStdAlias = None, - service_args: Optional[Sequence[str]] = None, + service_args: Optional[List[str]] = None, env: Optional[Mapping[str, str]] = None, **kwargs, ) -> None: @@ -56,11 +56,11 @@ def __init__( ) @property - def service_args(self): + def service_args(self) -> List[str]: return self._service_args @service_args.setter - def service_args(self, value): - if not isinstance(value, Sequence): - raise TypeError("service args must be a sequence") + def service_args(self, value: List[str]): + if not isinstance(value, List): + raise TypeError("service args must be a List of strings") self._service_args = value diff --git a/py/selenium/webdriver/firefox/service.py b/py/selenium/webdriver/firefox/service.py index b84bb38362d28..b260b8c50ed41 100644 --- a/py/selenium/webdriver/firefox/service.py +++ b/py/selenium/webdriver/firefox/service.py @@ -17,7 +17,6 @@ from typing import List from typing import Mapping from typing import Optional -from typing import Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.common import service @@ -39,7 +38,7 @@ def __init__( self, executable_path: str = None, port: int = 0, - service_args: Optional[Sequence[str]] = None, + service_args: Optional[List[str]] = None, log_output: SubprocessStdAlias = None, env: Optional[Mapping[str, str]] = None, **kwargs, @@ -63,11 +62,11 @@ def command_line_args(self) -> List[str]: return ["--port", f"{self.port}"] + self._service_args @property - def service_args(self): + def service_args(self) -> List[str]: return self._service_args @service_args.setter - def service_args(self, value): - if not isinstance(value, Sequence): - raise TypeError("service args must be a sequence") + def service_args(self, value: List[str]): + if not isinstance(value, List): + raise TypeError("service args must be a List of strings") self._service_args = value diff --git a/py/selenium/webdriver/ie/service.py b/py/selenium/webdriver/ie/service.py index 05bbb1ebf021b..175d89463aea3 100644 --- a/py/selenium/webdriver/ie/service.py +++ b/py/selenium/webdriver/ie/service.py @@ -16,7 +16,6 @@ # under the License. from typing import List from typing import Optional -from typing import Sequence from selenium.types import SubprocessStdAlias from selenium.webdriver.common import service @@ -30,7 +29,7 @@ def __init__( executable_path: str = None, port: int = 0, host: Optional[str] = None, - service_args: Optional[Sequence[str]] = None, + service_args: Optional[List[str]] = None, log_level: Optional[str] = None, log_output: SubprocessStdAlias = None, **kwargs, @@ -63,11 +62,11 @@ def command_line_args(self) -> List[str]: return [f"--port={self.port}"] + self._service_args @property - def service_args(self): + def service_args(self) -> List[str]: return self._service_args @service_args.setter - def service_args(self, value): - if not isinstance(value, Sequence): - raise TypeError("Service args must be a sequence") + def service_args(self, value: List[str]): + if not isinstance(value, List): + raise TypeError("service args must be a List of strings") self._service_args = value diff --git a/py/selenium/webdriver/safari/service.py b/py/selenium/webdriver/safari/service.py index 0b0ab374ea416..72c80ff8c8c01 100644 --- a/py/selenium/webdriver/safari/service.py +++ b/py/selenium/webdriver/safari/service.py @@ -18,7 +18,6 @@ from typing import List from typing import Mapping from typing import Optional -from typing import Sequence from selenium.webdriver.common import service @@ -37,7 +36,7 @@ def __init__( self, executable_path: str = None, port: int = 0, - service_args: Optional[Sequence[str]] = None, + service_args: Optional[List[str]] = None, env: Optional[Mapping[str, str]] = None, reuse_service=False, **kwargs, @@ -71,11 +70,11 @@ def reuse_service(self, reuse: bool) -> None: self._reuse_service = reuse @property - def service_args(self): + def service_args(self) -> List[str]: return self._service_args @service_args.setter - def service_args(self, value): - if not isinstance(value, Sequence): - raise TypeError("service args must be a sequence") + def service_args(self, value: List[str]): + if not isinstance(value, List): + raise TypeError("service args must be a List of strings") self._service_args = value diff --git a/py/selenium/webdriver/webkitgtk/service.py b/py/selenium/webdriver/webkitgtk/service.py index 4152f229f70ad..0bcb126f5b215 100644 --- a/py/selenium/webdriver/webkitgtk/service.py +++ b/py/selenium/webdriver/webkitgtk/service.py @@ -17,7 +17,6 @@ from typing import List from typing import Mapping from typing import Optional -from typing import Sequence from selenium.webdriver.common import service @@ -40,7 +39,7 @@ def __init__( executable_path: str = DEFAULT_EXECUTABLE_PATH, port: int = 0, log_path: Optional[str] = None, - service_args: Optional[Sequence[str]] = None, + service_args: Optional[List[str]] = None, env: Optional[Mapping[str, str]] = None, **kwargs, ): @@ -58,11 +57,11 @@ def command_line_args(self) -> List[str]: return ["-p", f"{self.port}"] + self._service_args @property - def service_args(self): + def service_args(self) -> List[str]: return self._service_args @service_args.setter - def service_args(self, value): - if not isinstance(value, Sequence): - raise TypeError("service args must be a sequence") + def service_args(self, value: List[str]): + if not isinstance(value, List): + raise TypeError("service args must be a List of strings") self._service_args = value From 3b4c40118a47ebae7340e3c76b8a3014c4b34c37 Mon Sep 17 00:00:00 2001 From: Alex Popov Date: Fri, 6 Dec 2024 06:21:50 +0000 Subject: [PATCH 10/10] fix for service constructor formatting --- py/selenium/webdriver/chromium/service.py | 3 +-- py/selenium/webdriver/webkitgtk/service.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/py/selenium/webdriver/chromium/service.py b/py/selenium/webdriver/chromium/service.py index 49126b5cbcd3b..c6489aaf781f7 100644 --- a/py/selenium/webdriver/chromium/service.py +++ b/py/selenium/webdriver/chromium/service.py @@ -20,7 +20,6 @@ from typing import Mapping from typing import Optional - from selenium.types import SubprocessStdAlias from selenium.webdriver.common import service @@ -43,6 +42,7 @@ def __init__( service_args: Optional[List[str]] = None, log_output: SubprocessStdAlias = None, env: Optional[Mapping[str, str]] = None, + driver_path_env_key: str = None, **kwargs, ) -> None: self._service_args = service_args or [] @@ -77,4 +77,3 @@ def service_args(self, value: List[str]): def command_line_args(self) -> List[str]: return [f"--port={self.port}"] + self._service_args - diff --git a/py/selenium/webdriver/webkitgtk/service.py b/py/selenium/webdriver/webkitgtk/service.py index 72449d9b59144..0eba3d7c4d89d 100644 --- a/py/selenium/webdriver/webkitgtk/service.py +++ b/py/selenium/webdriver/webkitgtk/service.py @@ -70,4 +70,4 @@ def service_args(self) -> List[str]: def service_args(self, value: List[str]): if not isinstance(value, List): raise TypeError("service args must be a List of strings") - self._service_args = value \ No newline at end of file + self._service_args = value