
    ^hB                     h    S r SSKrSSKrSSKJr  SSKJr  SSKJr   " S S\5      r	 " S	 S
\	5      r
g)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                   N    \ rS rSrSr\" S5      rS\4S jrSr	S
S jr
S
S jrS	rg)IOLoopKernelRestarter   z!Monitor and autorestart a kernel.ztornado.ioloop.IOLoopreturnc                 v    [         R                  " S[        SS9  SSKJn  UR
                  R                  5       $ )Nz>IOLoopKernelRestarter.loop is deprecated in jupyter-client 5.2   )
stacklevelr   )ioloop)warningswarnDeprecationWarningtornador   IOLoopcurrent)selfr   s     Y/home/james-whalen/.local/lib/python3.13/site-packages/jupyter_client/ioloop/restarter.py_loop_default#IOLoopKernelRestarter._loop_default   s/    L	

 	#}}$$&&    Nc                     U R                   cF  SSKJn  U" U R                  SU R                  -  5      U l         U R                   R                  5         gg)z Start the polling of the kernel.Nr   )PeriodicCallbacki  )
_pcallbacktornado.ioloopr   polltime_to_deadstart)r   r   s     r   r    IOLoopKernelRestarter.start"   sG    ??"7.		t(((DO OO!!# #r   c                 b    U R                   b"  U R                   R                  5         SU l         gg)zStop the kernel polling.N)r   stop)r   s    r   r#   IOLoopKernelRestarter.stop-   s(    ??&OO  ""DO 'r   )r   r
   N)__name__
__module____qualname____firstlineno____doc__r   loopr   r   r   r    r#   __static_attributes__ r   r   r   r      s-    ++,D's ' J	$#r   r   c                   "    \ rS rSrSrSS jrSrg)AsyncIOLoopKernelRestarter4   z"An async io loop kernel restarter.Nc                   #    U R                   (       a  U R                  R                  S5        U R                  R                  5       I Sh  vN n[        R                  " 5       nU(       Gd.  X l        U R                  (       a  U =R                  S-  sl        OSU l        U R                  U R                  :  aK  U R                  R                  S5        U R                  S5        SU l        SU l        U R                  5         gU R                  =(       a    U R                  nU R                  R                  SU R                  U R                  U(       a  S	OS
5        U R                  S5        U R                  R                  SUS9I Sh  vN   SU l        gU R                   nU R                  R"                  (       a#  U R                  R"                  R%                  US9nU R                  (       a  X R
                  -
  U:  a  SU l        U R                  (       a6  X R
                  -
  U:  a#  U R                  R                  S5        SU l        ggg GN N7f)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   r=   r7   r8   rI   s        r   r   AsyncIOLoopKernelRestarter.poll7   s    ::HHNN./,,5577iik!O##q(#&'#""T%7%77  !MN$$V,#( &'#		88RT=R=R\''&&%E6	 $$Y/))88TH8UUU#'  !% 6 6""..$($7$7$C$C$Y$Y 1 %Z %! $$)>BS)S(-%C//$9=N$NYZ#(  %OS 80 Vs&   A
IIEIIC	II)rF   r?   rA   r@   r%   )r&   r'   r(   r)   r*   r   r,   r-   r   r   r/   r/   4   s
    ,/)r   r/   )r*   r>   r   typingr   	traitletsr   	restarterr   r   r/   r-   r   r   <module>rP      s5        ' #O  #F2)!6 2)r   