ó
‹²,]c           @   sS  d  Z  d d l Z d d l j Z d d l Z d d l m Z d d l m	 Z	 e	 d ƒ da f e	 d	 ƒ db f e	 d ƒ dc f e	 d ƒ dd f e	 d ƒ de f e	 d ƒ df f e	 d  ƒ dg f e	 d" ƒ dh f e	 d$ ƒ di f e	 d& ƒ dj f e	 d) ƒ dk f e	 d- ƒ dl f e	 d0 ƒ dm f e	 d2 ƒ dn f e	 d4 ƒ do f e	 d7 ƒ dp f e	 d: ƒ dq f e	 d? ƒ dr f e	 dA ƒ ds f e	 dC ƒ dt f e	 dE ƒ du f e	 dG ƒ dv f e	 dI ƒ dw f e	 dQ ƒ dx f g Z
 dS e	 dT ƒ Z e e j j j ƒ  ƒ Z dU „  Z dV „  Z dW „  Z dX „  Z dY „  Z dZ „  Z d[ „  Z d\ „  Z d] „  Z d^ „  Z d_ „  Z d` „  Z d S(y   s*   
Utilities to define configuration values
iÿÿÿÿN(   t   iofuncs(   t   _s   Python filess   .pys   .pyws   .ipys   Cython/Pyrex filess   .pyxs   .pxds   .pxis   C filess   .cs   .hs	   C++ filess   .ccs   .cpps   .cxxs   .hhs   .hpps   .hxxs   OpenCL filess   .cls   Fortran filess   .fs   .fors   .f77s   .f90s   .f95s   .f2ks	   IDL filess   .pros   MATLAB filess   .ms   Julia filess   .jls
   Yaml filess   .yamls   .ymls   Patch and diff filess   .patchs   .diffs   .rejs   Batch filess   .bats   .cmds
   Text filess   .txts   reStructuredText filess   .rsts   gettext filess   .pos   .pots
   NSIS filess   .nsis   .nshs   Web page filess   .scsss   .csss   .htms   .htmls	   XML filess   .xmls   Javascript filess   .jss
   Json filess   .jsons   IPython notebookss   .ipynbs   Enaml filess   .enamls   Configuration filess   .propertiess   .sessions   .inis   .infs   .regs   .cfgs   .desktops   Markdown filess   .mds   %s (*)s	   All filesc         C   s   d |  d j  | ƒ f S(   Ns   %s (*%s)s    *(   t   join(   t   titlet   ftypes(    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   _create_filter>   s    c         C   sM   g  } x* |  D]" \ } } | j  t | | ƒ ƒ q W| j  t ƒ d j | ƒ S(   Ns   ;;(   t   appendR   t
   ALL_FILTERR   (   t	   filetypest   filtersR   R   (    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   _get_filtersB   s
    c         C   s1   g  } x$ |  D] \ } } | t  | ƒ 7} q W| S(   N(   t   list(   R   t
   ftype_listt   _titleR   (    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   _get_extensionsJ   s    c          C   së   d d l  j }  g  } x½ |  j ƒ  D]¯ } | d } | r" g  | D] } | j d ƒ s? | ^ q? } g  | D] } | j d ƒ rg | d ^ qg } g  | D] } | j d ƒ s“ | ^ q“ } | t | ƒ t | ƒ } q" q" Wt t t | ƒ ƒ ƒ S(   s5   Return all file type extensions supported by PygmentsiÿÿÿÿNi   t   *i   s   _*(   t   pygments.lexerst   lexerst   get_all_lexerst
   startswitht   endswithR   t   sortedt   set(   R   t
   extensionst   lxt
   lexer_extst   let
   other_exts(    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   _get_pygments_extensionsQ   s    
(,(!c         C   sB   | s
 t  Sx1 |  D]% \ } } | | k r t | | ƒ Sq Wd Sd S(   s*   Return filter associated to file extensiont    N(   R   R   (   R   t   extR   R   (    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt
   get_filterk   s    c          C   sÐ   t  j d k r g  }  n' y t ƒ  }  Wn t k
 r> g  }  n Xd d d d d d d d	 d
 d d d d d d d d d d g } g  |  D] } | | k r… | ^ q… } t | | ƒ } t d ƒ | f } | g t S(   s*   Get all file types supported by the Editort   nts   .pys   .Rs   .jls   .ipynbs   .mds   .pyws   .pyxs   .cs   .cpps   .jsons   .dats   .csvs   .tsvs   .txts   .inis   .htmls   .jss   .hs   .bats   Supported text files(   t   ost   nameR   t	   Exceptiont   tupleR   t   EDIT_FILETYPES(   t   supported_extst   favorite_extsR   R   t   all_extst   text_filetypes(    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   get_edit_filetypesv   s    	
%c          C   s   t  ƒ  }  t |  ƒ S(   sS   
    Return filters associated with the file types
    supported by the Editor
    (   R*   R
   (   t   edit_filetypes(    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   get_edit_filtersŽ   s    	c          C   s   t  ƒ  }  t |  ƒ d g S(   sV   
    Return extensions associated with the file types
    supported by the Editor
    R   (   R*   R   (   R+   (    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   get_edit_extensions—   s    	c          C   sR   t  j j d ƒ rJ t j d ƒ rJ t d ƒ j ƒ  }  d |  k rC t St Sn t Sd S(   s8   Detect if we are running in an Ubuntu-based distributiont   linuxs   /etc/lsb-releaset   UbuntuN(	   t   syst   platformR   t   ospt   isfilet   opent   readt   Truet   False(   t   release_info(    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt	   is_ubuntu£   s    !c          C   s~   t  j j d ƒ rv t j j d d ƒ }  |  ro d d d g } t g  | D] } |  j | ƒ ^ qF ƒ rh t St Sqz t Sn t Sd S(   s/   Detect if we are running in a Gtk-based desktopR.   t   XDG_CURRENT_DESKTOPR   t   Unityt   GNOMEt   XFCEN(	   R0   R1   R   R!   t   environt   gett   anyR6   R7   (   t   xdg_desktopt   gtk_desktopst   d(    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   is_gtk_desktop¯   s    (c          C   sS   t  j j d ƒ rK t j j d d ƒ }  |  rD d |  k r= t St SqO t Sn t Sd S(   s)   Detect if we are running in a KDE desktopR.   R:   R   t   KDEN(   R0   R1   R   R!   R>   R?   R6   R7   (   RA   (    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   is_kde_desktop¿   s    c          C   s"   t  j t  j t j d ƒ ƒ }  |  S(   sn   
    Detect if we are running under Anaconda.

    Taken from https://stackoverflow.com/a/47610844/438386
    s
   conda-meta(   R2   t   existsR   R0   t   prefix(   t   is_conda(    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   is_anacondaÎ   s    (   s   .pys   .pyws   .ipy(   s   .pyxs   .pxds   .pxi(   s   .cs   .h(   s   .ccs   .cpps   .cxxs   .hs   .hhs   .hpps   .hxx(   s   .cl(   s   .fs   .fors   .f77s   .f90s   .f95s   .f2k(   s   .pro(   s   .m(   s   .jl(   s   .yamls   .yml(   s   .patchs   .diffs   .rej(   s   .bats   .cmd(   s   .txt(   s   .txts   .rst(   s   .pos   .pot(   s   .nsis   .nsh(   s   .scsss   .csss   .htms   .html(   s   .xml(   s   .js(   s   .json(   s   .ipynb(   s   .enaml(   s   .propertiess   .sessions   .inis   .infs   .regs   .cfgs   .desktop(   s   .md(   t   __doc__R!   t   os.patht   pathR2   R0   t   spyder_kernels.utilsR    t   spyder.config.baseR   R%   R   R   t   iofunctionst   load_extensionst   valuest
   IMPORT_EXTR   R
   R   R   R   R*   R,   R-   R9   RD   RF   RJ   (    (    (    s2   lib/python2.7/site-packages/spyder/config/utils.pyt   <module>	   sX   													