
    Xh
                         d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ d	Z G d
 dej                  e	      Zdez  efgZy)zKernelspecs API Handlers.    N)ensure_async)web)
authorized   )JupyterHandler)kernel_name_regexkernelspecsc                   |    e Zd ZdZdZeZd Zej                  e
dd              Zej                  e
d               Zy)KernelSpecResourceHandlerzA Kernelspec resource handler.)GETHEADc                 F    t         j                  j                  | d       y)z)Initialize a kernelspec resource handler. )pathN)r   StaticFileHandler
initialize)selfs    W/var/www/html/myenv/lib/python3.12/site-packages/jupyter_server/kernelspecs/handlers.pyr   z$KernelSpecResourceHandler.initialize   s    ((B(7    c                 .  K   | j                   }|j                         j                  d      r| j                  ddd        | j                   }t	        |d      r|j                  ||       d{   }|G|| _        t        j                  |      d   xs d}| j                  d	|       | j                  |       y| j                  j                  d
| d| d       	 t        |j                  |             d{   }|j                  | _        | j                  j'                  d| j                         t"        j(                  j+                  | ||       d{   S 7 7 g# t         $ r}t#        j$                  dd|z        |d}~ww xY w7 3w)zGet a kernelspec resource.z.pngzCache-Controlzmax-age=i ' get_kernel_spec_resourceNr   z
text/plainzContent-TypezKernelspec resource 'z' for 'ze' not found.  Kernel spec manager may not support resource serving. Falling back to reading from diski  zKernel spec %s not foundz Serving kernel resource from: %sinclude_body)kernel_spec_managerlowerendswith
set_headerhasattrr   absolute_path	mimetypes
guess_typefinishlogwarningr   get_kernel_specresource_dirrootKeyErrorr   	HTTPErrordebugr   get)	r   kernel_namer   r   ksmkernel_spec_resmimetypekspeces	            r   r+   zKernelSpecResourceHandler.get   s     &&::<  (OOOx}-EF&&323 %($@$@d$SSO* &*" ) 4 4T :1 = M9O,  +D6 FW W	V&s':':;'GHHE**DI 	9499E**..tT.UUU) T I 	V--%?+%MNTUU	V VsV   A.F0E$1A/F!E( >E&?E( AFF F&E( (	F1FFFc                 X   K   t        | j                  ||d             d{   S 7 w)z(Get the head info for a kernel resource.Fr   N)r   r+   )r   r,   r   s      r   headzKernelSpecResourceHandler.head;   s(      "$((;5("QRRRRs   !*(*N)T)__name__
__module____qualname____doc__SUPPORTED_METHODSAUTH_RESOURCEauth_resourcer   r   authenticatedr   r+   r3    r   r   r   r      s]    ('!M8 	V  V> 	S  Sr   r   z/kernelspecs/%s/(?P<path>.*))r7   r    jupyter_core.utilsr   tornador   jupyter_server.auth.decoratorr   base.handlersr   services.kernelspecs.handlersr   r9   r   r   default_handlersr<   r   r   <module>rC      sO      +  4 * =/S 5 5~ /Sf %'88:ST r   