
    JeU                        d Z ddlZddlmZ ddlZddlmZ ddlm	Z	  ed      df ed      df ed	      d
f ed      df ed      df ed      df ed      df ed      df ed      df ed      df ed      df ed      df ed      df ed      d f ed!      d"f ed#      d$f ed%      d&f ed'      d(f ed)      d*f ed+      d,f ed-      d.f ed/      d0f ed1      d2f ed3      d4fgZ
d5 ed6      z  Z ee	j                  j                  j                               Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Zd? Zd@ ZdA ZdB Zy)Cz*
Utilities to define configuration values
    N)_)iofuncszPython files).py.pywz.ipyzCython/Pyrex files).pyxz.pxdz.pxizC files).c.hz	C++ files)z.cc.cppz.cxxr	   z.hhz.hppz.hxxzOpenCL files)z.clzFortran files)z.fz.forz.f77z.f90z.f95z.f2kz.f03z.f08z	IDL files)z.prozMATLAB files)z.mzJulia files).jlz
Yaml files)z.yamlz.ymlzPatch and diff files)z.patchz.diffz.rejzBatch files).batz.cmdz
Text files).txtzreStructuredText files)r   z.rstzgettext files)z.poz.potz
NSIS files)z.nsiz.nshzWeb page files)z.scssz.cssz.htm.htmlz	XML files)z.xmlzJavascript files).jsz
Json files).jsonzIPython notebooks).ipynbzEnaml files)z.enamlzConfiguration files)z.propertiesz.session.iniz.infz.regz.cfgz.desktopzMarkdown files).mdz%s (*)z	All filesc                 0    | ddj                  |      dS )Nz (*z *))join)titleftypess     5/usr/lib/python3/dist-packages/spyder/config/utils.py_create_filterr   ?   s    		& 122    c                     g }| D ]   \  }}|j                  t        ||             " |j                  t               dj                  |      S )Nz;;)appendr   
ALL_FILTERr   )	filetypesfiltersr   r   s       r   _get_filtersr!   C   sH    G" 6v~eV456NN:99Wr   c                 :    g }| D ]  \  }}|t        |      z  } |S )N)list)r   
ftype_list_titler   s       r   _get_extensionsr&   K   s.    J# #d6l"
#r   c                     ddl m}  g }| j                         D ]  }|d   }|s|D cg c]  }|j                  d      r| }}|D cg c]  }|j                  d      s|dd  }}|D cg c]  }|j	                  d      r| }}|t        |      z   t        |      z   } t        t        t        |                  S c c}w c c}w c c}w )z5Return all file type extensions supported by Pygmentsr   N   *   z_*)pygments.lexerslexersget_all_lexers
startswithendswithr#   sortedset)r,   
extensionslx
lexer_extsle
other_extss         r   _get_pygments_extensionsr7   R   s     %J##% JU
 (2Ls9K"LJL ,6LRs9K"QR&LJL'1KT9J"KJK#d:&66j9IIJJ $s:'(( M MKs"   CC	C C-CCc                 L    |st         S | D ]  \  }}||v st        ||      c S  y)z*Return filter associated to file extension )r   r   )r   extr   r   s       r   
get_filterr;   l   s7    " v&=!%00 r   c                      t         j                  dk(  rg } n	 t               } g d}| D cg c]	  }||vs| }}t	        ||z         }t        d      |f}|gt        z   S # t        $ r g } Y Jw xY wc c}w )z*Get all file types supported by the Editornt)r   z.Rr   r   r   r   r   r   r
   r   z.datz.csvz.tsvr   r   r   r   r	   r   zSupported text files)osnamer7   	Exceptiontupler   EDIT_FILETYPES)supported_extsfavorite_extsr:   r6   all_extstext_filetypess         r   get_edit_filetypesrG   w   s     
ww$	 57N;M "0L#3m3K#LJL]Z/0H./:Nn,,  	 N	  Ms   
A 	A0A0A-,A-c                  ,    t               } t        |       S )zS
    Return filters associated with the file types
    supported by the Editor
    )rG   r!   edit_filetypess    r   get_edit_filtersrK      s    
 ()N''r   c                  4    t               } t        |       dgz   S )zV
    Return extensions associated with the file types
    supported by the Editor
    r9   )rG   r&   rI   s    r   get_edit_extensionsrM      s    
 ()N>*B4//r   c                      t         j                  j                  d      r4t        j                  d      rt        d      j                         } d| v ryyy)z8Detect if we are running in an Ubuntu-based distributionlinuxz/etc/lsb-releaseUbuntuTF)sysplatformr.   ospisfileopenread)release_infos    r   	is_ubunturX      sE    
||w'CJJ7I,J./446|#r   c                      t         j                  j                  d      rQt        j                  j                  dd      } | r.g d}t        |D cg c]  }| j                  |       c}      ryyyyc c}w )z/Detect if we are running in a Gtk-based desktoprO   XDG_CURRENT_DESKTOPr9   )UnityGNOMEXFCETF)rQ   rR   r.   r>   environgetany)xdg_desktopgtk_desktopsds      r   is_gtk_desktoprd      sa    
||w'jjnn%:B?5L|D!K**1-DE Es   A2c                      t         j                  j                  d      r)t        j                  j                  dd      } | rd| v ryyyy)z)Detect if we are running in a KDE desktoprO   rZ   r9   KDETF)rQ   rR   r.   r>   r^   r_   )ra   s    r   is_kde_desktoprg      s@    
||w'jjnn%:B?#r   c                  t    t        j                  t        j                  t        j                  d            } | S )zn
    Detect if we are running under Anaconda.

    Taken from https://stackoverflow.com/a/47610844/438386
    z
conda-meta)rS   existsr   rQ   prefix)is_condas    r   is_anacondarl      s&     zz#((3::|<=HOr   )__doc__r>   os.pathpathrS   rQ   spyder.config.baser   spyder_kernels.utilsr   rB   r   r#   iofunctionsload_extensionsvalues
IMPORT_EXTr   r!   r&   r7   r;   rG   rK   rM   rX   rd   rg   rl    r   r   <module>rw      s   
  
   ( ~/067y\< {^IJ~	" * +{^Z ~!}x |_() ;<}'(|_i  "23)|_&'=>{^YH%|_j![)}{#  < =)$5< +&
 '%%55<<>?
3)4-0(0	 r   