
    fL                       d Z ddlmZ ddlZddlZddlZddlZddlZddl	m
Z
mZ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mZmZ d
Z ee      Z ee      Zej;                  e        ee      Z ee      Zej;                  e        e ejC                               Z" e ejC                               Z# G d de
e      Z$e$jJ                  xZ&Z'e(dk(  r e&        yy)z#A Jupyter console app to run files.    )annotationsN)
JupyterAppbase_aliases
base_flags)AnyDictFloat)catch_config_error   )__version__)JupyterConsoleAppapp_aliases	app_flags
   c                       e Zd ZdZeZdZdZ ee	      Z	 ee
      Z
 ee      Z ee      Z eddd      Zdd fdZedd fd	       Zdd
ZddZd fdZ xZS )RunAppz$An Jupyter Console app to run files.zjupyter runzRun Jupyter kernel code.<   Ta5  Timeout for giving up on a kernel (in seconds).

        On first connect and restart, the console tests whether the
        kernel is running and responsive by sending kernel_info_requests.
        This sets the timeout in seconds for how long the kernel can take
        before being presumed dead.
        )confighelpc                    t         |   |       | j                  | j                         | j                  dd | _        y)z!Parse the command line arguments.N)superparse_command_linebuild_kernel_argv
extra_argsfilenames_to_runselfargv	__class__s     P/var/www/cvtools/html/venv/lib/python3.12/site-packages/jupyter_client/runapp.pyr   zRunApp.parse_command_line?   s3    "4(t/ $ 2    c                    | j                   j                  d       t        |   |       t	        j                  |        t        j
                  t
        j                  | j                         | j                          y)zInitialize the app.zjupyter run: initialize...N)	logdebugr   
initializer   signalSIGINThandle_sigintinit_kernel_infor   s     r    r%   zRunApp.initializeE   sU     	344 $$T*fmmT%7%78r!   c                    | j                   r| j                   j                          y| j                  j                  d       y)zHandle SIGINT.z*Cannot interrupt kernels we didn't start.
N)kernel_managerinterrupt_kernelr#   error)r   argss     r    r(   zRunApp.handle_sigintN   s.    002HHNNHIr!   c                   | j                   }t        j                         }| j                  j                  j	                          | j                  j                         }	 	 | j                  j                  d      }|d   j                  d      |k(  r|d   | _        y@# t        j                  $ r2}t        j                         |z
  |kD  rd}t        |      |Y d}~Ad}~ww xY w)z4Wait for a kernel to be ready, and store kernel infor   timeoutparent_headermsg_idcontentNz,Kernel didn't respond to kernel_info_request)kernel_timeouttimekernel_client
hb_channelunpausekernel_infoget_shell_msggetqueueEmptyRuntimeError)r   r1   ticr3   replyemsgs          r    r)   zRunApp.init_kernel_infoU   s    %%iik%%--/##//1	**888C )--h76A',Y'7D$  ;; 3IIK#%0HC&s+2 13s   !B   C%3(C  C%c                h   | j                   j                  d       t        |           | j                  r| j                  D ]  }| j                   j                  d|       t        |      5 }|j                         }| j                  j                  |t              }|d   d   dk(  rdnd}|rt        d	|z        	 d
d
d
        y
t        j                  j                         }| j                  j                  |t              }|d   d   dk(  rdnd}|rd}t        |      y
# 1 sw Y   xY w)zStart the application.zjupyter run: starting...zjupyter run: executing `%s`r0   r4   statusokr   r   zjupyter-run error running '%s'Nz!jupyter-run error running 'stdin')r#   r$   r   startr   openreadr7   execute_interactiveOUTPUT_TIMEOUT	Exceptionsysstdin)r   filenamefpcoderA   return_coderC   r   s          r    rG   zRunApp.startg   s,   12   11 U<hG(^ Ur779D ..BB4Q_B`E',Y'7'AT'I!qK"'(H8(STT #	U UU 99>>#D&&::4:XE$Y/9TA!qK9n$ U Us   -AD((D1	)N)r   zlist[str] | NonereturnNone)r.   zt.AnyrS   rT   )rS   rT   )__name__
__module____qualname____doc__r   versionnamedescriptionr   flagsaliasesr   frontend_aliasesfrontend_flagsr	   r5   r   r
   r%   r(   r)   rG   __classcell__)r   s   @r    r   r   )   s    .GD0KKE7mG+,(N

N3    J$% %r!   r   __main__))rX   
__future__r   r=   r&   rM   r6   typingtjupyter_core.applicationr   r   r   	traitletsr   r   r	   traitlets.configr
    r   
consoleappr   r   r   rK   dictr\   frontend_flags_dictupdater]   frontend_aliases_dictsetkeysr^   r_   r   launch_instancemainlaunch_new_instancerU    r!   r    <module>rt      s    ) #   
   I I & & /  A A 	Z9o    ! |
[)  $ % ,1134 (--/0Q%Z* Q%h $33 3zF r!   