
    Jed                         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y)z/Utility functions for tesing Spyder installers.    N)get_conf_pathc                  f    t        t        t        j                  j	                  dd                  S )z/Return True if currently running installer testINSTALLER_TEST0)boolintosenvironget     9/usr/lib/python3/dist-packages/spyder/utils/installers.pyrunning_installer_testr      s"    BJJNN#3S9:;;r   c                   v    e Zd ZdZ ej
                  d      Zej                  ej                         d Z	d Z
y)SpyderInstallerErrorz[
    Base class for installer error; do not use directly.
    Exit Spyder with code 1.
    	Installerc                     t               sy | j                  |      }| j                  j                  |dz   d       t	        d      )N
T)
stack_info   )r   _msgloggererror
SystemExitselfmsgs     r   __init__zSpyderInstallerError.__init__   s=    %'iin#*6m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      s5     W{+F
OOGMM"	$r   r   c                       e Zd ZdZd Zy)InstallerMissingDependencieszError for missing dependenciesc                 \    |j                  dd      }dt        j                  |d      z   }|S )Nz<br>r   zMissing dependencies  replacetextwrapindentr   s     r   r   z!InstallerMissingDependencies._msg.   s,    kk&$'$xsD'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y)InstallerIPythonKernelErrorzError for IPython kernel issuesc                 |    |j                  dd      j                  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   s9    kk&"%--gr:&d)CC
r   Nr1   r   r   r   r3   r3   5   s
    )r   r3   c                       e Zd ZdZd Zy)InstallerInternalErrorzError for internal issuesc                 8    dt        j                  |d      z   }|S )NzSpyder internal error
r,   )r/   r0   r   s     r   r   zInstallerInternalError._msg@   s    '(//#t*DD
r   Nr1   r   r   r   r7   r7   >   s
    #r   r7   c                       e Zd ZdZd Zy)InstallerPylspErrorzError for PyLSP issuesc                 j   t        j                   t        j                  j                  t	        d      d            }d}|D ]F  }|| dz  }t        |d      5 }|t        j                  |j                         d      z  }d d d        H d| dt        j                  |d      z   }|S # 1 sw Y   qxY w)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K 	7DdV2;CdC 7Axqvvx667 7	7
 cU"%T(BB
7 7s   (B))B2	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      s^    6 	    ,<
$6 $,#7 "6 1 . r   