
    ^h                        S r SSKJr  SSKrSSKrSSKJr  SSKJr  SSK	J
r
JrJrJrJrJ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  SSKJr   " S S\5      r " S S\5      r\R@                  " \5        g)zAn in-process kernel    )annotationsN)contextmanager)InteractiveShellABC)AnyEnumInstanceListTypedefault)IPythonKernel)
json_clean)ZMQInteractiveShell   )BackgroundSocketIOPubThread	OutStream   )INPROCESS_KEY)DummySocketc                    ^  \ rS rSr% Sr\" \" SSS95      r\" SSS9r	\
" 5       r\
" 5       r\
" 5       r\" SS9r\" \S	5      r\" \5      rS
\S'   \" \S	5      r\" S5      S 5       r\" \5      rS\S'   \" S5      S 5       r\" \S	5      rU 4S jrU 4S jrS rS"S#S jjrS$S jr \!S 5       r"S r#\" S5      S 5       r$\" S5      S 5       r%\" S5      S 5       r&\" S5      S 5       r'\" S5      S  5       r(S!r)U =r*$ )%InProcessKernel   zAn in-process kernel.z0ipykernel.inprocess.client.InProcessKernelClientT
allow_none)tkgtkwxqtqt4inliner    )default_value r   iopub_threadc                P    [        U R                  5      nUR                  5         U$ N)r   _underlying_iopub_socketstart)selfthreads     V/home/james-whalen/.local/lib/python3.13/site-packages/ipykernel/inprocess/ipkernel.py_default_iopub_thread%InProcessKernel._default_iopub_thread9   s     T::;    r   iopub_socketc                .    U R                   R                  $ r%   )r#   background_socketr(   s    r*   _default_iopub_socket%InProcessKernel._default_iopub_socketA   s      222r-   c                   > [         TU ]  " S0 UD6  U R                  R                  U R                  S/S9  U R
                  (       a  X R
                  l        gg)zInitialize the kernel.message_sent)namesNr"   )super__init__r&   observe_io_dispatchshellkernel)r(   traits	__class__s     r*   r8   InProcessKernel.__init__G   sK    "6"%%--d.?.?GW-X:: $JJ r-   c                   >#    U R                  5          [        TU ]	  XU5      I Sh  vN   SSS5        g N! , (       d  f       g= f7f)z&Override for temporary IO redirection.N)_redirected_ior7   execute_request)r(   streamidentparentr>   s       r*   rB   InProcessKernel.execute_requestO   s:       "')&@@@ #"@ #"s%   A	868	A	8
AA	c                J    U R                   (       a  SU R                   l        gg)z1Override registration of dispatchers for streams.FN)r;   exit_nowr1   s    r*   r'   InProcessKernel.startT   s    ::"'DJJ r-   c                    g)z-The in-process kernel doesn't abort requests.Nr"   )r(   subshell_ids     r*   _abort_queuesInProcessKernel._abort_queuesY   s    r-   c                   S U l         [        R                  b  [        R                  R                  5         [        R                  b  [        R                  R                  5         [        [        XS95      nU R                  c   eU R                  R                  SXS5      nU R                   HE  nUc   eUR                  R                  US   S   :X  d  M*  UR                  R                  U5          O   [        R                  " S5        gU R                   c)  UR                  R                  5         U R                   c  M)  U R                   $ )N)promptpasswordinput_requestheadersessionz'No frontend found for raw_input request )raw_input_strsysstdoutflushstderrr   dictrS   msg	frontendsstdin_channelcall_handlersloggingerrorprocess_events)r(   rO   rD   rE   rP   contentr[   frontends           r*   _input_requestInProcessKernel._input_request\   s   !::!JJ::!JJ TCD||'''ll@H'''''6(+;I+FF&&44S9	 ' MMCD   (""113   (!!!r-   c              #    #    [         R                  [         R                  p! U R                  U R                  s[         l        [         l        Sv   Xs[         l        [         l        g! Xs[         l        [         l        f = f7f)z&Temporarily redirect IO to the kernel.N)rV   rW   rY   )r(   
sys_stdout
sys_stderrs      r*   rA   InProcessKernel._redirected_ioz   sR      "%SZZJ	<%)[[$++"CJ
%/"CJ
Z"CJ
s    B/A) B)BBc                .   U R                   R                  c   eU R                  c   eU R                  R                  U R                   R                  R                  SS9u  p#U R
                   H#  nUc   eUR                  R                  U5        M%     g)z/Called when a message is sent to the IO socket.NF)copy)r.   	io_threadrS   recvsocketr\   iopub_channelr^   )r(   changerD   r[   rc   s        r*   r:   InProcessKernel._io_dispatch   s      **666||'''\\&&t'8'8'B'B'I'IPU&V
H'''""005 'r-   logc                6    [         R                  " [        5      $ r%   )r_   	getLogger__name__r1   s    r*   _default_logInProcessKernel._default_log   s      **r-   rS   c                $    SSK Jn  U" U [        S9$ )Nr   )Session)rE   key)jupyter_client.sessionry   r   )r(   ry   s     r*   _default_session InProcessKernel._default_session   s    2d66r-   shell_classc                    [         $ r%   )InProcessInteractiveShellr1   s    r*   _default_shell_class$InProcessKernel._default_shell_class   s    ((r-   rW   c                B    [        U R                  U R                  SSS9$ )NrW   Fwatchfdr   rS   r#   r1   s    r*   _default_stdoutInProcessKernel._default_stdout       t'8'8(ERRr-   rY   c                B    [        U R                  U R                  SSS9$ )NrY   Fr   r   r1   s    r*   _default_stderrInProcessKernel._default_stderr   r   r-   )rU   ).)rK   z
str | None)F)+ru   
__module____qualname____firstlineno____doc__r	   r   r\   r   guir   rU   rW   rY   r
   r~   r   r&   r   r#   __annotations__shell_streamr   r+   r   r.   r2   stdin_socketr8   rB   r'   rL   rd   r   rA   r:   rv   r|   r   r   r   __static_attributes____classcell__r>   s   @r*   r   r      su    XP]abcI 9
RCEMUFUF $'K'R8 ( 5L+5K,L^ 
 &..>%?L"?^3 3 K,L%A
(
<"< < <6 U^+ + Y7 7
 ]) ) XS S XS Sr-   r   c                  d   ^  \ rS rSr% Sr\" SSS9rS\S'   SS jrSU 4S	 jjr	SU 4S
 jjr
SrU =r$ )r      z An in-process interactive shell.z,ipykernel.inprocess.ipkernel.InProcessKernelTr   r   r<   c                J    U(       d  U R                   R                  nXl        g)z&Enable GUI integration for the kernel.N)r<   r   active_eventloop)r(   r   s     r*   
enable_gui$InProcessInteractiveShell.enable_gui   s    ++//C #r-   c                \   > U(       d  U R                   R                  n[        TU ]  U5      $ )z-Enable matplotlib integration for the kernel.)r<   r   r7   enable_matplotlib)r(   r   r>   s     r*   r   +InProcessInteractiveShell.enable_matplotlib   s#    ++//Cw(--r-   c                \   > U(       d  U R                   R                  n[        TU ]  X5      $ )z"Activate pylab support at runtime.)r<   r   r7   enable_pylab)r(   r   
import_allr>   s      r*   r   &InProcessInteractiveShell.enable_pylab   s#    ++//Cw#C44r-   )r   r%   )NT)ru   r   r   r   r   r   r<   r   r   r   r   r   r   r   s   @r*   r   r      s0    *&64FO $.5 5r-   r   )!r   
__future__r   r_   rV   
contextlibr   IPython.core.interactiveshellr   	traitletsr   r   r   r	   r
   r   ipykernel.ipkernelr   ipykernel.jsonutilr   ipykernel.zmqshellr   iostreamr   r   r   	constantsr   rn   r   r   r   registerr"   r-   r*   <module>r      sc     #  
 % = > > , ) 2 ? ? $ JSm JSd5 3 5<   6 7r-   