diff --git a/conftest.py b/conftest.py
index fa49d7a..cd68eca 100644
--- a/conftest.py
+++ b/conftest.py
@@ -67,10 +67,9 @@
     """Extract frames from a traceback object."""
     frames = []
     while tb:
-        if hasattr(tb, "tb_frame") and hasattr(tb, "tb_lineno"):
+        if hasattr(tb, "tb_frame") and hasattr(tb, "tb_lineno") and Path(tb.tb_frame.f_code.co_filename).exists():
             # Skip frames without source files
-            if Path(tb.tb_frame.f_code.co_filename).exists():
-                frames.append((tb.tb_frame, tb.tb_lineno, getattr(tb, "tb_lasti", 0)))
+            frames.append((tb.tb_frame, tb.tb_lineno, getattr(tb, "tb_lasti", 0)))
         tb = getattr(tb, "tb_next", None)
     return frames
 
@@ -575,9 +574,8 @@
     _skip_unless_remote(request, selenium_driver.is_remote)
 
     # skip tests for drivers that don't support BiDi when --bidi is enabled
-    if selenium_driver.bidi:
-        if driver_class.lower() not in selenium_driver.supported_bidi_drivers:
-            pytest.skip(f"{driver_class} does not support BiDi")
+    if selenium_driver.bidi and driver_class.lower() not in selenium_driver.supported_bidi_drivers:
+        pytest.skip(f"{driver_class} does not support BiDi")
 
     _apply_xfail_markers(request, driver_class, selenium_driver.is_remote)
 
@@ -606,15 +604,14 @@
 
     yield selenium_driver.driver
 
-    if request.node.get_closest_marker("no_driver_after_test"):
-        if selenium_driver is not None:
-            try:
-                selenium_driver.stop_driver()
-            except WebDriverException:
-                pass
-            except Exception:
-                raise
-            selenium_driver = None
+    if request.node.get_closest_marker("no_driver_after_test") and selenium_driver is not None:
+        try:
+            selenium_driver.stop_driver()
+        except WebDriverException:
+            pass
+        except Exception:
+            raise
+        selenium_driver = None
 
 
 @pytest.fixture(scope="session", autouse=True)
diff --git a/generate_api_module_listing.py b/generate_api_module_listing.py
index 2f53e75..deaead4 100644
--- a/generate_api_module_listing.py
+++ b/generate_api_module_listing.py
@@ -88,9 +88,8 @@
 """
             )
             for module in modules:
-                if base_module in module:
-                    if len(module.split(".")) - len(base_module.split(".")) == 1:
-                        f.write(f"   {module}\n")
+                if base_module in module and len(module.split(".")) - len(base_module.split(".")) == 1:
+                    f.write(f"   {module}\n")
         f.write(
             """
 Indices and tables
diff --git a/pyproject.toml b/pyproject.toml
index 3cc17ac..72a50f5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -165,6 +165,7 @@
     "PYI041",
     "PT",
     "RUF",
+    "SIM102",
     "TID252",
     "UP",
     "W",
diff --git a/selenium/webdriver/remote/server.py b/selenium/webdriver/remote/server.py
index b9a903f..40a6927 100644
--- a/selenium/webdriver/remote/server.py
+++ b/selenium/webdriver/remote/server.py
@@ -120,9 +120,8 @@
 
     @version.setter
     def version(self, version):
-        if version:
-            if not re.match(r"^\d+\.\d+\.\d+$", str(version)):
-                raise TypeError(f"{__class__.__name__}.__init__() got an invalid version: '{version}'")
+        if version and not re.match(r"^\d+\.\d+\.\d+$", str(version)):
+            raise TypeError(f"{__class__.__name__}.__init__() got an invalid version: '{version}'")
         self._version = version
 
     @property
