Skip to content

Commit

Permalink
refactor kernel connection
Browse files Browse the repository at this point in the history
  • Loading branch information
Quentin Peter committed Aug 16, 2022
1 parent 363f5c9 commit 9f63ef6
Show file tree
Hide file tree
Showing 9 changed files with 308 additions and 462 deletions.
17 changes: 0 additions & 17 deletions spyder/api/shellconnect/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ def on_ipython_console_available(self):
ipyconsole.sig_shellwidget_changed.connect(self.set_shellwidget)
ipyconsole.sig_shellwidget_created.connect(self.add_shellwidget)
ipyconsole.sig_shellwidget_deleted.connect(self.remove_shellwidget)
ipyconsole.sig_external_spyder_kernel_connected.connect(
self.on_connection_to_external_spyder_kernel)

@on_plugin_teardown(plugin=Plugins.IPythonConsole)
def on_ipython_console_teardown(self):
Expand All @@ -43,8 +41,6 @@ def on_ipython_console_teardown(self):
ipyconsole.sig_shellwidget_changed.disconnect(self.set_shellwidget)
ipyconsole.sig_shellwidget_created.disconnect(self.add_shellwidget)
ipyconsole.sig_shellwidget_deleted.disconnect(self.remove_shellwidget)
ipyconsole.sig_external_spyder_kernel_connected.disconnect(
self.on_connection_to_external_spyder_kernel)

# ---- Public API
# -------------------------------------------------------------------------
Expand Down Expand Up @@ -110,16 +106,3 @@ def get_widget_for_shellwidget(self, shellwidget):
The widget corresponding to the shellwidget, or None if not found.
"""
return self.get_widget().get_widget_for_shellwidget(shellwidget)

def on_connection_to_external_spyder_kernel(self, shellwidget):
"""
Actions to take when the IPython console connects to an
external Spyder kernel.
Parameters
----------
shellwidget: spyder.plugins.ipyconsole.widgets.shell.ShellWidget
The shell widget that was connected to the external Spyder
kernel.
"""
pass
7 changes: 5 additions & 2 deletions spyder/plugins/debugger/widgets/main_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,9 @@ def create_new_widget(self, shellwidget):
shellwidget.spyder_kernel_comm.register_call_handler(
"show_traceback", widget.show_exception)
shellwidget.sig_pdb_stack.connect(widget.set_from_pdb)
shellwidget.sig_config_kernel_requested.connect(widget.enable_pdb_stack)
shellwidget.sig_config_kernel_requested.connect(
widget.enable_pdb_stack) # For restarts
widget.enable_pdb_stack()

widget.setup()
widget.set_context_menu(
Expand Down Expand Up @@ -348,7 +350,8 @@ def close_widget(self, widget):
shellwidget.spyder_kernel_comm.register_call_handler(
"show_traceback", None)
shellwidget.sig_pdb_stack.disconnect(widget.set_from_pdb)
shellwidget.sig_config_kernel_requested.disconnect(widget.enable_pdb_stack)
shellwidget.sig_config_kernel_requested.disconnect(
widget.enable_pdb_stack)
widget.disable_pdb_stack()

widget.close()
Expand Down
12 changes: 0 additions & 12 deletions spyder/plugins/ipythonconsole/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,16 +154,6 @@ class IPythonConsole(SpyderDockablePlugin):
The shellwigdet.
"""

sig_external_spyder_kernel_connected = Signal(object)
"""
This signal is emitted when we connect to an external Spyder kernel.
Parameters
----------
shellwidget: spyder.plugins.ipyconsole.widgets.shell.ShellWidget
The shellwigdet that was connected to the kernel.
"""

sig_render_plain_text_requested = Signal(str)
"""
This signal is emitted to request a plain text help render.
Expand Down Expand Up @@ -235,8 +225,6 @@ def on_initialize(self):
widget.sig_shellwidget_created.connect(self.sig_shellwidget_created)
widget.sig_shellwidget_deleted.connect(self.sig_shellwidget_deleted)
widget.sig_shellwidget_changed.connect(self.sig_shellwidget_changed)
widget.sig_external_spyder_kernel_connected.connect(
self.sig_external_spyder_kernel_connected)
widget.sig_render_plain_text_requested.connect(
self.sig_render_plain_text_requested)
widget.sig_render_rich_text_requested.connect(
Expand Down
5 changes: 3 additions & 2 deletions spyder/plugins/ipythonconsole/tests/test_ipythonconsole.py
Original file line number Diff line number Diff line change
Expand Up @@ -1288,7 +1288,8 @@ def test_set_elapsed_time(ipyconsole, qtbot):
# Set time to 2 minutes ago.
client.t0 -= 120
with qtbot.waitSignal(client.timer.timeout, timeout=5000):
ipyconsole.get_widget().set_client_elapsed_time(client)
client.timer.timeout.connect(client.show_time)
client.timer.start(1000)
assert ('00:02:00' in main_widget.time_label.text() or
'00:02:01' in main_widget.time_label.text())

Expand Down Expand Up @@ -2400,7 +2401,7 @@ def test_old_kernel_version(ipyconsole, qtbot):
qtbot.waitUntil(
lambda: shell._prompt_html is not None, timeout=SHELL_TIMEOUT)

kc = w._cached_kernel_properties[-1][2]
kc = w._cached_kernel_properties[-1]["kernel_client"]
kc.start_channels()
kc.execute("get_ipython()._spyder_kernels_version = '1.0.0'")
# Cleanup the kernel_client so it can be used again
Expand Down
Loading

0 comments on commit 9f63ef6

Please sign in to comment.