ó
Ýà‹]c           @  sa  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 d  d l m Z m Z m Z m Z m Z d d l m Z d d l m Z y e Wn e k
 rÕ e Z n Xd	 e
 f d
 „  ƒ  YZ d e
 f d „  ƒ  YZ d e
 f d „  ƒ  YZ d e
 f d „  ƒ  YZ d e f d „  ƒ  YZ e d k r]e j  ƒ  n  d S(   iÿÿÿÿ(   t   print_functionN(   t   Application(   t
   JupyterAppt
   base_flagst   base_aliases(   t   Instancet   Dictt   Unicodet   Boolt   Listi   (   t   __version__(   t   KernelSpecManagert   ListKernelSpecsc           B  sv   e  Z e Z d  Z e e ƒ Z e e	 d d d e
 ƒZ i i i e
 d 6d 6d f d 6e d d 6Z d „  Z d	 „  Z RS(
   s%   List installed kernel specifications.t   helps7   output spec name and location as machine-readable json.t   configt   json_outputR   t   jsont   debugc         C  s   t  d |  d |  j ƒ S(   Nt   parentt   data_dir(   R   R   (   t   self(    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyt   _kernel_spec_manager_default'   s    c           sà   ˆ  j  j ƒ  } ˆ  j  j ƒ  } ˆ  j s¼ | s; t d ƒ d  St t | d d „  ƒd ƒ } ‡  f d †  } t d ƒ xf t | j ƒ  d | ƒD]) \ } } t d | j | ƒ | f ƒ qŒ Wn  t t	 j
 i | d 6d	 d
 ƒƒ d  S(   Ns   No kernels availablet   keyc         S  s
   t  |  ƒ S(   N(   t   len(   t   name(    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyt   <lambda>2   t    iÿÿÿÿc           sM   |  d } x6 t  ˆ  j ƒ D]% \ } } | j | ƒ r | | f Sq Wd | f S(   s+   sort key function for Jupyter path priorityi   iÿÿÿÿ(   t	   enumeratet   jupyter_patht
   startswith(   t   itemt   patht   idxt   prefix(   R   (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyt   path_key4   s
    
s   Available kernels:s
     %s    %st   kernelspecst   indenti   (   t   kernel_spec_managert   find_kernel_specst   get_all_specsR   t   printR   t   sortedt   itemst   ljustR   t   dumps(   R   t   pathst   specst   name_lenR"   t
   kernelnameR   (    (   R   s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyt   start*   s    	
	
%$
(   t   __name__t
   __module__R
   t   versiont   descriptionR   R   R%   R   t   Falset   TrueR   R   t   flagsR   R1   (    (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyR      s   	
	t   InstallKernelSpecc           B  s?  e  Z e Z d  Z d Z d Z e e ƒ Z	 d „  Z
 e ƒ  Z e d d e d d ƒZ d „  Z e e d e d d	 ƒZ e d d e d d
 ƒZ e e d e d d ƒZ i d d 6d d 6Z e j e ƒ i i i e d 6d 6d f d 6i i e d 6d 6d f d 6i i e j d 6d 6d f d 6e d d 6Z d „  Z d „  Z RS(   sA  Install a kernel specification directory.
    
    Given a SOURCE DIRECTORY containing a kernel spec,
    jupyter will copy that directory into one of the Jupyter kernel directories.
    The default is to install kernelspecs for all users.
    `--user` can be specified to install a kernel only for the current user.
    s>   
    jupyter kernelspec install /path/to/my_kernel --user
    s1   jupyter kernelspec install SOURCE_DIR [--options]c         C  s   t  d |  j ƒ S(   NR   (   R   R   (   R   (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyR   V   s    R   R   R   s&   Install the kernel spec with this namec         C  s   t  j j |  j ƒ S(   N(   t   osR   t   basenamet	   sourcedir(   R   (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyt   _kernel_name_default]   s    s‚   
        Try to install the kernel spec to the per-user directory instead of
        the system or environment directory.
        s   Specify a prefix to install to, e.g. an env.
        The kernelspec will be installed in PREFIX/share/jupyter/kernels/
        s0   Replace any existing kernel spec with this name.s   InstallKernelSpec.kernel_nameR   s   InstallKernelSpec.prefixR!   t   userR9   s'   Install to the per-user kernel registryt   replacesE   Install to Python's sys.prefix. Useful in conda/virtual environments.s
   sys-prefixR   c         C  sM   t  t |  ƒ j | ƒ |  j r2 |  j d |  _ n t d ƒ |  j d ƒ d  S(   Ni    s   No source directory specified.i   (   t   superR9   t   parse_command_linet
   extra_argsR<   R(   t   exit(   R   t   argv(    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyRA   ~   s
    	
c      
   C  s
  |  j  r" |  j r" |  j d ƒ n  y; |  j j |  j d |  j d |  j  d |  j d |  j ƒWn¦ t k
 r} | j	 t	 j
 k rÃ t | d t j ƒ|  j  s³ t d d t j ƒn  |  j d ƒ n< | j	 t	 j k rÿ t d	 | j d t j ƒ|  j d ƒ n  ‚  n Xd  S(
   NsC   Can't specify both user and prefix. Please choose one or the other.t   kernel_nameR>   R!   R?   t   files4   Perhaps you want to install with `sudo` or `--user`?i   s&   A kernel spec is already present at %s(   R>   R!   RC   R%   t   install_kernel_specR<   RE   R?   t   OSErrort   errnot   EACCESR(   t   syst   stderrt   EEXISTt   filename(   R   t   e(    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyR1   ‡   s$    				(   R2   R3   R
   R4   R5   t   examplest   usageR   R   R%   R   R   R<   R7   RE   R=   R   R6   R>   R!   R?   t   aliasest   updateR   RK   R   R8   RA   R1   (    (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyR9   G   s:   							



		t   RemoveKernelSpecc           B  s¢   e  Z e Z d  Z d Z e e d e d d ƒZ	 e
 e ƒ  ƒ Z e e ƒ Z d „  Z i i i e d 6d 6e	 j d ƒ f d 6Z e j e j ƒ d	 „  Z d
 „  Z RS(   s/   Remove one or more Jupyter kernelspecs by name.s1   jupyter kernelspec remove python2 [my_kernel ...]R   R   s-   Force removal, don't prompt for confirmation.c         C  s   t  d |  j d |  ƒ S(   NR   R   (   R   R   (   R   (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyR   §   s    t   forceRT   t   fc         C  sK   t  t |  ƒ j | ƒ |  j r: t t |  j ƒ ƒ |  _ n |  j d ƒ d  S(   Ns   No kernelspec specified.(   R@   RT   RA   RB   R)   t   sett
   spec_namesRC   (   R   RD   (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyRA   ¯   s    	c         C  s{  t  |  j _ |  j j ƒ  } t |  j ƒ j t | ƒ ƒ } | r\ |  j d d j | ƒ ƒ n  |  j	 sÙ t
 d ƒ x2 |  j D]' } t
 d | j d ƒ | | f ƒ qy Wt d t |  j ƒ ƒ } | j ƒ  j d ƒ sÙ d  Sn  x› |  j D] } y |  j j | ƒ } Wn^ t k
 r_} | j t j k rYt
 | d t j ƒt
 d	 d t j ƒ|  j d
 ƒ q`‚  n X|  j j d | ƒ qã Wd  S(   Ns    Couldn't find kernel spec(s): %ss   , s   Kernel specs to remove:s     %s	%si   s   Remove %i kernel specs [y/N]: t   yRF   s   Perhaps you want sudo?i   s
   Removed %s(   R6   R%   t   ensure_native_kernelR&   RW   RX   t
   differenceRC   t   joinRU   R(   R+   t	   raw_inputR   t   lowerR   t   remove_kernel_specRH   RI   RJ   RK   RL   t   logt   info(   R   t
   spec_pathst   missingR   t   answerRE   R   RO   (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyR1   ·   s,    	
%(   R2   R3   R
   R4   R5   RP   R   R6   R7   RU   R	   R   RX   R   R   R%   R   t   get_metadataR8   RS   R   RA   R1   (    (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyRT   œ   s   		'	t   InstallNativeKernelSpecc           B  sv   e  Z e Z d  Z e e ƒ Z d „  Z e	 e
 d e d d ƒZ i i i e d 6d 6d f d 6e d d 6Z d	 „  Z RS(
   sG   [DEPRECATED] Install the IPython kernel spec directory for this Python.c         C  s   t  d |  j ƒ S(   NR   (   R   R   (   R   (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyR   Ø   s    R   R   s‚   
        Try to install the kernel spec to the per-user directory instead of
        the system or environment directory.
        R>   Rf   s'   Install to the per-user kernel registryR   c         C  sð   |  j  j d ƒ y d d l m } Wn1 t k
 rW t d d t j ƒ|  j d ƒ n Xy | j	 |  j
 d |  j ƒWnt t k
 rë } | j t j k rÛ t | d t j ƒ|  j sË t d d t j ƒn  |  j d ƒ n  |  j | ƒ n Xd  S(	   Nsˆ   `jupyter kernelspec install-self` is DEPRECATED as of 4.0. You probably want `ipython kernel install` to install the IPython kernelspec.iÿÿÿÿ(   t
   kernelspecs0   ipykernel not available, can't install its spec.RF   i   R>   s4   Perhaps you want to install with `sudo` or `--user`?(   R`   t   warningt	   ipykernelRg   t   ImportErrorR(   RK   RL   RC   t   installR%   R>   RH   RI   RJ   (   R   Rg   RO   (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyR1   ç   s    	(   R2   R3   R
   R4   R5   R   R   R%   R   R   R6   R7   R>   R   R8   R1   (    (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyRf   Ó   s   		
t   KernelSpecAppc           B  s°   e  Z e Z d  Z d Z e i e e j j ƒ  d f d 6e	 e	 j j ƒ  d f d 6e
 d f d 6e
 e
 j j ƒ  d f d 6e e j j ƒ  d f d 6ƒ Z i  Z i  Z d	 „  Z RS(
   s   jupyter kernelspecs%   Manage Jupyter kernel specifications.i    t   listRk   s   Alias for removet	   uninstallt   removes   install-selfc         C  sb   |  j  d  k rQ t d t |  j ƒ ƒ t ƒ  |  j ƒ  |  j ƒ  |  j d ƒ n |  j  j ƒ  Sd  S(   Ns0   No subcommand specified. Must specify one of: %si   (	   t   subappt   NoneR(   Rm   t   subcommandst   print_descriptiont   print_subcommandsRC   R1   (   R   (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyR1   	  s    

(   R2   R3   R
   R4   R   R5   R   R   t
   splitlinesR9   RT   Rf   Rr   RR   R8   R1   (    (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyRl   ù   s    t   __main__(!   t
   __future__R    RI   t   os.pathR:   RK   R   t   traitlets.config.applicationR   t   jupyter_core.applicationR   R   R   t	   traitletsR   R   R   R   R	   R   R
   Rg   R   R]   t	   NameErrort   inputR   R9   RT   Rf   Rl   R2   t   launch_instance(    (    (    s;   lib/python2.7/site-packages/jupyter_client/kernelspecapp.pyt   <module>   s(   (
,U7&