a
    !c	                     @   sR   d dl 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 dej	Z
dS )	    )absolute_import)unicode_literals)commands)OptionParser)_c                   @   s8   e Zd ZdZdZedZedd Zdd Z	dd	 Z
d
S )DowngradeCommandzWA class containing methods needed by the cli to execute the
    downgrade command.
    )Z	downgradeZdgzDowngrade a packagec                 C   s   | j ddtdtjd d S )Npackage*zPackage to downgrade)nargshelpaction)add_argumentr   r   ZParseSpecGroupFileCallback)parser r   >/usr/lib/python3.9/site-packages/dnf/cli/commands/downgrade.pyset_argparser$   s    zDowngradeCommand.set_argparserc                 C   sH   | j j}d|_d|_d|_d|_t| j| j  | j	j
sDt| j d S )NT)ZclidemandsZsack_activationZavailable_reposZ	resolvingZ	root_userr   Z_checkGPGKeybaseopts	filenamesZ_checkEnabledRepo)selfr   r   r   r   	configure)   s    zDowngradeCommand.configurec                 C   sJ   | j j| jjd| j jjd}| j j| jjdd | jjD  || j j	j
dS )NF)strictprogressc                 S   s   g | ]}d | qS )@r   ).0xr   r   r   
<listcomp>8       z(DowngradeCommand.run.<locals>.<listcomp>)Zspecs	file_pkgsr   )r   Zadd_remote_rpmsr   r   outputr   ZdowngradePkgsZ	pkg_specsZ	grp_specsZconfr   )r   r   r   r   r   run4   s    zDowngradeCommand.runN)__name__
__module____qualname____doc__aliasesr   Zsummarystaticmethodr   r   r!   r   r   r   r   r      s   
r   N)Z
__future__r   r   Zdnf.clir   Zdnf.cli.option_parserr   Zdnf.i18nr   ZCommandr   r   r   r   r   <module>   s
   