
    Mh}                         d Z ddlZddlZddlZddlZddlmZ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  G d
 de          Zej        ZdS )z@An application to launch a kernel by name in a local subprocess.    N)
JupyterApp
base_flags)IOLoop)Unicode   )__version__)NATIVE_KERNEL_NAMEKernelSpecManager)KernelManagerc                        e Zd ZdZeZdZeegZ	dddZ
ded         iZ eed                              d	
          Zddej        eej        e         df         ddf fdZddZdeddfdZddZddZddZ xZS )	KernelAppz.Launch a kernel by name in a local subprocess.z$Run a kernel locally in a subprocesszKernelApp.kernel_namezKernelManager.ip)kernelipdebugz"The name of a kernel type to start)helpT)configNargvreturnc                    t                                          |           dt          j                    z  }| j                            di                               dt          j                            | j	        |                     t          | j        | j                  | _        t          j                    | _        | j                            | j                   dS )zInitialize the application.zkernel-%s.jsonr   connection_file)kernel_namer   N)super
initializeuuiduuid4r   
setdefaultospathjoinruntime_dirr   r   kmr   currentloopadd_callback_record_started)selfr   cf_basename	__class__s      X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jupyter_client/kernelapp.pyr   zKernelApp.initialize"   s    4   &533>>rw||D,<kJJ	
 	
 	
  D,<T[QQQN$$		t344444    c                      t           j        dk    rdS dt          dt          j        ddf fd}t
          j        t
          j        fD ]}t          j        ||           dS )z&Shutdown on SIGTERM or SIGINT (Ctrl-C)ntNsignoframer   c                 H    j                             j        |            d S N)r#   add_callback_from_signalshutdown)r-   r.   r&   s     r)   shutdown_handlerz1KernelApp.setup_signals.<locals>.shutdown_handler4   s#    I..t}eDDDDDr*   )r   nameinttAnysignalSIGTERMSIGINT)r&   r3   sigs   `  r)   setup_signalszKernelApp.setup_signals/   s    7d??F	EC 	E 	E$ 	E 	E 	E 	E 	E 	E NFM2 	1 	1CM#/0000	1 	1r*   r-   c                     | j                             d|           | j                                         | j                                         dS )zShut down the application.zShutting down on signal %dN)loginfor!   shutdown_kernelr#   stop)r&   r-   s     r)   r2   zKernelApp.shutdown:   sE    2E:::!!!	r*   c                     | j         j        }| j                            d|           | j                            dt          j                            |                     dS )z'Log the connection info for the kernel.zConnection file: %sz"To connect a client: --existing %sN)r!   r   r>   r?   r   r   basename)r&   cfs     r)   log_connection_infozKernelApp.log_connection_info@   sP    W$+R000:BG<L<LR<P<PQQQQQr*   c                     t           j                            d          }|,t          |d          5  	 ddd           dS # 1 swxY w Y   dS dS )zvFor tests, create a file to indicate that we've started

        Do not rely on this except in our own tests!
        *JUPYTER_CLIENT_TEST_RECORD_STARTUP_PRIVATENwb)r   environgetopen)r&   fns     r)   r%   zKernelApp._record_startedF   s    
 Z^^HII>b$                    >s   AAAc                 j   | j                             d| j                   	 | j                                         |                                  |                                  | j                                         | j        	                                 dS # | j        	                                 w xY w)zStart the application.zStarting kernel %rN)
r>   r?   r   r!   start_kernelrE   r<   r#   startcleanup_resources)r&   s    r)   rO   zKernelApp.startP   s    *D,<===	(G  """$$&&&   IOOG%%'''''DG%%''''s   AB B2r0   )r   N)__name__
__module____qualname____doc__r   versiondescriptionr   r
   classesaliasesr   flagsr   r	   tagr   r6   UnionstrSequencer   r<   r5   r2   rE   r%   rO   __classcell__)r(   s   @r)   r   r      sI       88G8K/0G *  G j)*E',3WXXX\\ ]  K5 5qwsAJsOT'AB 5d 5 5 5 5 5 5	1 	1 	1 	1c d    R R R R   	( 	( 	( 	( 	( 	( 	( 	(r*   r   )rT   r   r8   typingr6   r   jupyter_core.applicationr   r   tornado.ioloopr   	traitletsr    r   
kernelspecr	   r
   managerr   r   launch_instancemain r*   r)   <module>ri      s    F F 				       ; ; ; ; ; ; ; ; ! ! ! ! ! !             = = = = = = = = " " " " " "I( I( I( I( I(
 I( I( I(X  r*   