
    G@dd                         d Z ddlZddlZddlZddlZddlmZ d Z G d de          Z	 G d de	          Z
 G d	 d
e	          Z G d de	          Z G d de	          ZdS )z/Utility functions for tesing Spyder installers.    N)get_conf_pathc                  v    t          t          t          j                            dd                              S )z/Return True if currently running installer testINSTALLER_TEST0)boolintosenvironget     7lib/python3.11/site-packages/spyder/utils/installers.pyrunning_installer_testr      s)    BJNN#3S99::;;;r   c                   r    e Zd ZdZ ej        d          Ze                    ej                   d Z	d Z
dS )SpyderInstallerErrorz[
    Base class for installer error; do not use directly.
    Exit Spyder with code 1.
    	Installerc                     t                      sd S |                     |          }| j                            |dz   d           t	          d          )N
T)
stack_info   )r   _msgloggererror
SystemExitselfmsgs     r   __init__zSpyderInstallerError.__init__   sO    %'' 	Fiinn#*666mmr   c                     t                      )N)NotImplementedErrorr   s     r   r   zSpyderInstallerError._msg(   s    !###r   N)__name__
__module____qualname____doc__logging	getLoggerr   setLevelDEBUGr   r   r   r   r   r   r      sd          W{++F
OOGM"""	 	 	$ $ $ $ $r   r   c                       e Zd ZdZd ZdS )InstallerMissingDependencieszError for missing dependenciesc                 b    |                     dd          }dt          j        |d          z   }|S )Nz<br>r   zMissing dependencies  replacetextwrapindentr   s     r   r   z!InstallerMissingDependencies._msg.   s0    kk&$''$xsD'A'AA
r   Nr!   r"   r#   r$   r   r   r   r   r*   r*   ,   s)        ((    r   r*   c                       e Zd ZdZd ZdS )InstallerIPythonKernelErrorzError for IPython kernel issuesc                     |                     dd                               dd          }dt          j        |d          z   }|S )Nz<tt> z</tt>zIPython kernel error
r,   r-   r   s     r   r   z InstallerIPythonKernelError._msg7   s@    kk&"%%--gr::&d)C)CC
r   Nr1   r   r   r   r3   r3   5   s)        ))    r   r3   c                       e Zd ZdZd ZdS )InstallerInternalErrorzError for internal issuesc                 6    dt          j        |d          z   }|S )NzSpyder internal error
r,   )r/   r0   r   s     r   r   zInstallerInternalError._msg@   s    '(/#t*D*DD
r   Nr1   r   r   r   r7   r7   >   s)        ##    r   r7   c                       e Zd ZdZd ZdS )InstallerPylspErrorzError for PyLSP issuesc                 ~   t          j         t          j                            t	          d          d                    }d}|D ]\}|| dz  }t          |d          5 }|t          j        |                                d          z  }d d d            n# 1 swxY w Y   ]d| dt          j        |d          z   }|S )Nlsp_logsz*.logr5   r   rr,   zPyLSP Error: )	globr	   pathjoinr   openr/   r0   read)r   r   filescatfilefs         r   r   zInstallerPylspError._msgH   s    	"',,}Z'@'@'JJKK 	7 	7Dd;;;CdC 7Axqvvxx6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 &c%%%T(B(BB
s   +BB	B	Nr1   r   r   r   r:   r:   F   s)              r   r:   )r$   r	   r>   r/   r%   spyder.config.baser   r   objectr   r*   r3   r7   r:   r   r   r   <module>rI      s2   6 5 				    , , , , , ,< < <
$ $ $ $ $6 $ $ $,    #7       "6       1       .     r   