From cffff55b9190d23a71d33122eec8ab9d611d26e1 Mon Sep 17 00:00:00 2001
From: "Lumberbot (aka Jack)"
 <39504233+meeseeksmachine@users.noreply.github.com>
Date: Mon, 8 Jun 2026 01:34:00 +0200
Subject: [PATCH] Backport PR #591 on branch 3.x (PR: Use generic args/kwargs
 in `SpyderPdb` init method) (#592)

---
 spyder_kernels/console/tests/test_console_kernel.py | 15 ++++++++++++---
 spyder_kernels/customize/spyderpdb.py              |  3 +--
 2 files changed, 13 insertions(+), 5 deletions(-)

Index: spyder-kernels/spyder_kernels/console/tests/test_console_kernel.py
===================================================================
--- spyder-kernels.orig/spyder_kernels/console/tests/test_console_kernel.py
+++ spyder-kernels/spyder_kernels/console/tests/test_console_kernel.py
@@ -1070,9 +1070,18 @@ def test_functions_with_locals_in_pdb(ke
     This is a regression test for spyder-ide/spyder-kernels#345
     """
     pdb_obj = SpyderPdb()
-    Frame = namedtuple("Frame", ["f_globals"])
-    pdb_obj.curframe = Frame(f_globals=kernel.shell.user_ns)
-    pdb_obj.curframe_locals = kernel.shell.user_ns
+
+    if sys.version_info[:2] >=(3, 14):
+        Frame = namedtuple("Frame", ["f_globals", "f_locals"])
+        pdb_obj.curframe = Frame(
+            f_globals=kernel.shell.user_ns,
+            f_locals=kernel.shell.user_ns
+        )
+    else:
+        Frame = namedtuple("Frame", ["f_globals"])
+        pdb_obj.curframe = Frame(f_globals=kernel.shell.user_ns)
+        pdb_obj.curframe_locals = kernel.shell.user_ns
+
     kernel.shell._namespace_stack = [pdb_obj]
 
     # Create a local function.
Index: spyder-kernels/spyder_kernels/customize/spyderpdb.py
===================================================================
--- spyder-kernels.orig/spyder_kernels/customize/spyderpdb.py
+++ spyder-kernels/spyder_kernels/customize/spyderpdb.py
@@ -81,8 +81,7 @@ class SpyderPdb(ipyPdb):
      - Add completion to non-command code.
     """
 
-    def __init__(self, completekey='tab', stdin=None, stdout=None,
-                 skip=None, nosigint=False):
+    def __init__(self, *args, **kwargs):
         """Init Pdb."""
         self.curframe_locals = None
         # Only set to true when calling debugfile
