3 šgt`Ó, ã @ sj d dl mZ d dl mZ d dlZd dlmZ d dlZd dlm Z G dd„ dej ƒZG dd „ d ejj ƒZdS ) é )Úabsolute_import)Úunicode_literalsN)ÚOptionParser)Ú_c s e Zd ZdZ‡ fdd„Z‡ ZS )ÚRepoDiffÚrepodiffc s, t t| ƒj||ƒ |d krd S |jtƒ d S )N)Úsuperr Ú__init__Zregister_commandÚRepoDiffCommand)ÚselfÚbaseÚcli)Ú __class__© ú/usr/lib/python3.6/repodiff.pyr $ s zRepoDiff.__init__)Ú__name__Ú __module__Ú__qualname__Únamer Ú __classcell__r r )r r r s r c @ sL e Zd ZdZedƒZedd„ ƒZdd„ Zdd„ Z d d „ Z dd„ Zd d„ ZdS )r r z1List differences between two sets of repositoriesc C s¨ | j ddg ddtdƒd� | j ddg dd td ƒd� | j ddd g tjdtdƒd� | j dddtdƒd� | j ddtdƒd� | j ddtdƒd� | j ddtdƒd� d S )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.)r r z--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_argumentr r Z_SplitCallback)Úparserr r r Ú set_argparser/ s zRepoDiffCommand.set_argparserc C s¢ | j j}d|_d|_d|_dg| jj_| jj s:| jj rNtdƒ}tj j|ƒ‚x<| jjjƒ D ],}|j| jj | jj kr€|jƒ q\|jƒ q\W | jjsždg| j_d S )NTÚallz*Both old and new repositories must be set.Úsrc)r ÚdemandsZsack_activationZavailable_reposÚ changelogsr ZconfZdisable_excludesÚoptsr r r ÚdnfÚ exceptionsÚErrorZreposr" ÚidÚenableÚdisabler )r r$ ÚmsgZrepor r r Ú configureM s zRepoDiffCommand.configurec C s | j jr|j|jfS |jS )N)r&