Skip to content

Commit dc1eee8

Browse files
authored
Enable KernelSpecResourceHandler to be async (#1236)
1 parent 9d5e1f6 commit dc1eee8

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

jupyter_server/kernelspecs/handlers.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Kernelspecs API Handlers."""
2+
from jupyter_core.utils import ensure_async
23
from tornado import web
34

45
from jupyter_server.auth import authorized
@@ -21,23 +22,24 @@ def initialize(self):
2122

2223
@web.authenticated
2324
@authorized
24-
def get(self, kernel_name, path, include_body=True):
25+
async def get(self, kernel_name, path, include_body=True):
2526
"""Get a kernelspec resource."""
2627
ksm = self.kernel_spec_manager
2728
if path.lower().endswith(".png"):
2829
self.set_header("Cache-Control", f"max-age={60*60*24*30}")
2930
try:
30-
self.root = ksm.get_kernel_spec(kernel_name).resource_dir
31+
kspec = await ensure_async(ksm.get_kernel_spec(kernel_name))
32+
self.root = kspec.resource_dir
3133
except KeyError as e:
3234
raise web.HTTPError(404, "Kernel spec %s not found" % kernel_name) from e
3335
self.log.debug("Serving kernel resource from: %s", self.root)
34-
return web.StaticFileHandler.get(self, path, include_body=include_body)
36+
return await web.StaticFileHandler.get(self, path, include_body=include_body)
3537

3638
@web.authenticated
3739
@authorized
38-
def head(self, kernel_name, path):
40+
async def head(self, kernel_name, path):
3941
"""Get the head infor for a kernel resource."""
40-
return self.get(kernel_name, path, include_body=False)
42+
return await ensure_async(self.get(kernel_name, path, include_body=False))
4143

4244

4345
default_handlers = [

0 commit comments

Comments
 (0)