B
    \                 @   sP   d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 G d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.
    )absolute_importN)ioloop)KernelRestarter)Instancec               @   s4   e Zd ZdZedZdd ZdZdd Zdd	 Z	dS )
IOLoopKernelRestarterz!Monitor and autorestart a kernel.ztornado.ioloop.IOLoopc             C   s   t jdtdd tj S )Nz>IOLoopKernelRestarter.loop is deprecated in jupyter-client 5.2   )
stacklevel)warningswarnDeprecationWarningr   ZIOLoopZcurrent)self r   >lib/python3.7/site-packages/jupyter_client/ioloop/restarter.py_loop_default   s    
z#IOLoopKernelRestarter._loop_defaultNc             C   s.   | j dkr*t| jd| j | _ | j   dS )z Start the polling of the kernel.Ni  )
_pcallbackr   ZPeriodicCallbackZpollZtime_to_deadstart)r   r   r   r   r       s    
zIOLoopKernelRestarter.startc             C   s   | j dk	r| j   d| _ dS )zStop the kernel polling.N)r   stop)r   r   r   r   r   (   s    

zIOLoopKernelRestarter.stop)
__name__
__module____qualname____doc__r   Zloopr   r   r   r   r   r   r   r   r      s   r   )r   Z
__future__r   r	   Zzmq.eventloopr   Zjupyter_client.restarterr   Z	traitletsr   r   r   r   r   r   <module>   s   