
    bi                       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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j9                  e        ee
      Z ee      Zej9                  e        eejA                               Z! eejA                               Z" G d de	e      Z#e#jH                  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 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/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jupyter_client/runapp.pyr   zRunApp.parse_command_line?   s3    "4(t/ $ 2    c                L   | j                   j                  d       t        |   |       t	        j                  |        t        j
                  t
        j                  | j                         | j                  r*t        j                  | j                  j                         yy)zInitialize the app.zjupyter run: initialize...N)logdebugr   
initializer   signalSIGINThandle_sigintkernel_manageratexitregistershutdown_kernelr   s     r    r%   zRunApp.initializeE   so     	344 $$T*fmmT%7%78OOD//??@ r!   c                    | j                   r| j                   j                          y| j                  j                  d       y)zHandle SIGINT.z*Cannot interrupt kernels we didn't start.
N)r)   interrupt_kernelr#   error)r   argss     r    r(   zRunApp.handle_sigintO   s.    002HHNNHIr!   c                   | j                   j                  d       t        |           | j                  j                  | j                         | j                  r| j                  D ]  }| j                   j                  d|       t        |      5 }|j                         }| j                  j                  |t              }|d   d   dk(  rdnd}|rd	| d
}t        |      	 ddd        y| j                   j                  d       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...)timeoutzjupyter run: executing `%s`contentstatusokr   r   zjupyter-run error running ''Nz!jupyter run: executing from stdinz!jupyter-run error running 'stdin')r#   r$   r   startkernel_clientwait_for_readykernel_timeoutr   openreadexecute_interactiveOUTPUT_TIMEOUT	Exceptionsysstdin)r   filenamefpcodereplyreturn_codemsgr   s          r    r7   zRunApp.startV   sZ   12))$2E2E)F   11 -<hG(^ -r779D ..BB4Q_B`E',Y'7'AT'I!qK" ;H:QG'n, #	- -- HHNN>?99>>#D&&::4:XE$Y/9TA!qK9n$ - -s   AE,,E6	)N)r   zlist[str] | NonereturnNone)r0   zt.AnyrH   rI   )rH   rI   )__name__
__module____qualname____doc__r   versionnamedescriptionr   flagsaliasesr   frontend_aliasesfrontend_flagsr	   r:   r   r
   r%   r(   r7   __classcell__)r   s   @r    r   r   )   s}    .GD0KKE7mG+,(N

N3 A AJ% %r!   r   __main__)(rM   
__future__r   r*   r&   r@   typingtjupyter_core.applicationr   r   r   	traitletsr   r   r	   traitlets.configr
    r   
consoleappr   r   r   r>   dictrQ   frontend_flags_dictupdaterR   frontend_aliases_dictsetkeysrS   rT   r   launch_instancemainlaunch_new_instancerJ    r!   r    <module>ri      s    ) #   
  I I & & /  A A 	Z9o    ! |
[)  $ % ,1134 (--/0C%Z* C%L $33 3zF r!   