
    Ch                          S r SSKrSSKJr  SSKJr  SSKJr  SSKJ	r	J
r
Jr  SSKJrJr   " S	 S
\5      r\R                   " \5        g)z A client for in-process kernels.    N)KernelClient)KernelClientABC)run_sync)InstanceTypedefault   )InProcessChannelInProcessHBChannelc                     ^  \ rS rSrSr\" \5      r\" \5      r\" \5      r	\" \5      r
\" \5      r\" SSS9r\" S5      S 5       rU 4S jrU 4S	 jr\S
 5       r\S 5       r\S 5       r\S 5       r\S 5       r SS jrSS jrS S jrS!S jrS"S jrS rSS jrS r S r!S r"S#S jr#S#S jr$S#S jr%S#S jr&Sr'U =r($ )$InProcessKernelClient   a  A client for an in-process kernel.

This class implements the interface of
`jupyter_client.clientabc.KernelClientABC` and allows
(asynchronous) frontends to be used seamlessly with an in-process kernel.

See `jupyter_client.client.KernelClient` for docstrings.
z,ipykernel.inprocess.ipkernel.InProcessKernelT)
allow_noneblocking_classc                     SSK Jn  U$ )Nr	   )BlockingInProcessKernelClient)blockingr   )selfr   s     mC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\ipykernel/inprocess/client.py_default_blocking_class-InProcessKernelClient._default_blocking_class6   s    ;,,    c                 B   > [         TU ]  5       nU R                  US'   U$ )z'Get the connection info for the client.kernel)superget_connection_infor   )r   d	__class__s     r   r   )InProcessKernelClient.get_connection_info<   s"    G')kk(r   c                    > [         TU ]  5         U R                  (       a&  U R                  R                  R	                  U 5        gg)z!Start the channels on the client.N)r   start_channelsr   	frontendsappend)r   argskwargsr   s      r   r!   $InProcessKernelClient.start_channelsB   s2     ;;KK!!((. r   c                 `    U R                   c  U R                  U 5      U l         U R                   $ N)_shell_channelshell_channel_classr   s    r   shell_channel#InProcessKernelClient.shell_channelH   -    &"&":":4"@D"""r   c                 `    U R                   c  U R                  U 5      U l         U R                   $ r(   )_iopub_channeliopub_channel_classr+   s    r   iopub_channel#InProcessKernelClient.iopub_channelN   r.   r   c                 `    U R                   c  U R                  U 5      U l         U R                   $ r(   )_stdin_channelstdin_channel_classr+   s    r   stdin_channel#InProcessKernelClient.stdin_channelT   r.   r   c                 `    U R                   c  U R                  U 5      U l         U R                   $ r(   )_control_channelcontrol_channel_classr+   s    r   control_channel%InProcessKernelClient.control_channelZ   s-      ($($>$>t$DD!$$$r   c                 `    U R                   c  U R                  U 5      U l         U R                   $ r(   )_hb_channelhb_channel_classr+   s    r   
hb_channel InProcessKernelClient.hb_channel`   s-    ##44T:Dr   c                     Uc  U R                   n[        UUUU=(       d    0 US9nU R                  R                  SU5      nU R	                  U5        US   S   $ )zExecute code on the client.)codesilentstore_historyuser_expressionsallow_stdinexecute_requestheadermsg_id)rH   dictsessionmsg_dispatch_to_kernel)r   rD   rE   rF   rG   rH   contentrN   s           r   executeInProcessKernelClient.executei   si     **K'-3#
 ll0':  %8}X&&r   c                     Uc  [        U5      n[        XS9nU R                  R                  SU5      nU R	                  U5        US   S   $ )zGet code completion.)rD   
cursor_poscomplete_requestrJ   rK   lenrL   rM   rN   rO   )r   rD   rT   rP   rN   s        r   completeInProcessKernelClient.completez   sO    TJD8ll17;  %8}X&&r   c                     Uc  [        U5      n[        UUUS9nU R                  R                  SU5      nU R	                  U5        US   S   $ )zGet code inspection.)rD   rT   detail_levelinspect_requestrJ   rK   rV   )r   rD   rT   r[   rP   rN   s         r   inspectInProcessKernelClient.inspect   sZ    TJ!%

 ll0':  %8}X&&r   c                     [        SXUS.UD6nU R                  R                  SU5      nU R                  U5        US   S   $ )zGet code history.)rawoutputhist_access_typehistory_requestrJ   rK    rL   rM   rN   rO   )r   r`   ra   rb   kwdsrP   rN   s          r   historyInProcessKernelClient.history   sL    Y3@PYTXYll0':  %8}X&&r   c                     Sn[        U5      e)zHandle shutdown.z!Cannot shutdown in-process kernel)NotImplementedError)r   restartrN   s      r   shutdownInProcessKernelClient.shutdown   s     2!#&&r   c                 j    U R                   R                  S5      nU R                  U5        US   S   $ )zRequest kernel info.kernel_info_requestrJ   rK   rM   rN   rO   )r   rN   s     r   kernel_info!InProcessKernelClient.kernel_info   s4    ll45  %8}X&&r   c                     Uc  0 O[        US9nU R                  R                  SU5      nU R                  U5        US   S   $ )z6Request a dictionary of valid comms and their targets.)target_namecomm_info_requestrJ   rK   re   )r   rt   rP   rN   s       r   	comm_infoInProcessKernelClient.comm_info   sG    #+"+1Nll2G<  %8}X&&r   c                 X    U R                   c  Sn[        U5      eXR                   l        g)zHandle kernel input.Nz*Cannot send input reply. No kernel exists.)r   RuntimeErrorraw_input_str)r   stringrN   s      r   inputInProcessKernelClient.input   s&    ;;>Cs##$*!r   c                 p    U R                   R                  SSU05      nU R                  U5        US   S   $ )zHandle an is_complete request.is_complete_requestrD   rJ   rK   rp   )r   rD   rN   s      r   is_complete!InProcessKernelClient.is_complete   s:    ll4vtnE  %8}X&&r   c                    U R                   nUc  Sn[        U5      eUR                  nU R                  R	                  X15        UR                  5       n[        b  [        UR                  5      nU" U5        O5[        R                  " 5       nUR                  UR                  U5      5        U R                  R                  USS9u  pxU R                  R                  U5        g)z0Send a message to the kernel and handle a reply.Nz&Cannot send request. No kernel exists.F)copy)r   ry   shell_streamrM   sendrecv_multipartr   dispatch_shellasyncioget_event_looprun_until_completerecvr,   call_handlers_later)	r   rN   r   stream	msg_partsr   loopidents	reply_msgs	            r   rO   )InProcessKernelClient._dispatch_to_kernel   s    >:Cs##$$&&))+	%f&;&;<N9%))+D##F$9$9)$DE LL--f5-A..y9r   c                 8    U R                   R                  X5      $ )zGet a shell message.)r,   get_msgr   blocktimeouts      r   get_shell_msg#InProcessKernelClient.get_shell_msg       !!))%99r   c                 8    U R                   R                  X5      $ )zGet an iopub message.)r2   r   r   s      r   get_iopub_msg#InProcessKernelClient.get_iopub_msg   r   r   c                 8    U R                   R                  X5      $ )zGet a stdin message.)r7   r   r   s      r   get_stdin_msg#InProcessKernelClient.get_stdin_msg   r   r   c                 8    U R                   R                  X5      $ )zGet a control message.)r<   r   r   s      r   get_control_msg%InProcessKernelClient.get_control_msg   s    ##++E;;r   )r:   r?   r0   r)   r5   )FTNNr(   )Nr   )TFrange)F)TN))__name__
__module____qualname____firstlineno____doc__r   r
   r*   r1   r6   r;   r   r@   r   r   r   r   r   r!   propertyr,   r2   r7   r<   rA   rQ   rX   r]   rg   rl   rq   rv   r|   r   rO   r   r   r   r   __static_attributes____classcell__)r   s   @r   r   r      s.    /0/0/0 !12./DQUVF - -
/ # #
 # #
 # #
 % %
     Z^'"''''''+':&:::< <r   r   )r   r   jupyter_client.clientr   jupyter_client.clientabcr   jupyter_core.utilsr   	traitletsr   r   r   channelsr
   r   r   registerrd   r   r   <module>r      sC    &  . 4 ' . - ;y<L y<@   . /r   