From 6ca7b7a9526a04c9059fbe7b319e2db31c16b097 Mon Sep 17 00:00:00 2001 From: Carlos Cordoba Date: Sun, 8 Oct 2023 12:30:10 -0500 Subject: [PATCH] Restore compatibility with Python 2 This was broken in the 2.4 series. --- spyder_kernels/comms/frontendcomm.py | 9 +++++++-- spyder_kernels/console/start.py | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/spyder_kernels/comms/frontendcomm.py b/spyder_kernels/comms/frontendcomm.py index 93b99eec..edf4adb8 100644 --- a/spyder_kernels/comms/frontendcomm.py +++ b/spyder_kernels/comms/frontendcomm.py @@ -24,6 +24,10 @@ from spyder_kernels.py3compat import TimeoutError, PY2 +if PY2: + import thread + + def get_free_port(): """Find a free port on the local machine.""" sock = socket.socket() @@ -264,7 +268,7 @@ def _remote_callback(self, call_name, call_args, call_kwargs): current_stderr = sys.stderr saved_stdout_write = current_stdout.write saved_stderr_write = current_stderr.write - thread_id = threading.get_ident() + thread_id = thread.get_ident() if PY2 else threading.get_ident() current_stdout.write = WriteWrapper( saved_stdout_write, call_name, thread_id) current_stderr.write = WriteWrapper( @@ -300,7 +304,8 @@ def is_benign_message(self, message): def __call__(self, string): """Print warning once.""" - if self._thread_id != threading.get_ident(): + thread_id = thread.get_ident() if PY2 else threading.get_ident() + if self._thread_id != thread_id: return self._write(string) if not self.is_benign_message(string): diff --git a/spyder_kernels/console/start.py b/spyder_kernels/console/start.py index 02a2710a..f80111d7 100644 --- a/spyder_kernels/console/start.py +++ b/spyder_kernels/console/start.py @@ -239,7 +239,8 @@ def kernel_config(): # Disable the new mechanism to capture and forward low-level output # in IPykernel 6. For that we have Wurlitzer. - spy_cfg.IPKernelApp.capture_fd_output = False + if not PY2: + spy_cfg.IPKernelApp.capture_fd_output = False # Merge IPython and Spyder configs. Spyder prefs will have prevalence # over IPython ones