ó
Ýā]c           @   sģ   d  d l  Z  d  d l Z d  d l Z d  d l m Z m Z d  d l m Z d  d l m	 Z	 d d l
 m Z d d l m Z m Z d d l m Z d	 e f d
     YZ e j Z d S(   iĸĸĸĸN(   t
   JupyterAppt
   base_flags(   t   IOLoop(   t   Unicodei   (   t   __version__(   t   KernelSpecManagert   NATIVE_KERNEL_NAME(   t   KernelManagert	   KernelAppc           B   sĒ   e  Z d  Z e Z d Z e e g Z i d d 6d d 6Z	 i e
 d d 6Z e e d d j d	 e  Z d d
  Z d   Z d   Z d   Z d   Z d   Z RS(   s3   Launch a kernel by name in a local subprocess.
    s$   Run a kernel locally in a subprocesss   KernelApp.kernel_namet   kernels   KernelManager.ipt   ipt   debugt   helps"   The name of a kernel type to startt   configc         C   s   t  t |   j |  t d |  j d |  j  |  _ d t j   } t	 j
 j |  j |  |  j _ t j   |  _ |  j j |  j  d  S(   Nt   kernel_nameR   s   kernel-%s.json(   t   superR   t
   initializeR   R   R   t   kmt   uuidt   uuid4t   ost   patht   joint   runtime_dirt   connection_fileR   t   currentt   loopt   add_callbackt   _record_started(   t   selft   argvt   cf_basename(    (    s7   lib/python2.7/site-packages/jupyter_client/kernelapp.pyR      s    c            sS   t  j d k r d S  f d   } x* t j t j g D] } t j | |  q5 Wd S(   s&   Shutdown on SIGTERM or SIGINT (Ctrl-C)t   ntNc            s     j  j   j |   d  S(   N(   R   t   add_callback_from_signalt   shutdown(   t   signot   frame(   R   (    s7   lib/python2.7/site-packages/jupyter_client/kernelapp.pyt   shutdown_handler-   s    (   R   t   namet   signalt   SIGTERMt   SIGINT(   R   R%   t   sig(    (   R   s7   lib/python2.7/site-packages/jupyter_client/kernelapp.pyt   setup_signals(   s
    c         C   s2   |  j  j d |  |  j j   |  j j   d  S(   Ns   Shutting down on signal %d(   t   logt   infoR   t   shutdown_kernelR   t   stop(   R   R#   (    (    s7   lib/python2.7/site-packages/jupyter_client/kernelapp.pyR"   2   s    c         C   sB   |  j  j } |  j j d |  |  j j d t j j |   d  S(   Ns   Connection file: %ss"   To connect a client: --existing %s(   R   R   R,   R-   R   R   t   basename(   R   t   cf(    (    s7   lib/python2.7/site-packages/jupyter_client/kernelapp.pyt   log_connection_info7   s    c         C   s;   t  j j d  } | d k	 r7 t | d   Wd QXn  d S(   sv   For tests, create a file to indicate that we've started

        Do not rely on this except in our own tests!
        t*   JUPYTER_CLIENT_TEST_RECORD_STARTUP_PRIVATEt   wbN(   R   t   environt   gett   Nonet   open(   R   t   fn(    (    s7   lib/python2.7/site-packages/jupyter_client/kernelapp.pyR   <   s    c         C   s]   |  j  j d |  j  z2 |  j j   |  j   |  j   |  j j   Wd  |  j j	   Xd  S(   Ns   Starting kernel %r(
   R,   R-   R   R   t   start_kernelR2   R+   R   t   startt   cleanup(   R   (    (    s7   lib/python2.7/site-packages/jupyter_client/kernelapp.pyR;   F   s    

N(   t   __name__t
   __module__t   __doc__R   t   versiont   descriptionR   R   t   classest   aliasesR   t   flagsR   R   t   tagt   TrueR   R7   R   R+   R"   R2   R   R;   (    (    (    s7   lib/python2.7/site-packages/jupyter_client/kernelapp.pyR      s"   
				
			
(   R   R'   R   t   jupyter_core.applicationR    R   t   tornado.ioloopR   t	   traitletsR   t    R   t
   kernelspecR   R   t   managerR   R   t   launch_instancet   main(    (    (    s7   lib/python2.7/site-packages/jupyter_client/kernelapp.pyt   <module>   s   D