
    Mh.                     @   d Z ddlZ	 ddlmZ n# e$ r	 ddlmZ Y nw xY w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dS )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dS )KernelsAPIHandlerzA kernels API handler.N)__name__
__module____qualname____doc__AUTH_RESOURCEauth_resource     h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jupyter_server/services/kernels/handlers.pyr   r      s          !MMMr   r   c                   r    e Zd ZdZej        ed                         Zej        ed                         ZdS )MainKernelHandlerzThe root kernel handler.c                    K   | j         }t          |                                           d{V }|                     t	          j        |t                               dS )z Get the list of running kernels.Ndefault)kernel_managerr   list_kernelsfinishjsondumpsr   )selfkmr   s      r   getzMainKernelHandler.get$   s`        $R__%6%677777777DJw===>>>>>r   c                 ^  K   | j         }|                                 }|
d|j        i}n|                    d|j                   t	          |                    |d         |                    d                               d{V }t	          |                    |                     d{V }t          | j	        ddt          |                    }|                     d|           |                     d           |                     t          j        |t           	                     dS )
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4EEVR%;<<<&OO!&M		&0A0A   
 
 
 
 
 
 
 
	
 #2??9#=#=>>>>>>>> y*YBWBWXX
H---DJul;;;<<<<<r   N)	r   r   r   r   r   authenticatedr   r&   r9   r   r   r   r   r   !   sj        ""? ? Z ? 	= = Z = = =r   r   c                   r    e Zd ZdZej        ed                         Zej        ed                         ZdS )KernelHandlerzA kernel API handler.c                    K   | j         }t          |                    |                     d{V }|                     t	          j        |t                               dS )zGet a kernel model.Nr   )r   r   r2   r!   r"   r#   r   )r$   r7   r%   r6   s       r   r&   zKernelHandler.getF   sb        "2??9#=#=>>>>>>>>DJul;;;<<<<<r   c                    K   | j         }t          |                    |                     d{V  |                     d           |                                  dS )zRemove a kernel.N   )r   r   shutdown_kernelr5   r!   )r$   r7   r%   s      r   deletezKernelHandler.deleteN   sa        2--i88999999999r   N)	r   r   r   r   r   r:   r   r&   rA   r   r   r   r<   r<   C   sj        = = Z = 	  Z   r   r<   c                   B    e Zd ZdZej        ed                         ZdS )KernelActionHandlerzA kernel action API handler.c                   K   | j         }|dk    r=t          |                    |                     d{V  |                     d           |dk    r	 |                    |           d{V  t          |                    |                     d{V }|                     t          j        |t                               nm# t          $ r` d}| j                            |d           |                     t          j        |d	d
                     |                     d           Y nw xY w|                                  dS )zInterrupt or restart a kernel.	interruptNr?   restartr   zException restarting kernelT)exc_info )message	tracebacki  )r   r   interrupt_kernelr5   restart_kernelr2   writer"   r#   r   	Exceptionlogerrorr!   )r$   r7   actionr%   r6   rI   s         r   r9   zKernelActionHandler.post[   sl       [  r229==>>>>>>>>>OOC   Y	D''	222222222 +2??9+E+EFFFFFFFF

4:e\BBBCCCC  % % %7w666

4:'&K&KLLMMM$$$$$	% 	s   C A'D0/D0N)r   r   r   r   r   r:   r   r9   r   r   r   rC   rC   X   sA        &&  Z   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>r^      s    E4444444 E E EDDDDDDDDE , + + + + +       4 4 4 4 4 4 : : : : : : : : ' ' ' ' ' ' - - - - - -" " " " "
 " " "= = = = =) = = =D    %   *    +   8 9 7  '(**M:B)BB,@BB !#335KL   s    