
    ce1                         d Z ddlmZmZ ddl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mZmZ ddlmZ  G d d	e          Zd
S )z About Anaconda Navigator dialog.    )QtSignal)QAbstractItemViewQHBoxLayoutQProgressBarQStackedWidgetQTableWidgetQTableWidgetItem	QTextEditQVBoxLayout)AnacondaAPI)is_internet_available)ButtonNormalButtonPrimary	LabelBaseSpacerHorizontalSpacerVertical)
DialogBasec                   f     e Zd ZdZ e            Z	 	 	 	 	 d	 fd	Zd Zed             Z	d
dZ
 xZS )PackagesDialogzPackage dependencies dialog.NFc                 T   t                                          |           t                      | _        d| _        |pg | _        |pg | _        t                      | _        t                      | _
        t                      | _        t                      | _        t                      | _        t!                      | _        t%          d          | _        t)          d          | _        | j                            d           | j                            | j
                   | j                            | j                   |rd}nd}| j                            |           | j                            d           | j                            d           | j                            d           | j
                                                            d           | j
                            t:          j                   | j
                            d           | j
                             t:          j!                   | j
        "                    d           | j
        #                                | _$        | j
        %                                | _&        | j$        '                    d           | j$        (                    tR          j*                   | j$        +                    | j$        j,                   | j&        +                    | j&        j,                   | j        -                    d	           | j        .                    d           d
| _/        |r| 0                    d           n-|r| 0                    d           n| 0                    d           | -                    | j/                   tc                      }|                    | j                   |                    te                                 |                    | j                   tc                      }|3                                 |                    | j                   |                    te                                 |                    | j                   ti                      }	|	                    | j                   |	                    tk                                 |	                    | j                   |	                    tk                                 |	6                    |           |	                    tk                                 |	                    tk                                 |	6                    |           | 7                    |	           | j        j8        9                    | j:                   | j        j8        9                    | j;                   | j        <                    d           | j
        <                    d           | =                    ddd           dS )zAbout dialog.)parentNApplyCancelTz+The following packages will be removed:<br>z,The following packages will be modified:<br>FF   i  zRemove PackageszUpdate PackageszInstall PackageszSolving package specificationsr   )value	max_value)>super__init__r   apiactionspackagespip_packagesr   stackr	   tabler   textr   label_descriptionlabel_statusr   progress_barr   	button_okr   button_cancelsetReadOnly	addWidgetsetTextsetWordWraphorizontalScrollBar
setVisiblesetSelectionBehaviorr   
SelectRowssetAlternatingRowColorssetSelectionModeNoSelectionsetSortingEnabledhorizontalHeader_hheaderverticalHeader_vheadersetStretchLastSectionsetDefaultAlignmentr   	AlignLeftsetSectionResizeModeFixedsetMinimumWidth
setDefaultbase_minimum_widthsetWindowTitler   r   
addStretchr   r   	addLayout	setLayoutclickedconnectacceptrejectsetDisabledupdate_status)selfr   r"   r#   remove_onlyupdate_onlyr&   layout_progresslayout_buttonslayout	__class__s             Klib/python3.11/site-packages/anaconda_navigator/widgets/dialogs/packages.pyr   zPackagesDialog.__init__   s6    	''' == B(.B $%%
!^^
KK	!*%KK(NN&w//)(33 		d###
TZ(((
TY''' 	B@DDAD&&t,,,**4000**4000%%d+++
&&((33E:::
''(9(DEEE
**4000
##$5$ABBB
$$T***
3355
1133++D111))",777**4=+>???**4=+>???&&r***!!$'''"% 	4 12222 	4 12222 2333T4555 &--!!$"3444!!"2"4"4555!!$"3444$!!###  !3444  !1!3!3444  000/000))***$$$))***)))))***))***(((v 	&&t{333"**4;777""4((( 	
t$$$;1PQRRRRR    c                    . t          |t                    si }t          d  j        D                       }|                    d          }|                    dd          }|                    dd          }|                    dg           }|j        }|r|}	n|                    dd          }	 j                            ||          }
 j        	                                }|rbd	} j
                            d
            j                            d           t                      sd} j	                            |           n|
rVd	}d} j	                            |            j
                            d
           d}	 j                            d           n|r||ry j
                            d           t          |t                     r9|d                             dg           }|d                             dg           }n,|                    dg           }|                    dg           }d |D             }d |D             }t#                      }|                    |          }|                    |          }|t#          |          z
  }t          t!          |                    }|                    |          }t)          |          }                     |          }||z
  }t)          |          }                     |          }||z
  }t)          |          }                     |          }t)          |          t)          |          z   }                     t)          |                    } j                            |            j                            d            j                            dt4          j                   d}|r| d| d| d}|r| d| d| d}|r| d| d| d}|r|s|rQ|sO j                            d            j                            d            j                            d           nn|rl|sj j                            d            j                            d            j                            d            j                            g d           t?          ||z             D ]\  }..fd|D             }|sFd                     t)          d                    d                     t)          d                     d!}n|d         }.fd"|D             }|s%d#d                     t)          d                    i}n|d         }tC          |d#                   }tC          |d#                   } tE          |          }!tE          |           }"tE          |d                    }#.|v rtE          .          }$ntE          d$.z             }$.|v rd%}%n.|v rd&}%n	.|v rd'}%nd(}%tE          |%          }&|$|!|"|#|&g}'t?          |'          D ]M\  }(})|)#                    t4          j$        t4          j%        z              j        &                    ||(|)           N|rd)| d*}	 j        '                    d            j        (                                  j        )                    d
          }*|*d+k     r j        *                    d
d+            j                            g d,            j        '                    d            +                    |	-            j                            |            j        (                                 tY           fd.t[           j        .                                          D                       d/z   }+ /                                 j        /                                z
   j        0                                /                                z   d/z   },|+|,z   }-|- j1        k     r j1        }- 2                    |-            3                    |-            j4        5                                 d0S )1z5Setup the widget to include the list of dependencies.c              3   L   K   | ]}|                     d           d         V   dS )z==r   N)split).0pkgs     rU   	<genexpr>z'PackagesDialog.setup.<locals>.<genexpr>   s1      FF#))D//!,FFFFFFrV   successerror exception_namer!   message zNo packages will be modified.   TzSome of the functionality of Anaconda Navigator will be limited in <b>offline mode</b>.<br><br>Installation and upgrade actions will be subject to the packages currently available on your package cache.zPDowngrading/removing these packages will modify Anaconda Navigator dependencies.NavigatorDependenciesErrorr   LINKUNLINKc                     h | ]
}|d          S name rZ   packages     rU   	<setcomp>z'PackagesDialog.setup.<locals>.<setcomp>   s,     " " " " " "rV   c                     h | ]
}|d          S rh   rj   rk   s     rU   rm   z'PackagesDialog.setup.<locals>.<setcomp>   s,     $ $ $ $ $ $rV         z packagez will be modifiedz will be removedz will be installed      )NameUnlinkLinkChannelActionc                 ,    g | ]}|d          k    |S rh   rj   rZ   rl   r[   s     rU   
<listcomp>z(PackagesDialog.setup.<locals>.<listcomp>   s2       v#-- ---rV   -linkchannel)versionr}   c                 ,    g | ]}|d          k    |S rh   rj   ry   s     rU   rz   z(PackagesDialog.setup.<locals>.<listcomp>   s2       v#-- ---rV   r~   *ModifyRemoveInstallUndeterminedzD<b>*</b> indicates the package is a dependency of a selected packagez<br><   )zName  zUnlink  zLink  z	Channel  zAction  )ra   c              3   L   K   | ]}j                             |          V  d S )N)r%   columnWidth)rZ   indexrN   s     rU   r\   z'PackagesDialog.setup.<locals>.<genexpr>'  s3      __eDJ**511______rV   
   N)6
isinstancedictsortedr"   getprefixr    check_navigator_dependenciesr'   r&   r$   setCurrentIndexr*   rL   r   r.   listsetunionintersectionlenget_plural_suffixr%   setRowCountsetColumnCountsortByColumnr   AscendingOrder
showColumn
hideColumnsetHorizontalHeaderLabels	enumeratecenterstrr
   setFlagsItemIsEnabledItemIsSelectablesetItem
setEnabledresizeColumnsToContentsr   setColumnWidthrM   sumrangecolumnCountwidthr:   rC   rA   setMaximumWidthsig_setup_readyemit)/rN   workeroutputr^   r"   r]   r`   r!   r   ra   navi_deps_errordescriptionactions_linkactions_unlinkactions_link_namesactions_unlink_namesdepsmodifiedmodified_countplural_total_modifiedremovedremoved_countplural_total_removed	installedinstalled_countplural_total_installedcount_total_packagesplural_selectedrow	link_itemunlink_itemunlink_versionlink_versionitem_unlink_vitem_link_vitem_link_c	item_nameactionaction_itemitemscolumnitemunlink_widthr   delta	new_widthr[   s/   `                                             @rU   setupzPackagesDialog.setup|   s	   &$'' 	FFFFFFFF**Y''

7B''$4b99**Y++ 	1$GG jjC00G(??PP,1133 N	l9KJ&&q)))N&&t,,,(** J 
 Ie$$$$ C	l9KfEIe$$$J&&q)))2GN&&t,,,, |	l |	lJ&&q)))'4(( ;&qz~~fb99!("!=!=  '{{6266!(Xr!:!:" "+" " "$ $-$ $ $ 
 55D::011D::233D#h--'D$t**%%D+889KLLH ]]N$($:$:>$J$J!*-??GLLM#'#9#9-#H#H *-AAI!)nnO%)%;%;O%L%L"#&x==3t99#< "44S]]CCOJ""#7888J%%a(((J##Ar'8999K p!,oo~ooG\ooo m!,ll}llFZlll s!,rrrrH^rrr 	f 	f, 	f~ 	f
%%a(((
%%a(((
%%a(((( f f
%%a(((
%%a(((
%%a(((
445d5d5deee%ho66 2: 2:S   #/  	
 ! -#&::c&kk#:#:#&::c)nn#=#=! !II
 !*!I   #1  
 # 1!3::c&kk#:#:#KK #.a.K!$[%;!<!<"9Y#788 0 @ @.|<<.y/CDD(?? 0 5 5II 0s ; ;I(??%FFG^^%FFI%%&FF+F.v66"M;[Y$-e$4$4 : :LFDMM""2R5H"HIIIJ&&sFD9999:  wvapvvvN%%d+++J..000:11!44Lb  
))!R000J001j1j1jkkk
d###7+++&&{333 	
**,,,____uTZE[E[E]E]?^?^_____bdd

tz//111DJ4M4M4O4O4U4U4W4WWZ\\EM	t.../IY'''Y'''!!#####rV   c                     | dk    rdndS )Nrc   sr_   rj   )counts    rU   r   z PackagesDialog.get_plural_suffix4  s    qjjssb(rV   r_   c                    | j                             |           ||| j                            d           dS | j                            d           | j                            |           | j                            |           dS )z!Update status of packages dialog.NFT)r(   r.   r)   r1   
setMaximumsetValue)rN   ra   r   r   s       rU   rM   zPackagesDialog.update_status8  s    !!'***((/////((...((333&&u-----rV   )NNNFF)r_   NN)__name__
__module____qualname____doc__r   r   r   r   staticmethodr   rM   __classcell__)rT   s   @rU   r   r      s        &&fhhO \S \S \S \S \S \S|v$ v$ v$p ) ) \)	. 	. 	. 	. 	. 	. 	. 	.rV   r   N)r   qtpy.QtCorer   r   qtpy.QtWidgetsr   r   r   r   r	   r
   r   r   #anaconda_navigator.api.anaconda_apir   anaconda_navigator.api.utilsr   anaconda_navigator.widgetsr   r   r   r   r   "anaconda_navigator.widgets.dialogsr   r   rj   rV   rU   <module>r      s)   ' & " " " " " " " "                    < ; ; ; ; ; > > > > > > o o o o o o o o o o o o o o 9 9 9 9 9 9h. h. h. h. h.Z h. h. h. h. h.rV   