
    g:                         d Z ddlmZ ddlmZ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e      Z G d dee      Z G d dee      Z G d dee      Z G d de      Zy)z= Defines an in-process KernelManager with signals and slots.
    )QtCore)InProcessHBChannelInProcessKernelClientInProcessKernelManager)InProcessChannel)Type   )SuperQObject)QtKernelClientMixinQtKernelManagerMixin)RichJupyterWidgetc                        e Zd Z ej                         Z ej                         Z ej                  e      Z fdZ	 fdZ
d Zd Zd Zd fd	Zd Z xZS )	QtInProcessChannelc                 V    t         |           | j                  j                          yz' Reimplemented to emit signal.
        N)superstartstartedemitself	__class__s    3lib/python3.12/site-packages/qtconsole/inprocess.pyr   zQtInProcessChannel.start   s     	    c                 V    t         |           | j                  j                          yr   )r   stopstoppedr   r   s    r   r   zQtInProcessChannel.stop!   s     	r   c                 X      fd}t         j                  j                  d|       y)z* Call the message handlers later.
        c                  (     j                    i S N)call_handlers)argskwdsr   s   r   <lambda>z8QtInProcessChannel.call_handlers_later.<locals>.<lambda>*   s    -4--t<t<r   r   N)r   QTimer
singleShot)r   r"   r#   do_laters   ``` r   call_handlers_laterz&QtInProcessChannel.call_handlers_later'   s     =  H-r   c                 :    | j                   j                  |       y r    )message_receivedr   )r   msgs     r   r!   z QtInProcessChannel.call_handlers-   s    ""3'r   c                 \    t         j                  j                         j                          y)z) Process any pending GUI events.
        N)r   QCoreApplicationinstanceprocessEventsr   s    r   process_eventsz!QtInProcessChannel.process_events0   s     	((*88:r   c                 B    t         |           | j                          y)zJ Reimplemented to ensure that signals are dispatched immediately.
        N)r   flushr1   )r   timeoutr   s     r   r3   zQtInProcessChannel.flush5   s     	r   c                      y)z> Function to ensure compatibility with the QtZMQSocketChannel.F r0   s    r   closedzQtInProcessChannel.closed;   s    r   )g      ?)__name__
__module____qualname__r   Signalr   r   objectr*   r   r   r(   r!   r1   r3   r7   __classcell__)r   s   @r   r   r      sU    fmmoG fmmoG %v}}V,.(;
r   r   c                   .    e Zd Z ej                         Zy)QtInProcessHBChannelN)r8   r9   r:   r   r;   kernel_diedr6   r   r   r?   r?   @   s    &--/Kr   r?   c                   P    e Zd ZdZ ee      Z ee      Z ee      Z ee	      Z
y)QtInProcessKernelClientz9 An in-process KernelManager with signals and slots.
    N)r8   r9   r:   __doc__r   r   iopub_channel_classshell_channel_classstdin_channel_classr?   hb_channel_classr6   r   r   rB   rB   E   s9     12121201r   rB   c                       e Zd Zedz   Zy)QtInProcessKernelManagerz.QtInProcessKernelClientN)r8   r9   r:   client_classr6   r   r   rI   rI   N   s     ::Lr   rI   c                       e Zd ZdZddZy)QtInProcessRichJupyterWidgetzA An in-process Jupyter Widget that enables multiline editing
    c                     | j                   j                  j                  }|j                  j	                  |      \  }}|d}nd|z  }|dk7  |fS )N  
incomplete)kernel_managerkernelshellinput_transformer_managercheck_complete)r   sourceinteractiverS   statusindent_spacesindents          r   _is_completez)QtInProcessRichJupyterWidget._is_completeV   s[    ##**00++::6B 	 F=(F%v--r   N)T)r8   r9   r:   rC   r[   r6   r   r   rL   rL   R   s    .r   rL   N)rC   qtpyr   ipykernel.inprocessr   r   r   ipykernel.inprocess.channelsr   	traitletsr   utilr
   kernel_mixinsr   r   rich_jupyter_widgetr   r   r?   rB   rI   rL   r6   r   r   <module>rc      sz      :   3,'7 ,^"<); "
213H 2;35K ;.#4 .r   