
    MhB                     v    d Z ddlZddlZddlmZ ddlmZ ddlmZ  G d de          Z	 G d	 d
e	          Z
dS )zA basic in process kernel monitor with autorestarting.

This watches a kernel's state using KernelManager.is_alive and auto
restarts the kernel if it dies.
    N)Any)Instance   )KernelRestarterc                   H    e Zd ZdZ ed          ZdefdZdZddZ	ddZ
dS )	IOLoopKernelRestarterz!Monitor and autorestart a kernel.ztornado.ioloop.IOLoopreturnc                 x    t          j        dt          d           ddlm} |j                                        S )Nz>IOLoopKernelRestarter.loop is deprecated in jupyter-client 5.2   )
stacklevelr   )ioloop)warningswarnDeprecationWarningtornador   IOLoopcurrent)selfr   s     _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jupyter_client/ioloop/restarter.py_loop_defaultz#IOLoopKernelRestarter._loop_default   sL    L	
 	
 	
 	

 	#"""""}$$&&&    Nc                     | j         ?ddlm}  || j        d| j        z            | _         | j                                          dS dS )z Start the polling of the kernel.Nr   )PeriodicCallbacki  )
_pcallbacktornado.ioloopr   polltime_to_deadstart)r   r   s     r   r   zIOLoopKernelRestarter.start"   sd    ?"777777..	t(( DO O!!##### #"r   c                 X    | j         "| j                                          d| _         dS dS )zStop the kernel polling.N)r   stop)r   s    r   r    zIOLoopKernelRestarter.stop-   s1    ?&O  """"DOOO '&r   r	   N)__name__
__module____qualname____doc__r   loopr   r   r   r   r     r   r   r   r      st        ++8+,,D's ' ' ' ' J	$ 	$ 	$ 	$# # # # # #r   r   c                       e Zd ZdZddZdS )AsyncIOLoopKernelRestarterz"An async io loop kernel restarter.r	   Nc                   K   | j         r| j                             d           | j                                         d{V }t	          j                    }|s|| _        | j        r| xj        dz  c_        nd| _        | j        | j        k    rS| j        	                    d           | 
                    d           d| _        d| _        |                                  dS | j        o| j        }| j                            d| j        | j        |rd	nd
           | 
                    d           | j                            d|           d{V  d| _        dS | j        }| j        j        r | j        j                            |          }| j        r|| j        z
  |k    rd| _        | j        r1|| j        z
  |k    r%| j                             d           d| _        dS dS dS )zPoll the kernel.zPolling kernel...N   z*AsyncIOLoopKernelRestarter: restart faileddeadFr   zFAsyncIOLoopKernelRestarter: restarting kernel (%i/%i), %s random portsnewkeeprestartT)nownewports)recommendedz8AsyncIOLoopKernelRestarter: restart apparently succeeded)debuglogkernel_manageris_alivetime
_last_dead_restarting_restart_countrestart_limitwarning_fire_callbacksr    random_ports_until_alive_initial_startupinforestart_kernelstable_start_timeprovisionerget_stable_start_time)r   r6   r0   r1   rB   s        r   r   zAsyncIOLoopKernelRestarter.poll7   s6     : 	0HNN.///,5577777777ikk )	)!DO (##q(###&'#"T%777  !MNNN$$V,,,#( &'#		8RT=R\'&%1EE6	   $$Y///)88TH8UUUUUUUUU#'    !% 6". $($7$C$Y$Y 1 %Z % %! $ .t)>BS)S)S(-% )C$/$9=N$N$NYZZZ#(   ) )$N$Nr   r!   )r"   r#   r$   r%   r   r'   r   r   r)   r)   4   s.        ,,/) /) /) /) /) /)r   r)   )r%   r7   r   typingr   	traitletsr   	restarterr   r   r)   r'   r   r   <module>rH      s                   ' ' ' ' ' ' #  #  #  #  #O  #  #  #F2) 2) 2) 2) 2)!6 2) 2) 2) 2) 2)r   