ó
‹²,]c           @   sÏ   d  Z  d d l Z d d l j Z d d l 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 d d l m Z m Z m Z m Z d d	 l m Z m Z d
 e f d „  ƒ  YZ d S(   s    
Kernel spec for Spyder kernels
iÿÿÿÿN(   t
   KernelSpec(   t	   SAFE_MODEt   get_module_source_patht   running_under_pytest(   t   CONF(   t   to_unicode_from_fs(   t   is_python_interpreter(   t   PY2t	   iteritemst   to_text_stringt   to_binary_string(   t   add_pathlist_to_PYTHONPATHt   get_python_executablet   SpyderKernelSpecc           B   s8   e  Z d  Z e d „ Z e d „  ƒ Z e d „  ƒ Z RS(   s   Kernel spec for Spyder kernelsc         K   sV   t  t |  ƒ j |   | |  _ t r+ d n d |  _ t r@ d n d |  _ d |  _ d  S(   Ns   Python 2 (Spyder)s   Python 3 (Spyder)t   python2t   python3t    (   t   superR   t   __init__t	   is_cythonR   t   display_namet   languaget   resource_dir(   t   selfR   t   kwargs(    (    s>   lib/python2.7/site-packages/spyder/utils/ipython/kernelspec.pyR      s
    	c         C   sø   t  j d d ƒ r t ƒ  } nv t j j d d ƒ t  j d d ƒ } t | ƒ s” t ƒ  } t  j d d d ƒ t  j d d t	 ƒ t  j d d t
 ƒ n  t j d k rß t j | ƒ } t j | d ƒ } t j | ƒ rß | } qß n  | d	 d
 d d g } | S(   s   Command to start kernelst   main_interpretert   defaultt   VIRTUAL_ENVt
   executableR   t   customt   nts   pythonw.exes   -ms   spyder_kernels.consoles   -fs   {connection_file}N(   R   t   getR   t   ost   environt   popt   NoneR   t   sett   Truet   Falset   namet   ospt   dirnamet   joint   isfile(   R   t   pyexect
   dir_pyexect   pyexec_wt
   kernel_cmd(    (    s>   lib/python2.7/site-packages/spyder/utils/ipython/kernelspec.pyt   argv%   s(    		c         C   sû  t  j d d d g  ƒ} t  j d d ƒ } t g  | d t d t ƒ} t  j d d ƒ } t rÌ | } x@ | D]8 } y | j d ƒ Wqk t k
 r¢ | j | ƒ qk Xqk W| | k rÌ t  j	 d d | ƒ qÌ n  i | d	 6t  j d d
 ƒ d 6t  j d d ƒ d 6d j
 | ƒ d 6t  j d d ƒ d 6t  j d d ƒ d 6t  j d d ƒ d 6t  j d d ƒ d 6t  j d d ƒ d 6t  j d d ƒ d 6t  j d d ƒ d 6t  j d d ƒ d  6t  j d d! ƒ d" 6t  j d d# ƒ d$ 6t  j d d% ƒ d& 6t  j d d' ƒ d( 6t  j d d) ƒ d* 6t  j d d+ ƒ d, 6t  j d d- ƒ d. 6|  j d/ 6t ƒ  p@t d0 6t  j d d1 ƒ d2 6} | j | ƒ x t | ƒ D] \ } }	 t rãy t |	 ƒ }
 Wn1 t k
 rÉy t |	 ƒ }
 WqÊd3 }
 qÊXn Xt |
 d4 d ƒ| | <qtt |	 ƒ | | <qtW| S(5   s   Env vars for kernelst   maint   spyder_pythonpathR   R   t
   ipyconsolet   drop_envs   umr/namelists   utf-8t   SPY_EXTERNAL_INTERPRETERs   umr/enabledt   SPY_UMR_ENABLEDs   umr/verboset   SPY_UMR_VERBOSEt   ,t   SPY_UMR_NAMELISTt   ipython_consoles   startup/run_linest   SPY_RUN_LINES_Ot   pylabt   SPY_PYLAB_Os   pylab/backendt   SPY_BACKEND_Os   pylab/autoloadt   SPY_AUTOLOAD_PYLAB_Os   pylab/inline/figure_formatt   SPY_FORMAT_Os   pylab/inline/bbox_inchest   SPY_BBOX_INCHES_Os   pylab/inline/resolutiont   SPY_RESOLUTION_Os   pylab/inline/widtht   SPY_WIDTH_Os   pylab/inline/heightt   SPY_HEIGHT_Os   startup/use_run_filet   SPY_USE_FILE_Os   startup/run_filet   SPY_RUN_FILE_Ot   autocallt   SPY_AUTOCALL_Ot   greedy_completert   SPY_GREEDY_Ot   jedi_completert
   SPY_JEDI_Ot   symbolic_matht   SPY_SYMPY_Ot   SPY_RUN_CYTHONt   SPY_TESTINGt   hide_cmd_windowst   SPY_HIDE_CMDR   t   encoding(   R   R   R   R%   R&   R   t   encodet   UnicodeDecodeErrort   removeR$   R*   R   R   R   t   updateR   R	   R   R
   (   R   t   pathlistt   default_interpretert   pypatht   umr_namelistt   original_listt   umr_nt   env_varst   keyt   vart   unicode_var(    (    s>   lib/python2.7/site-packages/spyder/utils/ipython/kernelspec.pyt   envH   sp    		
	
	
	
	

	(   t   __name__t
   __module__t   __doc__R&   R   t   propertyR0   Rb   (    (    (    s>   lib/python2.7/site-packages/spyder/utils/ipython/kernelspec.pyR      s   #(   Re   R    t   os.patht   pathR(   t   jupyter_client.kernelspecR    t   spyder.config.baseR   R   R   t   spyder.config.mainR   t   spyder.utils.encodingR   t   spyder.utils.programsR   t   spyder.py3compatR   R   R	   R
   t   spyder.utils.miscR   R   R   (    (    (    s>   lib/python2.7/site-packages/spyder/utils/ipython/kernelspec.pyt   <module>	   s   "