
    G@dU                     4   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                                                  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dS )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                 8    | dd                     |          dS )Nz (*z *))join)titleftypess     3lib/python3.11/site-packages/spyder/config/utils.py_create_filterr   ?   s#    		& 1 1 1 122    c                     g }| D ](\  }}|                     t          ||                     )|                     t                     d                    |          S )Nz;;)appendr   
ALL_FILTERr   )	filetypesfiltersr   r   s       r   _get_filtersr!   C   s]    G" 6 6v~eV445555NN:99Wr   c                 >    g }| D ]\  }}|t          |          z  }|S )N)list)r   
ftype_list_titler   s       r   _get_extensionsr&   K   s2    J# # #d6ll"

r   c                  2   ddl m}  g }|                                 D ]R}|d         }|rFd |D             }d |D             }d |D             }|t          |          z   t          |          z   }St	          t          t          |                              S )z5Return all file type extensions supported by Pygmentsr   N   c                 <    g | ]}|                     d           |S )*
startswith.0les     r   
<listcomp>z,_get_pygments_extensions.<locals>.<listcomp>^   s)    LLLs9K9KL"LLLr   c                 L    g | ]!}|                     d           |dd         "S )r*      Nr+   r-   s     r   r0   z,_get_pygments_extensions.<locals>.<listcomp>b   s1    LLLRs9K9KL"QRR&LLLr   c                 <    g | ]}|                     d           |S )z_*)endswithr-   s     r   r0   z,_get_pygments_extensions.<locals>.<listcomp>c   s)    KKKT9J9JK"KKKr   )pygments.lexerslexersget_all_lexersr#   sortedset)r6   
extensionslx
lexer_exts
other_extss        r   _get_pygments_extensionsr>   R   s     %$$$$$J##%% J JU
 		J MLzLLLJ ML:LLLJKKzKKKJ#d:&6&66j9I9IIJ$s:''(((r   c                 T    |st           S | D ]\  }}||v rt          ||          c S dS )z*Return filter associated to file extension )r   r   )r   extr   r   s       r   
get_filterrB   l   sN     "  v&==!%00000  rr   c                      t           j        dk    rg } n"	 t                      } n# t          $ r g } Y nw xY wg dfd| D             }t	          |z             }t          d          |f}|gt          z   S )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   c                     g | ]}|v|	S  rF   )r.   rA   favorite_extss     r   r0   z&get_edit_filetypes.<locals>.<listcomp>   s#    LLL#3m3K3K#3K3K3Kr   zSupported text files)osnamer>   	Exceptiontupler   EDIT_FILETYPES)supported_extsr=   all_extstext_filetypesrG   s       @r   get_edit_filetypesrP   w   s     
w$	 577NN 	  	  	 NNN	 
; ; ;M MLLLLLLJ]Z/00H.//:Nn,,s   % 44c                  <    t                      } t          |           S )zS
    Return filters associated with the file types
    supported by the Editor
    )rP   r!   edit_filetypess    r   get_edit_filtersrT      s    
 ())N'''r   c                  D    t                      } t          |           dgz   S )zV
    Return extensions associated with the file types
    supported by the Editor
    r@   )rP   r&   rR   s    r   get_edit_extensionsrV      s$    
 ())N>**B4//r   c                      t           j                            d          r=t          j        d          r)t          d                                          } d| v rdS dS dS )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_ubuntura      s`    
|w'' CJ7I,J,J .//4466|##45ur   c                      t           j                            d          rGt          j                            dd          r#g d} t          fd| D                       rdS dS dS dS )z/Detect if we are running in a Gtk-based desktoprX   XDG_CURRENT_DESKTOPr@   )UnityGNOMEXFCEc                 :    g | ]}                     |          S rF   r+   )r.   dxdg_desktops     r   r0   z"is_gtk_desktop.<locals>.<listcomp>   s'    DDD!K**1--DDDr   TF)rZ   r[   r,   rH   environgetany)gtk_desktopsri   s    @r   is_gtk_desktoprn      s}    
|w'' jnn%:B?? 	555LDDDD|DDDEE tu5ur   c                      t           j                            d          r,t          j                            dd          } | rd| v rdS dS dS dS )z)Detect if we are running in a KDE desktoprX   rc   r@   KDETF)rZ   r[   r,   rH   rj   rk   )ri   s    r   is_kde_desktoprq      sW    
|w'' 
jnn%:B?? 	##tu5ur   c                  h    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)r\   existsr   rZ   prefix)is_condas    r   is_anacondarv      s&     z#(3:|<<==HOr   )__doc__rH   os.pathpathr\   rZ   spyder.config.baser   spyder_kernels.utilsr   rL   r   r#   iofunctionsload_extensionsvalues
IMPORT_EXTr   r!   r&   r>   rB   rP   rT   rV   ra   rn   rq   rv   rF   r   r   <module>r      s    
			       



             ( ( ( ( ( ( Q~/0Q67Qy\\< Q{^^IJQ~	"Q * +Q{^^Z Q~!Q}x Q|__()Q ;<Q}'(Q|__i Q  "23Q)Q|__&'Q=>Q{^^YQH%Q|__j!Q[)Q}{#Q  < =Q)$5< +&
 T'%5<<>>??
3 3 3    ) ) )4  - - -0( ( (0 0 0	 	 	         r   