ó
)Î]c           @   sŹ   d  Z  d d l m Z d d l Z d d l j Z d d l Z d d l Z e j	 d d k Z
 d   Z d   Z d   Z d	   Z d
   Z d   Z e d k r¨ e   n  d S(   s4   
File used to start kernels for the IPython Console
i˙˙˙˙(   t   LooseVersionNi    t   2c          C   s   t  j t  }  t  j |   } t  j | d  } x# d t j k rU t j j d  q3 Wt j |  d d l	 } y t j j |  Wn t
 k
 r n Xd S(   s*   Import our customizations into the kernel.t	   customizet    i˙˙˙˙N(   t   ospt   dirnamet   __file__t   joint   syst   patht   removet   sitet
   addsitedirt   spydercustomizet
   ValueError(   t   heret   parentt   customize_dirR   (    (    s;   lib/python2.7/site-packages/spyder_kernels/console/start.pyt   import_spydercustomize   s    c         C   s!   y t  |   t SWn t SXd S(   sc   
    Simpler version of spyder.utils.programs.is_module_installed
    to improve startup time.
    N(   t
   __import__t   Truet   False(   t   module_name(    (    s;   lib/python2.7/site-packages/spyder_kernels/console/start.pyt   is_module_installed0   s
    
c         C   s(   |  d k	 r d j |   } n d } | S(   s   Sympy configurationsK   
from sympy.interactive import init_session
init_session()
%matplotlib {0}
s;   
from sympy.interactive import init_session
init_session()
N(   t   Nonet   format(   t   mpl_backendt   lines(    (    s;   lib/python2.7/site-packages/spyder_kernels/console/start.pyt   sympy_config=   s    c    "      C   s  d d l  }  d d l m } d d l m } m } y. t j |   d  } | d d g |  } Wn |   } n X|   } t j	 j
 d  d	 k } | rŠ t | j _ n  d
 | j _ t j	 j
 d  d	 k } t sâ | | j _ n  t j	 j
 d  }	 |	 d k	 r1g  |	 j d  D] }
 |
 j   ^ q| j _ n g  | j _ d } | j j j |  | j j j d  | j j j d  t |  j  t d  k  r d } n d } i dK d 6d | 6d d 6d d 6d d 6d d 6| j _ d } t d  rLt j	 j
 d   } t j	 j
 d!  } | d	 k r| d k	 r| d" k r~t d#  rKd$ } qt d%  r`d& } qt d'  rud( } qd) } n d* } i	 d) d+ 6| d" 6d$ d, 6d& d- 6d. d/ 6d0 d1 6d2 d3 6d4 d5 6d( d6 6} | | } | d) k rt j	 j
 d7  } i d8 d+ 6d9 d" 6} | d k	 r$| | | j _ n  t j	 j
 d:  } | d k	 r[t |  | j j | <n  t t j	 j
 d;   } t t j	 j
 d<   } | d k	 rź| d k	 rź| | f | j j d <n  t j	 j
 d=  } | d	 k rŕd> n d } | j j  j! i | d? 6 qn d) } t j	 j
 d@  d	 k } dA } | j j j | j" | |   n  t j	 j
 dB  d	 k } | rt dC  r| j j j dD  n  t j	 j
 dE  } t j	 j
 dF  } | d	 k r×| d k	 r×| | j _# n  t j	 j
 dG  } | d k	 r
t$ |  | j% _& n  d* | j% _' t j	 j
 dH  d	 k } | | j _( t j	 j
 dI  d	 k }  |  rt dJ  rt) |  }! | j j j |!  n  | j* |  | S(L   s3   Create a config object with IPython kernel options.i˙˙˙˙N(   t   get_ipython_dir(   t   Configt   load_pyconfig_filest   profile_defaults   ipython_config.pys   ipython_kernel_config.pyt   SPY_TESTINGR   t   Plaint
   SPY_JEDI_Ot   SPY_RUN_LINES_Ot   ,s"   import sys;sys.argv = [''];del syss-   get_ipython().kernel._load_autoreload_magic()s&   get_ipython().kernel._load_wurlitzer()s   4.5s   savefig.dpis
   figure.dpig      @g      @s   figure.figsizeiH   i
   s	   font.sizeg      Ŕ?s   figure.subplot.bottomt   whites   figure.facecolors   figure.edgecolort
   matplotlibt   SPY_PYLAB_Ot   SPY_BACKEND_Ot   1t   PyQt5t   qt5t   PyQt4t   qt4t   _tkintert   tkt   inlineR   t   0R   t   3t   osxt   4t   gtk3t   5t   gtkt   6t   wxt   7t   8t   SPY_FORMAT_Ot   pngt   svgt   SPY_RESOLUTION_Ot   SPY_WIDTH_Ot   SPY_HEIGHT_Ot   SPY_BBOX_INCHES_Ot   tightt   bbox_inchest   SPY_AUTOLOAD_PYLAB_Os1   get_ipython().kernel._set_mpl_backend('{0}', {1})t   SPY_RUN_CYTHONt   Cythons   %reload_ext Cythont   SPY_USE_FILE_Ot   SPY_RUN_FILE_Ot   SPY_AUTOCALL_Ot   SPY_GREEDY_Ot   SPY_SYMPY_Ot   sympy(   g      @g      @(+   t	   ipykernelt   IPython.core.applicationR   t   traitlets.config.loaderR   R   R   R   t   ost   environt   getR   t   HistoryAccessort   enabledt   InteractiveShellt   xmodet   PY2t   IPCompletert   use_jediR   t   splitt   stript   IPKernelAppt
   exec_linest   appendR    t   __version__t   InlineBackendt   rcR   t   figure_formatt   floatt   print_figure_kwargst   updateR   t   file_to_runt   intt   ZMQInteractiveShellt   autocallt   banner1t   greedyR   t   _merge("   RO   R   R   R   t   profile_patht   cfgt   spy_cfgt   testingt   jedi_ot   run_lines_ot   xt
   clear_argvt
   dpi_optionR   t   pylab_ot	   backend_ot   auto_backendt   backendst   format_ot   formatst   resolution_ot   width_ot   height_ot   bbox_inches_oRE   t   autoload_pylab_ot   commandt
   run_cythont
   use_file_ot
   run_file_ot
   autocall_ot   greedy_ot   sympy_oR   (    (    s;   lib/python2.7/site-packages/spyder_kernels/console/start.pyt   kernel_configN   sÎ    	1	
				




c         C   s   t    } |  j   \ } } y d d l j } Wn d d l j } n X| j   } t | | d  | j |  } | j   ~ ~ d S(   s   
    Spyder's variable explorer magic

    Used to generate plots, histograms and images of the variables displayed
    on it.
    i˙˙˙˙Ni   (	   t   get_ipythonR\   t   guiqwt.pyplott   pyplott   matplotlib.pyplott   figuret   getattrt   user_nst   show(   t   linet   ipt   funcnamet   nameR   t   __fig__t	   __items__(    (    s;   lib/python2.7/site-packages/spyder_kernels/console/start.pyt   varexpý   s    	 
c          C   s'  y t  j j t j t   Wn t k
 r0 n Xy t   j d  Wn t	 k
 rX n Xd }  d } t
   x# d t  j k r t  j j d  qo Wd d l m } d d l m } | j   } | | _ y t   | _ Wn n X| j   | j j t  d d  l } | j | j j _ | j   d  S(   NR   R   t   __main__i˙˙˙˙(   R^   (   t   SpyderKernel(   R   R	   R
   R   R   R   R   t   localst   popt   KeyErrorR   t   ipykernel.kernelappR^   t   spyder_kernels.console.kernelR   t   instancet   kernel_classR   t   configt
   initializet   shellt   register_magic_functionR   t   pdbt   Pdbt   InteractiveTBt   debugger_clst   start(   t   __doc__t   __name__R^   R   t   kernelR§   (    (    s;   lib/python2.7/site-packages/spyder_kernels/console/start.pyt   main  s4    	
R   (   RŹ   t   distutils.versionR    RR   t   os.pathR	   R   R   R   t   versionRY   R   R   R   R   R   RŻ   R­   (    (    (    s;   lib/python2.7/site-packages/spyder_kernels/console/start.pyt   <module>   s   				Ż		1