1
1
"""Kernelspecs API Handlers."""
2
+ from jupyter_core .utils import ensure_async
2
3
from tornado import web
3
4
4
5
from jupyter_server .auth import authorized
@@ -21,23 +22,24 @@ def initialize(self):
21
22
22
23
@web .authenticated
23
24
@authorized
24
- def get (self , kernel_name , path , include_body = True ):
25
+ async def get (self , kernel_name , path , include_body = True ):
25
26
"""Get a kernelspec resource."""
26
27
ksm = self .kernel_spec_manager
27
28
if path .lower ().endswith (".png" ):
28
29
self .set_header ("Cache-Control" , f"max-age={ 60 * 60 * 24 * 30 } " )
29
30
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
31
33
except KeyError as e :
32
34
raise web .HTTPError (404 , "Kernel spec %s not found" % kernel_name ) from e
33
35
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 )
35
37
36
38
@web .authenticated
37
39
@authorized
38
- def head (self , kernel_name , path ):
40
+ async def head (self , kernel_name , path ):
39
41
"""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 ) )
41
43
42
44
43
45
default_handlers = [
0 commit comments