ó
Ýà‹]c           @  s¶  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 d  d l m	 Z	 m
 Z
 m Z m Z m Z 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 m Z m Z y d  d l Z Wn e k
 rd  d l Z n Xd	 Z e e ƒ Z  e e ƒ Z! e  j" e! ƒ e e ƒ Z# e e ƒ Z$ e# j" e$ ƒ e% e$ j& ƒ  ƒ Z$ e% e! j& ƒ  ƒ Z! d
 e e f d „  ƒ  YZ' e' j( Z) Z* e+ d k r²e) ƒ  n  d S(   iÿÿÿÿ(   t   print_functionN(   t   catch_config_error(   t   Instancet   Dictt   Unicodet   Boolt   Listt   CUnicodet   Anyt   Float(   t
   JupyterAppt
   base_flagst   base_aliasesi   (   t   __version__(   t   JupyterConsoleAppt   app_aliasest	   app_flagsi
   t   RunAppc           B  s›   e  Z e Z d  Z d Z e e ƒ Z e e ƒ Z e	 e
 ƒ Z
 e	 e ƒ Z e d d e d d ƒZ d d „ Z e d d „ ƒ Z d „  Z d	 „  Z d
 „  Z RS(   s   jupyter runs   Run Jupyter kernel code.i<   t   configt   helps5  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.
        c         C  s7   t  t |  ƒ j | ƒ |  j |  j ƒ |  j |  _ d  S(   N(   t   superR   t   parse_command_linet   build_kernel_argvt
   extra_argst   filenames_to_run(   t   selft   argv(    (    s4   lib/python2.7/site-packages/jupyter_client/runapp.pyR   C   s    c         C  sW   |  j  j d ƒ t t |  ƒ j | ƒ t j |  ƒ t j t j |  j ƒ |  j	 ƒ  d  S(   Ns   jupyter run: initialize...(
   t   logt   debugR   R   t
   initializeR   t   signalt   SIGINTt   handle_sigintt   init_kernel_info(   R   R   (    (    s4   lib/python2.7/site-packages/jupyter_client/runapp.pyR   H   s
    c         G  s:   |  j  r |  j  j ƒ  n t d d t j ƒt d ƒ d  S(   Nt    t   files*   Cannot interrupt kernels we didn't start.
(   t   kernel_managert   interrupt_kernelt   printt   syst   stderrt   error(   R   t   args(    (    s4   lib/python2.7/site-packages/jupyter_client/runapp.pyR    P   s    	c         C  sÄ   |  j  } t j ƒ  } |  j j j ƒ  |  j j ƒ  } x‰ t r¿ y |  j j d d ƒ } Wn9 t j	 k
 r‘ t j ƒ  | | k r¼ t
 d ƒ ‚ q¼ q7 X| d j d ƒ | k r7 | d |  _ d Sq7 Wd S(   s4   Wait for a kernel to be ready, and store kernel infot   timeouti   s,   Kernel didn't respond to kernel_info_requestt   parent_headert   msg_idt   contentN(   t   kernel_timeoutt   timet   kernel_clientt
   hb_channelt   unpauset   kernel_infot   Truet   get_shell_msgt   queuet   Emptyt   RuntimeErrort   get(   R   R+   t   ticR-   t   reply(    (    s4   lib/python2.7/site-packages/jupyter_client/runapp.pyR!   W   s    		c      	   C  s)  |  j  j d ƒ t t |  ƒ j ƒ  |  j rÉ xö |  j D]Œ } |  j  j d | ƒ t | ƒ d } | j ƒ  } |  j j	 | d t
 ƒ} | d d d k r d n d } | r¼ t d	 | ƒ ‚ n  Wd  QXq6 Wn\ t j j ƒ  } |  j j	 | d t
 ƒ} | d d d k r
d n d } | r%t d
 ƒ ‚ n  d  S(   Ns   jupyter run: starting...s   jupyter run: executing `%s`R+   R.   t   statust   oki    i   s   jupyter-run error running '%s's!   jupyter-run error running 'stdin'(   R   R   R   R   t   startR   t   opent   readR1   t   execute_interactivet   OUTPUT_TIMEOUTt	   ExceptionR'   t   stdin(   R   t   filenamet   fpt   codeR<   t   return_code(    (    s4   lib/python2.7/site-packages/jupyter_client/runapp.pyR?   h   s     	   N(   t   __name__t
   __module__R   t   versiont   namet   descriptionR   t   flagst   aliasesR   t   frontend_aliasest   frontend_flagsR	   R5   R/   t   NoneR   R   R   R    R!   R?   (    (    (    s4   lib/python2.7/site-packages/jupyter_client/runapp.pyR   1   s   			t   __main__(,   t
   __future__R    t   loggingR   R0   R'   t   traitlets.configR   t	   traitletsR   R   R   R   R   R   R   R	   t   jupyter_core.applicationR
   R   R   R"   R   t
   consoleappR   R   R   R7   t   ImportErrort   QueueRC   t   dictRO   RR   t   updateRP   RQ   t   sett   keysR   t   launch_instancet   maint   launch_new_instanceRJ   (    (    (    s4   lib/python2.7/site-packages/jupyter_client/runapp.pyt   <module>   s4   :J