Skip to content

Commit

Permalink
Always send the code from the client
Browse files Browse the repository at this point in the history
Queue the execution request per kernel
  • Loading branch information
fcollonval committed May 21, 2024
1 parent d30b8bc commit 2677b50
Show file tree
Hide file tree
Showing 5 changed files with 394 additions and 271 deletions.
2 changes: 1 addition & 1 deletion conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
def jp_server_config(jp_server_config):
return {
"ServerApp": {
"jpserver_extensions": {"jupyter_server_nbmodel": True, "jupyter_server_ydoc": True}
"jpserver_extensions": {"jupyter_server_nbmodel": True, "jupyter_server_ydoc": False}
}
}
16 changes: 11 additions & 5 deletions jupyter_server_nbmodel/extension.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
from __future__ import annotations

import asyncio

from jupyter_server.extension.application import ExtensionApp
from jupyter_server.services.kernels.handlers import _kernel_id_regex

Expand Down Expand Up @@ -27,27 +29,31 @@ def initialize_handlers(self):
get_logger().warning("%i collaboration extensions found.", n_extensions)
rtc_extension = next(iter(rtc_extensions))

self.__tasks = ExecutionStack()
self.__execution_stack = ExecutionStack(
manager=self.settings["kernel_manager"], ydoc_extension=rtc_extension
)

self.handlers.extend(
[
(
f"/api/kernels/{_kernel_id_regex}/execute",
ExecuteHandler,
{"ydoc_extension": rtc_extension, "execution_stack": self.__tasks},
{"execution_stack": self.__execution_stack},
),
(
f"/api/kernels/{_kernel_id_regex}/input",
InputHandler,
{"execution_stack": self.__execution_stack},
),
(
f"/api/kernels/{_kernel_id_regex}/requests/{_request_id_regex}",
RequestHandler,
{"execution_stack": self.__tasks},
{"execution_stack": self.__execution_stack},
),
]
)

async def stop_extension(self):
if hasattr(self, "__tasks"):
del self.__tasks
if hasattr(self, "__execution_stack"):
get_logger().info("Disposing the execution stack…")
await asyncio.wait_for(self.__execution_stack.dispose(), timeout=3)
Loading

0 comments on commit 2677b50

Please sign in to comment.