
    
8d*
                         d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZmZ  G d d	e	e          Z G d
 dee          ZdS )z9 Defines a KernelClient that provides signals and slots.
    )QtCore)BoolDottedObjectName)KernelManager)KernelRestarter   )QtKernelManagerMixinQtKernelRestarterMixinc                   0     e Zd Zd Zd Z fdZd Z xZS )QtKernelRestarterc                     | j         <t          j                    | _         | j         j                            | j                   | j                             t          | j        dz                       d S )Ni  )	_timerr   QTimertimeoutconnectpollstartroundtime_to_deadselfs    1lib/python3.11/site-packages/qtconsole/manager.pyr   zQtKernelRestarter.start   s^    ; -//DKK''	222% 1D 899:::::    c                 8    | j                                          d S N)r   stopr   s    r   r   zQtKernelRestarter.stop   s    r   c                 H    t                                                       d S r   )superr   )r   	__class__s    r   r   zQtKernelRestarter.poll   s    r   c                     d| _         d S )Nr   )_restart_countr   s    r   reset_countzQtKernelRestarter.reset_count   s    r   )__name__
__module____qualname__r   r   r   r"   __classcell__r   s   @r   r   r      se        ; ; ;                   r   r   c                   ~     e Zd ZdZ ed          Z edd          Z fdZd Z	d Z
 fdZd	 Z fd
Zd Z xZS )QtKernelManagerz+A KernelManager with Qt signals for restartzqtconsole.client.QtKernelClientT)configc                 H     t                      j        |i | d| _        d S )NF)r   __init___is_restarting)r   argskwargsr   s      r   r,   zQtKernelManager.__init__'   s-    $)&)))#r   c                     | j         rd| j        r_| j        ;t          | | | j                  | _        | j                            | j                   | j                                         dS dS dS )zStart restarter mechanism.N)kernel_managerparentlog)autorestart
has_kernel
_restarterr   r3   add_callback_handle_kernel_restartingr   r   s    r   start_restarterzQtKernelManager.start_restarter+   s     	$ 	$&"3#'# # #
 ,,T-KLLLO!!#####	$ 	$ 	$ 	$r   c                 \    | j         r"| j        | j                                         dS dS dS )zStop restarter mechanism.N)r4   r6   r   r   s    r   stop_restarterzQtKernelManager.stop_restarter7   s?     	'*$$&&&&&	' 	'**r   c                      t                      j        di | | j        r"| j                                         d| _        dS dS )zKernel restarted.FN )r   post_start_kernelr-   kernel_restartedemitr   kwr   s     r   r>   z!QtKernelManager.post_start_kernel=   sX    !!''B''' 	(!&&((("'D	( 	(r   c                 J    | j         r| j                                          dS dS )zReset autorestart count.N)r6   r"   r   s    r   reset_autorestart_countz'QtKernelManager.reset_autorestart_countD   s0    ? 	*O'')))))	* 	*r   c                    K    t                      j        di | d{V  | j        r"| j                                         d| _        dS dS )z
        This is necessary for Jupyter-client 8+ because `start_kernel` doesn't
        call `post_start_kernel` directly.
        NFr=   )r   _async_post_start_kernelr-   r?   r@   rA   s     r   rF   z(QtKernelManager._async_post_start_kernelI   sp      
 /egg.44444444444 	(!&&((("'D	( 	(r   c                     d| _         dS )z'Kernel has died, and will be restarted.TN)r-   r   s    r   r8   z)QtKernelManager._handle_kernel_restartingS   s    "r   )r#   r$   r%   __doc__r   client_classr   r4   r,   r9   r;   r>   rD   rF   r8   r&   r'   s   @r   r)   r)   !   s        55##$EFFL$tD)))K$ $ $ $ $
$ 
$ 
$' ' '( ( ( ( (* * *
( ( ( ( (# # # # # # #r   r)   N)rH   qtpyr   	traitletsr   r   jupyter_clientr   jupyter_client.restarterr   kernel_mixinsr	   r
   r   r)   r=   r   r   <module>rO      s           - , , , , , , , ( ( ( ( ( ( 4 4 4 4 4 4 G G G G G G G G         )?      $4# 4# 4# 4# 4#m%9 4# 4# 4# 4# 4#r   