a
     ³Šaˆ  ã                   @   sT   d dl Z d dlmZ d dlZd dlmZ d dlmZ G dd„ dƒZ	e	ƒ Z
dd„ ZdS )é    N)Úget_module_data_path)Úis_dark_interfacec                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚImagePathManagerz)Manager of the image path in the project.c                 C   s"   i | _ |  tddd¡ d| _dS )z)Initialize main path with all the images.ZspyderZimages)ÚrelpathZ	not_foundN)ÚIMG_PATHÚadd_image_pathr   Údefault)Úself© r
   ú>lib/python3.9/site-packages/spyder/utils/image_path_manager.pyÚ__init__   s    zImagePathManager.__init__c                 C   s¶   t  |¡sdS t |¡D ]˜\}}}tƒ r:t  |¡dkr:qntƒ sPt  |¡dkrPq|D ]Z}| d¡rdqTt  t  |¡¡\}}t  ||¡}|| j	v r¤t
 d|› d|› ¡ || j	|< qTqdS )z Add path to the image path list.NZlightZdarkÚ.zThe icon located in z is overriding the existing )ÚospÚisdirÚosÚwalkr   ÚbasenameÚ
startswithÚsplitextÚjoinr   ÚwarningsÚwarn)r	   ÚpathÚdirpathÚ__Z
_filenamesÚfilenameÚnameZcomplete_pathr
   r
   r   r      s&    


ÿÿzImagePathManager.add_image_pathc                 C   sN   z$| j | }t |¡r"t |¡W S W n$ tyH   t | j | j ¡ Y S 0 dS )z%Get path of the image given its name.N)r   r   ÚisfileÚabspathÚKeyErrorr   )r	   r   Z	act_imager
   r
   r   Úget_image_path2   s    

zImagePathManager.get_image_pathN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r    r
   r
   r
   r   r      s   r   c                 C   s
   t  | ¡S )zReturn absolute image path.)ÚIMAGE_PATH_MANAGERr    )r   r
   r
   r   r    ?   s    r    )r   Úos.pathr   r   r   Zspyder.config.baser   Zspyder.config.guir   r   r%   r    r
   r
   r
   r   Ú<module>   s   '