Ë
    :vžjÑ  ã                   ó$  — 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mZ d	d
lmZ ddlmZ dZ G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      ZdZdZdefdez  efde› de› �efdez  efgZy# e$ r	 ddlmZ Y Œ€w xY w)z®Tornado handlers for kernels.

Preliminary documentation at https://github.com/ipython/ipython/wiki/IPEP-16%3A-Notebook-multi-directory-dashboard-and-URL-mapping#kernels-api
é    N)Újson_default)Údate_default)Úensure_async)Úweb)Ú
authorized)Ú
url_escapeÚurl_path_joiné   )Ú
APIHandleré   )ÚKernelWebsocketHandlerÚkernelsc                   ó   — e Zd ZdZeZy)ÚKernelsAPIHandlerzA kernels API handler.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚAUTH_RESOURCEÚauth_resource© ó    úy/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jupyter_server/services/kernels/handlers.pyr   r      s
   „ Ù à!�Mr   r   c                   ól   — e Zd ZdZej
                  ed„ «       «       Zej
                  ed„ «       «       Zy)ÚMainKernelHandlerzThe root kernel handler.c              ƒ   ó¾   K  — | j                   }t        |j                  «       «      ƒ d{  –—† }| j                  t	        j
                  |t        ¬«      «       y7 Œ/­w)z Get the list of running kernels.N©Údefault)Úkernel_managerr   Úlist_kernelsÚfinishÚjsonÚdumpsr   )ÚselfÚkmr   s      r   ÚgetzMainKernelHandler.get$   sC   è ø€ ð × Ñ ˆÜ$ R§_¡_Ó%6Ó7×7ˆØ�‰”D—J‘J˜w´Ô=Õ>ð 8ús   ‚)A«A¬0Ac           	   ƒ   óR  K  — | j                   }| j                  «       }|€d|j                  i}n|j                  d|j                  «       t	        |j                  |d   |j                  d«      |j                  d«      ¬«      «      ƒ d{  –—† }t	        |j                  |«      «      ƒ d{  –—† }t        | j                  ddt        |«      «      }| j                  d|«       | j                  d	«       | j                  t        j                  |t         ¬
«      «       y7 Œ•7 Œu­w)zStart a kernel.NÚnameÚpathÚ	kernel_id)Úkernel_namer)   r*   Úapir   ÚLocationéÉ   r   )r   Úget_json_bodyÚdefault_kernel_nameÚ
setdefaultr   Ústart_kernelr&   Úkernel_modelr	   Úbase_urlr   Ú
set_headerÚ
set_statusr!   r"   r#   r   )r$   r%   Úmodelr*   Úlocations        r   ÚpostzMainKernelHandler.post,   sø   è ø€ ð × Ñ ˆØ×"Ñ"Ó$ˆØˆ=Ø˜R×3Ñ3Ð4‰Eà×Ñ˜V R×%;Ñ%;Ô<ä+Ø�O‰OØ! &™MØ—Y‘Y˜vÓ&ØŸ)™) KÓ0ð ó ó 
÷ 
ˆ	ô # 2§?¡?°9Ó#=Ó>×>ˆÜ  §¡°°yÄ*ÈYÓBWÓXˆØ�‰˜
 HÔ-Ø�‰˜ÔØ�‰”D—J‘J˜u¬lÔ;Õ<ð
øð ?ús%   ‚BD'ÂD#Â!D'Â/D%Â0A4D'Ä%D'N)	r   r   r   r   r   Úauthenticatedr   r&   r9   r   r   r   r   r   !   sG   „ Ù"à×ÑØñ?ó ó ð?ð 	×ÑØñ=ó ó ñ=r   r   c                   ól   — e Zd ZdZej
                  ed„ «       «       Zej
                  ed„ «       «       Zy)ÚKernelHandlerzA kernel API handler.c              ƒ   óÀ   K  — | j                   }t        |j                  |«      «      ƒ d{  –—† }| j                  t	        j
                  |t        ¬«      «       y7 Œ/­w)zGet a kernel model.Nr   )r   r   r3   r!   r"   r#   r   )r$   r*   r%   r7   s       r   r&   zKernelHandler.getH   sE   è ø€ ð × Ñ ˆÜ" 2§?¡?°9Ó#=Ó>×>ˆØ�‰”D—J‘J˜u¬lÔ;Õ<ð ?ús   ‚*A¬A­0Ac              ƒ   ó®   K  — | j                   }t        |j                  |«      «      ƒ d{  –—†  | j                  d«       | j	                  «        y7 Œ&­w)zRemove a kernel.NéÌ   )r   r   Úshutdown_kernelr6   r!   )r$   r*   r%   s      r   ÚdeletezKernelHandler.deleteP   sF   è ø€ ð × Ñ ˆÜ˜2×-Ñ-¨iÓ8Ó9×9Ð9Ø�‰˜ÔØ�‰�ð 	:ús   ‚*A¬A­'AN)	r   r   r   r   r   r:   r   r&   rA   r   r   r   r<   r<   E   sG   „ Ùà×ÑØñ=ó ó ð=ð 	×ÑØñó ó ñr   r<   c                   ó>   — e Zd ZdZej
                  ed„ «       «       Zy)ÚKernelActionHandlerzA kernel action API handler.c              ƒ   óè  K  — | j                   }|dk(  r4t        |j                  |«      «      ƒ d{  –—†  | j                  d«       nk|dk(  rf	 |j	                  |«      ƒ d{  –—†  t        |j                  |«      «      ƒ d{  –—† }| j                  t        j                  |t        ¬«      «       | j                  «        y7 Œ’7 Œc7 ŒC# t        $ r}t        j                  dd«      |‚d}~ww xY w­w)zInterrupt or restart a kernel.Ú	interruptNr?   Úrestartr   iô  zException restarting kernel)r   r   Úinterrupt_kernelr6   Úrestart_kernelr3   Úwriter"   r#   r   Ú	Exceptionr   Ú	HTTPErrorr!   )r$   r*   Úactionr%   r7   Úes         r   r9   zKernelActionHandler.post]   sÓ   è ø€ ð × Ñ ˆØ�[Ò Ü˜r×2Ñ2°9Ó=Ó>×>Ð>Ø�O‰O˜CÕ Ø�yÒ ðDØ×'Ñ'¨	Ó2×2Ð2ô +¨2¯?©?¸9Ó+EÓF×F�Ø—
‘
œ4Ÿ:™: e´\ÔBÔCØ�‰�ð ?øð 3øð Gùô ò OÜ—m‘m CÐ)FÓGÈQÐNûðOüsX   ‚/C2±C²C2ÁC
 Á"CÁ#C
 Á'C2ÂCÂA C2ÃC
 ÃC2Ã
	C/ÃC*Ã*C/Ã/C2N)r   r   r   r   r   r:   r   r9   r   r   r   rC   rC   Z   s%   „ Ù&à×ÑØñó ó ñr   rC   z"(?P<kernel_id>\w+-\w+-\w+-\w+-\w+)z(?P<action>restart|interrupt)z/api/kernelsz/api/kernels/%sz/api/kernels/Ú/z/api/kernels/%s/channels)r   r"   Újupyter_client.jsonutilr   ÚImportErrorr   Újupyter_core.utilsr   Útornador   Újupyter_server.auth.decoratorr   Újupyter_server.utilsr   r	   Úbase.handlersr   Ú	websocketr   r   r   r   r<   rC   Ú_kernel_id_regexÚ_kernel_action_regexÚdefault_handlersr   r   r   Ú<module>rZ      sØ   ðñó ðEÝ4õ ,Ý å 4ß :å 'Ý -à€ô"˜
ô "ô!=Ð)ô !=ôHÐ%ô ô*Ð+ô ð2 9Ð Ø7Ð ð Ð'Ð(ØÐ*Ñ*¨MÐ:àÐ)Ð*¨!Ð,@Ð+AÐBØðð !Ð#3Ñ3Ð5KÐLðÑ øðU ò EßDðEús   ˆB ÂBÂB