JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/dnf-plugins/__pycache__/repodiff.cpython-39.opt-1.pyc

a

�&c�,�@sjddlmZddlmZddlZddlmZddlZddlm	Z	Gdd�dej
�ZGdd	�d	ejj
�ZdS)
�)�absolute_import)�unicode_literalsN)�OptionParser)�_cs eZdZdZ�fdd�Z�ZS)�RepoDiff�repodiffcs,tt|��||�|durdS|�t�dS�N)�superr�__init__Zregister_command�RepoDiffCommand)�self�base�cli��	__class__��8/usr/lib/python3.9/site-packages/dnf-plugins/repodiff.pyr
$szRepoDiff.__init__)�__name__�
__module__�__qualname__�namer
�
__classcell__rrrrr src@sLeZdZdZed�Zedd��Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�ZdS)r)rz1List differences between two sets of repositoriesc	Cs�|jddgddtd�d�|jddgdd	td
�d�|jddd
gtjdtd�d�|jdddtd�d�|jddtd�d�|jddtd�d�|jddtd�d�dS)Nz
--repo-oldz-o�append�oldz2Specify old repository, can be used multiple times)�default�action�dest�helpz
--repo-newz-n�newz2Specify new repository, can be used multiple timesz--archz
--archlistz-a�archeszhSpecify architectures to compare, can be used multiple times. By default, only source rpms are compared.z--sizez-s�
store_truez5Output additional data about the size of the changes.)rrz--compare-archzMCompare packages also by arch. By default packages are compared just by name.z--simplez7Output a simple one line message for modified packages.z--downgradezNSplit the data for modified packages between upgraded and downgraded packages.)�add_argumentrrZ_SplitCallback)�parserrrr�
set_argparser/s,
���
����zRepoDiffCommand.set_argparsercCs�|jj}d|_d|_d|_dg|jj_|jj	r6|jj
sJtd�}tj
�|��|jj��D],}|j|jj	|jj
vrz|��qV|��qV|jjs�dg|j_dS)NT�allz*Both old and new repositories must be set.�src)r�demandsZsack_activationZavailable_repos�
changelogsr
ZconfZdisable_excludes�optsrrr�dnf�
exceptions�ErrorZreposr$�id�enable�disabler)rr&�msgZreporrr�	configureMs

zRepoDiffCommand.configurecCs|jjr|j|jfS|jSr)r(�compare_archr�arch)r�pkgrrr�_pkgkey`szRepoDiffCommand._pkgkeyc
s*t�fdd�|D���t����}t�fdd�|D���t����}t�}|j|d�D]&}|j|jd�D]}||��|�<qhqV�jjj}t�fdd�||D��fdd�||D�|ggd�}	|�	|�D]\}
�|
}�|
}|j
|j
kr�q�||j
|j
�d	k�r|	d
�||f�q�|	d�||f�q�|	S)aNcompares packagesets old and new, returns dictionary with packages:
        added: only in new set
        removed: only in old set
        upgraded: in both old and new, new has bigger evr
        downgraded: in both old and new, new has lower evr
        obsoletes: dictionary of which old package is obsoleted by which new
        csg|]}��|�|f�qSr�r4��.0�p�rrr�
<listcomp>m�z-RepoDiffCommand._repodiff.<locals>.<listcomp>csg|]}��|�|f�qSrr5r6r9rrr:or;)�	obsoletes)Zprovidescsg|]}�|�qSrr�r7�k)�new_drrr:zr;csg|]}�|�qSrrr=)�old_drrr:{r;)�added�removedr<�upgraded�
downgradedrrDrC)�dict�set�keys�filterr<r4r
�sack�evr_cmp�intersection�evrr)
rrrZold_keysZnew_keysr<Z	obsoleterZ	obsoletedrJrr>�pkg_old�pkg_newr)r?r@rr�	_repodiffes2
�zRepoDiffCommand._repodiffc
sT�fdd��dd�}��fdd�}tddddd�}t|d	�D],}ttd
���|���|d	|j7<q>t|d�D]Z}ttd���|���|d
���|��}|r�ttd���|���|d|j7<qx�jj	�r�|d�r.ttd��t|d�D],\}}|d|j|j7<|||��q|d�r�ttd��t|d�D],\}}|d|j|j7<|||��qPnX|d|d}	|	�r�ttd��t|	�D],\}}|d|j|j7<|||��q�ttd��ttd��t
|d	���ttd��t
|d����jj	�rXttd��t
|d���ttd��t
|d���n&ttd��t
|d�t
|d����jj�rPttd��||d	���ttd��||d����jj	�s�ttd��||d|d���n4ttd��||d���ttd��||d���ttd��||d	|d|d|d���dS) Ncs �jjrt|�Sd|j|jfS)Nz%s-%s)r(r1�strrrL)r3r9rr�pkgstr�sz'RepoDiffCommand._report.<locals>.pkgstrcSsXt|�}|dkr.|d�tjj�|����7}n&|dkrT|d�tjj�|����7}|S)Nrz ({})z (-{}))rP�formatr)rZ
format_number�strip)Znumr/rrr�sizestr�sz(RepoDiffCommand._report.<locals>.sizestrc
sFg}�jjr*|�d�|��|�f��n
|�d�|�d�|��|�f�|�dt|d��|jrv|jd}nd}|jD]�}|r�|d|dkr��qn6|d|dkr�|d|dkr�|d|dkr��q|�d	|d�d
�tj�|d�tj�|d�f�q��jj	�r4|�t
d��|j	|j	��td�
|��dS)
Nz%s -> %s��-���rZ	timestampZauthor�textz
* %s %s
%sz%a %b %d %YzSize change: {} bytes�
)r(�simpler�lenr'�strftimer)Zi18nZucd�sizerrR�print�join)rMrNZmsgsZ	old_chlogZchlog�rQrrr�report_modified�s:

���


�z0RepoDiffCommand._report.<locals>.report_modifiedr)rArBrCrDrAzAdded package  : {}rBzRemoved package: {}r<zObsoleted by   : {}rCz
Upgraded packagesrDz
Downgraded packagesz
Modified packagesz
SummaryzAdded packages: {}zRemoved packages: {}zUpgraded packages: {}zDowngraded packages: {}zModified packages: {}zSize of added packages: {}zSize of removed packages: {}zSize of modified packages: {}zSize of upgraded packages: {}zSize of downgraded packages: {}zSize change: {})rE�sortedr^rrRr]�getr4r(Z	downgrader[)
rrrTraZsizesr3ZobsoletedbyrMrNZmodifiedrr`r�_report�sr




�


�

�

�
��zRepoDiffCommand._reportcCs�|jj�tj�j|jjd�}|jj�tj�j|jjd�}|jj	rld|jj	vrl|j
|jj	d�|j
|jj	d�|jjr�|j
dd�|j
dd�n|j
dd�|j
dd�|��|��|�
|�||��dS)N)Zreponame�*)r2�)Zlatest_per_arch)Zlatest)r
rI�query�hawkeyZIGNORE_EXCLUDESrHr(rrrZfiltermr1ZapplyrdrO)rZq_newZq_oldrrr�run�s"��zRepoDiffCommand.runN)
rrr�aliasesrZsummary�staticmethodr#r0r4rOrdrirrrrr+s
&ar)Z
__future__rrZdnf.clir)Zdnf.cli.option_parserrrhZdnfpluginscorerZPluginrrZCommandrrrrr�<module>s
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg