a j @ s d dl mZ d dl mZ d dlmZ d dlmZ d dlmZ d dl Z d dlZd dlZd dl Z d dlZedZG dd d ejZdS ) )absolute_import)unicode_literals)commands)_)OptionParserNdnfc @ sb e Zd ZdZejejejejejejdZde e ZedZ edd Zdd Zd d ZdS ) RemoveCommandzRemove command.)zremove-nz remove-nazremove-nevrazerase-nzerase-nazerase-nevra)removeZeraseZrmz-remove a package or packages from your systemc C sf | }|jdddtdd |jddtjd |jddtd d | jd dtdtjtd d d S )Nz--duplicates store_true duplicatedzremove duplicated packages)actiondesthelpz--duplicated)r r z--oldinstallonlyz*remove installonly packages over the limitZpackages*zPackage to removeZPACKAGE)nargsr r metavar)add_mutually_exclusive_groupadd_argumentr argparseSUPPRESSr ZParseSpecGroupFileCallback)parserZmgroup r ;/usr/lib/python3.9/site-packages/dnf/cli/commands/remove.py set_argparser0 s" zRemoveCommand.set_argparserc C s^ | j j}d|_d|_d|_| jjr*d|_n0tj j rN| jjrNd|_d|_d|_ nd|_ d|_d S )NTF)ZclidemandsZ resolvingZ root_userZsack_activationoptsr Zavailable_reposr baseWITH_MODULES grp_specsZfresh_metadataZ allow_erasing)selfr r r r configure? s zRemoveCommand.configurec C sB g }| j j| jv r"| j| j j g}| j j| j j7 _d}| j jr<| jj }| j | }| |}|st td d S | D ]\\}}}t|dk rq|jdd z| jt|d W nF tjjy d} td} t| | jjjt|d | Y n0 |d d D ]}| j| q"qd S | j jr| jj }| j | d }| jj }|d ur|j |j!|j"|j#d} | r|| }|r|D ]}| j| qnt td d S | j j$r|r| j j$D ]&}td } t| | jjj| qn| j j$rtjj%rftj&j'(| j}|)| j j$}t| j j$t|krnd}n| j j$}|r|D ]8}z| j*|grd}W n tjj+y Y n0 qx| j jD ]n}z| jj)||d W nN tjj,y } z0d-|j.| jjj|} t | W Y d }~nd }~0 0 d}q|s>ttd d S )NFz)No duplicated packages found for removal. T)reverser z%Installed package %s%s not available. )epochversionreleasez.No old installonly packages found for removal.zNot a valid form: %s)formsz{}: {}zNo packages marked for removal.)/r Zcommandnevra_formsZ pkg_specs filenamesr r ZsackqueryZ_get_installonly_queryZ installed differenceloggerinfor Z_na_dictitemslensortZ reinstallstrr exceptionsZPackagesNotAvailableErrorZwarningoutputZtermZboldZpackage_removeZoldinstallonlyZlatestZget_running_kernelfilterr&