
    G@d                         d Z ddlZddlmZ ddlmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZ ddlmZ ddlmZmZmZ dd	lmZ dd
lmZ  G d de          Z G d de          Zd Zedk    r e             dS dS )z+Module checking Spyder runtime dependencies    N)Qt)QColor)	QApplicationQDialogQDialogButtonBoxQHBoxLayoutQVBoxLayoutQLabelQPushButtonQTreeWidgetQTreeWidgetItem)__version__)_)	MANDATORYOPTIONALPLUGIN)ima)SpyderPalettec                       e Zd Zd Zd ZdS )DependenciesTreeWidgetc                    |                                   t          d          t          d          t          d          t          d          t          d          f}|                     |           t          t          d          g          }|                    d          }|                    d           |                    d|           t          t          d	          g          }|                    d|           t          t          d
          g          }|                    d|           |                     |||g           t          |d           D ]}t          |j	        |j
        |j        |j        |j        g          }|                                r)|                    dt!          j        d                     n|j        t&          k    rV|                    dt!          j        d                     |                    dt+          t,          j                             nU|                    dt!          j        d                     |                    dt+          t,          j                             |j        t&          k    r|                    |           O|j        t4          k    r|                    |           v|                    |           |                                  d S )NModulezPackage namez
 Required z Installed zProvided features	Mandatoryr   TOptionalzSpyder pluginsc                 4    | j                                         S N)modnamelower)xs    ;lib/python3.11/site-packages/spyder/widgets/dependencies.py<lambda>z<DependenciesTreeWidget.update_dependencies.<locals>.<lambda>4   s    qy/@/@     )keydependency_okdependency_warning   dependency_error)clearr   setHeaderLabelsr   fontsetBoldsetFontaddTopLevelItemssortedr   package_namerequired_versioninstalled_versionfeatureschecksetIconr   iconkindr   setBackgroundr   r   COLOR_WARN_1COLOR_ERROR_1addChildr   	expandAll)	selfdependenciesheadersmandatory_itemr*   optional_itemspyder_plugins
dependencyitems	            r    update_dependenciesz*DependenciesTreeWidget.update_dependencies   s   

X;;. 1 11\??]##Q':%;%;=W%%% )!K..)9::""1%%Tq$''' (:88a&&& )!,<*=*=)>??q$'''~}nMNNN %@%@B B B 	. 	.J"J$6$.$;$.$?$.$@$.$7	$9 : :D !! KQ 9 9::::H,,Q)= > >???""1f]-G&H&HIIIIQ); < <===""1f]-H&I&IJJJ (**&&t,,,,F**''----''----r"   c                 x    t          |                                           D ]}|                     |           d S r   )rangecolumnCountresizeColumnToContents)r<   cols     r    resize_columns_to_contentsz1DependenciesTreeWidget.resize_columns_to_contentsN   sF    ))++,, 	- 	-C'',,,,	- 	-r"   N)__name__
__module____qualname__rD   rJ    r"   r    r   r      s3        / / /b- - - - -r"   r   c                        e Zd Zd Zd Zd ZdS )DependenciesDialogc                 d   t          j        | |           t          t          d                    | _        t          t          d                    | _        t          |           | _        t          t          d                    }t          t          j
                  }|                     dt          dt          d                     |                     t          j        d                     |                     d           t#                      }|                    |           |                                 |                    |           t)                      }|                    | j                   |                    | j                   |                    | j                   |                    |           |                     |           |                     d	d
           |j                            | j                   |j                            | j                   d S )NzJOptional modules are not required to run Spyder but enhance its functions.zh<b>Note:</b> New dependencies or changed ones will be correctly detected only after Spyder is restarted.zCopy to clipboardzSpyder z: DependenciestooloptionsFi\  i0  )r   __init__r
   r   labellabel2r   
treewidgetr   r   OksetWindowTitler   setWindowIconr   r5   setModalr   	addWidget
addStretchr	   	addLayout	setLayoutresizeclickedconnectcopy_to_clipboardacceptedaccept)r<   parentbtnbboxhlayoutvlayouts         r    rT   zDependenciesDialog.__init__U   s   v&&& A B C C D D
Q  / 0 0 1 1 166!/0033 0 344 	{{{/0/@/@/@B 	C 	C 	C38M22333e --#$--$/***$*%%%$+&&&'"""wC 	D2333dk*****r"   c                 l    | j                             |           | j                                          d S r   )rW   rD   rJ   )r<   r=   s     r    set_datazDependenciesDialog.set_data{   s2    ++L9992244444r"   c                 n    ddl m} t          j                                         |                       d S )Nr   )status)spyder.dependenciesrn   r   	clipboardsetText)r<   rn   s     r    rc   z$DependenciesDialog.copy_to_clipboard   s=    ......  ((22222r"   N)rK   rL   rM   rT   rl   rc   rN   r"   r    rP   rP   S   sB        $+ $+ $+L5 5 53 3 3 3 3r"   rP   c                     ddl m}  |                     dddd           |                     dddd           |                     d	d	d
dt                     |                     dddd           |                     ddddt                     ddlm}  |            }t          d          }|                    | j                   |	                                 t          j        |                                           dS )zRun dependency widget testr   )r=   IPythonzEnhanced Python interpreterz>=20.0
matplotlibzInteractive data plottingz>=1.0sympyzSymbolic Mathematicsz>=10.0)r6   foozNon-existent modulenumpyz Edit arrays in Variable Explorerz>=0.10)qapplicationN)spyderr=   addr   spyder.utils.qthelpersrx   rP   rl   DEPENDENCIESshowsysexitexec_)r=   rx   appdlgs       r    testr      s3   ###### Y	+H  \<1L  Wg'=x"  $ $ $UE#8'BBBWg(JH  . . . 433333
,..C
T
"
"CLL*+++HHJJJHSYY[[r"   __main__) __doc__r~   qtpy.QtCorer   
qtpy.QtGuir   qtpy.QtWidgetsr   r   r   r   r	   r
   r   r   r   ry   r   spyder.config.baser   ro   r   r   r   spyder.utils.icon_managerr   spyder.utils.paletter   r   rP   r   rK   rN   r"   r    <module>r      s   2 1 


            : : : : : : : : : : : : : : : : : : : : : :
                   ; ; ; ; ; ; ; ; ; ; ) ) ) ) ) ) . . . . . .5- 5- 5- 5- 5-[ 5- 5- 5-p.3 .3 .3 .3 .3 .3 .3 .3b  . zDFFFFF r"   