
    G@d                         d Z ddlmZ ddlmZ ddlmZmZ ddl	m
Z
mZ ddlmZ ddlmZ ddlmZ dd	lmZ  G d
 de          ZdS )z
Main interpreter Plugin.
    N)Slot)PluginsSpyderPluginV2)on_plugin_availableon_plugin_teardown_)MainInterpreterConfigPage)MainInterpreterContainer)get_python_executablec                      e Zd ZdZdZej        gZej        gZ	e
ZeZeZdZdZed             Zd Zd Zd Z eej                  d	             Z eej                  d
             Z eej                  d             Z eej                  d             Zed             Zd Z ee           d             Z!dS )MainInterpreterz"
    Main interpreter Plugin.
    main_interpreterFc                       t          d          S )NzPython interpreterr        Elib/python3.11/site-packages/spyder/plugins/maininterpreter/plugin.pyget_namezMainInterpreter.get_name+   s    %&&&r   c                      t          d          S )Nz)Main Python interpreter to open consoles.r   selfs    r   get_descriptionzMainInterpreter.get_description/   s    <===r   c                 ,    |                      d          S )Npython)create_iconr   s    r   get_iconzMainInterpreter.get_icon2   s    )))r   c                    |                                  }|j                            | j                   |j                            | j                   |                     d          ry|                     d          }t          j        |          sR| 	                    dd           | 	                    dd           | 	                    dt                                 d S d S d S )Ncustomcustom_interpreterFdefaultT
executable)get_containersig_open_preferences_requestedconnect_open_interpreter_preferences(sig_add_to_custom_interpreters_requested_add_to_custom_interpretersget_confospisfileset_confr   )r   	containerinterpreters      r   on_initializezMainInterpreter.on_initialize5   s    &&((	 	088.	
 	
 	

 	:BB,	
 	
 	
 =="" 	E--(<==K:k** Eh...i...l,A,C,CDDDDD	E 	EE Er   )pluginc                 n    |                      t          j                  }|                    |            d S N)
get_pluginr   Preferencesregister_plugin_preferencesr   preferencess     r   on_preferences_availablez(MainInterpreter.on_preferences_availableK   s2     oog&9:://55555r   c                 x    |                      t          j                  }|                    | j                   d S r1   )r2   r   	StatusBaradd_status_widgetinterpreter_statusr   	statusbars     r   on_statusbar_availablez&MainInterpreter.on_statusbar_availableQ   s5     OOG$566	##D$;<<<<<r   c                 n    |                      t          j                  }|                    |            d S r1   )r2   r   r3   deregister_plugin_preferencesr5   s     r   on_preferences_teardownz'MainInterpreter.on_preferences_teardownW   s2     oog&9::11$77777r   c                     |                      t          j                  }|                    | j        j                   d S r1   )r2   r   r9   remove_status_widgetr;   IDr<   s     r   on_statusbar_teardownz%MainInterpreter.on_statusbar_teardown]   s8     OOG$566	&&t'>'ABBBBBr   c                 4    |                                  j        S r1   )r"   r;   r   s    r   r;   z"MainInterpreter.interpreter_statusc   s    !!##66r   c                     | j                                          | j         j        }|                                }|j        }|                    d          }|                    |           dS )z<Open the Preferences dialog in the main interpreter section.r   N)_mainshow_preferencesr6   r"   dialogget_index_by_nameset_current_index)r   r6   r,   dlgindexs        r   r%   z-MainInterpreter._open_interpreter_preferencesh   sg    
##%%%j,--//	%%&899e$$$$$r   c                     |                      d          }||vr-|                    |           |                     d|           dS dS )z0Add a new interpreter to the list of saved ones.custom_interpreters_listN)r(   appendr+   )r   r-   custom_lists      r   r'   z+MainInterpreter._add_to_custom_interpretersq   sX     mm$>??k)){+++MM4kBBBBB *)r   N)"__name__
__module____qualname____doc__NAMEr   r3   REQUIRESr9   OPTIONALr   CONTAINER_CLASSr
   CONF_WIDGET_CLASSCONF_SECTION	CONF_FILECAN_BE_DISABLEDstaticmethodr   r   r   r.   r   r7   r>   r   rA   rE   propertyr;   r%   r   strr'   r   r   r   r   r      s         D#$H!"H.O1LIO ' ' \'> > >* * *E E E,  34446 6 546
  1222= = 32=
 w23338 8 438
 w0111C C 21C
 7 7 X7% % % 
T#YYC C YC C Cr   r   )rV   os.pathpathr)   qtpy.QtCorer   spyder.api.pluginsr   r   )spyder.api.plugin_registration.decoratorsr   r   spyder.api.translationsr	   'spyder.plugins.maininterpreter.confpager
   (spyder.plugins.maininterpreter.containerr   spyder.utils.miscr   r   r   r   r   <module>rk      s	   
             7 6 6 6 6 6 6 6- - - - - - - - % % % % % % M M M M M M M M M M M M 3 3 3 3 3 3[C [C [C [C [Cn [C [C [C [C [Cr   