
    Ne                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ d	d
lmZ d	dlmZ d	dlmZ d	dlmZ dZ ee      Z ee      Zej1                  e        ee      Z ee      Zej1                  e        eej9                               Z eej9                               Z G d dee      Zej@                  xZ!Z"e#dk(  r e!        yy)    N)base_aliases)
base_flags)
JupyterApp)Any)Dict)Float)catch_config_error   )__version__)app_aliases)	app_flags)JupyterConsoleApp
   c                        e 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 fd	Zed fd	       Zd	 Zd
 Z fdZ xZS )RunAppz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 N)superparse_command_linebuild_kernel_argv
extra_argsfilenames_to_runselfargv	__class__s     7/usr/lib/python3/dist-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 )Nzjupyter run: initialize...)	logdebugr   
initializer   signalSIGINThandle_sigintinit_kernel_infor   s     r    r%   zRunApp.initializeD   sS    344 $$T*fmmT%7%78r!   c                     | j                   r| j                   j                          y | j                  j                  d       y )Nz*Cannot interrupt kernels we didn't start.
)kernel_managerinterrupt_kernelr#   error)r   argss     r    r(   zRunApp.handle_sigintL   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                  $ r0}t        j                         |z
  |kD  rt        d      |Y d}~?d}~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es         r    r)   zRunApp.init_kernel_infoR   s    %%iik%%--/##//1**888C
 )--h76A',Y'7D$  ;; ^IIK#%0&'UV\]] 1^s   !B   C#3&CC#c                 h   | j                   j                  d       t        |           | j                  r| j                  D ]  }| j                   j                  d|z         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t        d
      y # 1 sw Y   xY w)Nzjupyter run: starting...zjupyter run: executing `%s`r0   r4   statusokr   r
   zjupyter-run error running '%s'z!jupyter-run error running 'stdin')r#   r$   r   startr   openreadr7   execute_interactiveOUTPUT_TIMEOUT	Exceptionsysstdin)r   filenamefpcoderA   return_coder   s         r    rF   zRunApp.startc   s,   12   11 U<xGH(^ 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 CDD U Us   /AD((D1	r   )__name__
__module____qualname__r   versionnamedescriptionr   flagsaliasesr   frontend_aliasesfrontend_flagsr   r5   r   r	   r%   r(   r)   rF   __classcell__)r   s   @r    r   r   +   s    GD0KKE7mG+,(N

N3
    J"E Er!   r   __main__)$r=   r&   rL   r6   jupyter_core.applicationr   r   r   	traitletsr   r   r   traitlets.configr	    r   
consoleappr   r   r   rJ   dictrX   frontend_flags_dictupdaterY   frontend_aliases_dictsetkeysrZ   r[   r   launch_instancemainlaunch_new_instancerR    r!   r    <module>rm      s      
  1 / /    /  # ! ) 	Z9o    ! |
[)  $ % ,1134 (--/0IEZ* IEX $33 3zF r!   