
    lKjp                     $   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)zTornado 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/Users/ahmed/devFolder/Ultron/claude-voice/.venv/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DJJw=> 8s   )AA0Ac                 2  K   | j                   }| j                         }|d|j                  i}n|j                  d|j                         t	        |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_namer)   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%   model	kernel_idlocations        r   postzMainKernelHandler.post,   s        ""$=R334EVR%;%;<+OOfEIIf<MON 
 
	 #2??9#=>> y*YBWX
H-DJJul;<
 ?s%   A;D=D>!DD A4D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   r2   r!   r"   r#   r   )r$   r7   r%   r6   s       r   r&   zKernelHandler.getD   sE        "2??9#=>>DJJul;< ?s   *AA0Ac                    K   | j                   }t        |j                  |             d{    | j                  d       | j	                          y7 &w)zRemove a kernel.N   )r   r   shutdown_kernelr5   r!   )r$   r7   r%   s      r   deletezKernelHandler.deleteL   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<   A   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_kernelr5   restart_kernelr2   writer"   r#   r   	Exceptionr   	HTTPErrorr!   )r$   r7   actionr%   r6   es         r   r9   zKernelActionHandler.postY   s        [ r229=>>>OOC y D''	222 +2??9+EFF

4::e\BC ? 3 G  OmmC)FGQ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   V   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 : ' -"
 "=) =@% *+ 2 9 7  '(**M:)*!,@+AB !#335KL M  EDEs   B BB