a 2h@sddlmZddlmZddlmZddlmZddlmZddl Z ddl Z ddl Z ddl Z ddlZedZGdd d ejZdS) )absolute_import)unicode_literals)commands)_) OptionParserNdnfc@sbeZdZdZejejejejejejdZde e Z e dZ eddZddZd d Zd S) RemoveCommandzRemove command.)zremove-nz remove-naz remove-nevrazerase-nzerase-naz erase-nevra)removeZeraseZrmz-remove a package or packages from your systemcCsf|}|jdddtdd|jddtjd|jddtd d|jd d td tjtd ddS)Nz --duplicates store_true duplicatedzremove duplicated packages)actiondesthelpz --duplicated)r rz--oldinstallonlyz*remove installonly packages over the limitZpackages*zPackage to removeZPACKAGE)nargsrr metavar)add_mutually_exclusive_group add_argumentrargparseSUPPRESSrZParseSpecGroupFileCallback)parserZmgroupr;/usr/lib/python3.9/site-packages/dnf/cli/commands/remove.py set_argparser0s"zRemoveCommand.set_argparsercCs^|jj}d|_d|_d|_|jjr*d|_n0tj j rN|jj rNd|_d|_ d|_ n d|_ d|_dS)NTF)ZclidemandsZ resolvingZ root_userZsack_activationoptsr Zavailable_reposrbase WITH_MODULES grp_specsZfresh_metadataZ allow_erasing)selfrrrr configure?szRemoveCommand.configurec CsBg}|jj|jvr"|j|jjg}|jj|jj7_d}|jjr<|jj}|j | }| |}|st tddS|D]\\}}}t|dkrq|jddz|jt|dWnFtjjyd} td} t | |jjjt|d| Yn0|d dD]} |j| q"qdS|jjr|jj}|j | d }|jj} | dur|j | j!| j"| j#d } | r| | }|r|D]} |j| qnt td dS|jj$r|r|jj$D]&}td } t | |jjj|qn|jj$rtjj%rftj&j'(|j}|)|jj$}t|jj$t|krnd}n|jj$}|r|D]8}z|j*|grd}Wntjj+yYn0qx|jjD]n}z|jj)||dWnNtjj,y }z0d-|j.|jjj|} t | WYd}~nd}~00d}q|s>t tddS)NFz)No duplicated packages found for removal.T)reverserz%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.)/rZcommand nevra_formsZ pkg_specs filenamesr rZsackqueryZ_get_installonly_queryZ installed differenceloggerinforZ_na_dictitemslensortZ reinstallstrr exceptionsZPackagesNotAvailableErrorZwarningoutputZtermZboldZpackage_removeZoldinstallonlyZlatestZget_running_kernelfilterr&r'r(rrmodule module_baseZ ModuleBaser Zenv_group_removeErrorZ MarkingErrorformatvalue)rr)ZdoneqZinstonlyZdupsnameZarchZ pkgs_listZxmsgmsgpkgZkernelZrunning_installonlyZgrp_specr8Z skipped_grpsgroupZpkg_specerrrrunPs    (            zRemoveCommand.runN)__name__ __module__ __qualname____doc__hawkeyZ FORM_NAMEZFORM_NAZ FORM_NEVRAr*tuplekeysaliasesrZsummary staticmethodrr rBrrrrr#s r)Z __future__rrZdnf.clirZdnf.i18nrZdnf.cli.option_parserrZdnf.baserrrGZdnf.exceptionsZloggingZ getLoggerr.ZCommandrrrrrs