From a5b020682e09c5e30f4a8c7fd9273d5fd10812ef Mon Sep 17 00:00:00 2001 From: Zeb Burke-Conte Date: Sat, 3 Aug 2024 22:02:46 -0700 Subject: [PATCH] Feature: Fork kernel --- jupyter_client/blocking/client.py | 1 + jupyter_client/client.py | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/jupyter_client/blocking/client.py b/jupyter_client/blocking/client.py index 5c815eb8..6ddaab5f 100644 --- a/jupyter_client/blocking/client.py +++ b/jupyter_client/blocking/client.py @@ -57,6 +57,7 @@ class BlockingKernelClient(KernelClient): _recv_reply = run_sync(KernelClient._async_recv_reply) # replies come on the shell channel + fork = reqrep(wrapped, KernelClient.fork) execute = reqrep(wrapped, KernelClient.execute) history = reqrep(wrapped, KernelClient.history) complete = reqrep(wrapped, KernelClient.complete) diff --git a/jupyter_client/client.py b/jupyter_client/client.py index 851a2345..6f6c8951 100644 --- a/jupyter_client/client.py +++ b/jupyter_client/client.py @@ -644,6 +644,12 @@ def execute( self.shell_channel.send(msg) return msg["header"]["msg_id"] + def fork(self): + content = {} + msg = self.session.msg("fork", content) + self.shell_channel.send(msg) + return msg["header"]["msg_id"] + def complete(self, code: str, cursor_pos: t.Optional[int] = None) -> str: """Tab complete text in the kernel's namespace.