3 ©ft`ê ã @ s„ d dl mZ d dl mZ d dlmZ d dlmZ d dlmZ d dl Z d dlZd dlZd dl Z d dlZejdƒZG dd „ d ejƒZdS ) é )Úabsolute_import)Úunicode_literals)Úcommands)Ú_)ÚOptionParserNÚdnfc @ sb e Zd ZdZejejejejejejdœZde ej ƒ ƒ ZedƒZ edd„ ƒZd d „ Zdd„ Zd S )Ú RemoveCommandzRemove command.)zremove-nz remove-nazremove-nevrazerase-nzerase-nazerase-nevraÚremoveÚeraseÚrmz-remove a package or packages from your systemc C sf | j ƒ }|jdddtdƒd� |jddtjd� |jddtd ƒd� | jd dtdƒtjtd ƒd� d S )Nz--duplicatesÚ store_trueÚ duplicatedzremove duplicated packages)ÚactionÚdestÚhelpz--duplicated)r r z--oldinstallonlyz*remove installonly packages over the limitZpackagesÚ*zPackage to removeZPACKAGE)Únargsr r Úmetavar)Zadd_mutually_exclusive_groupÚadd_argumentr ÚargparseZSUPPRESSr ZParseSpecGroupFileCallback)ÚparserZmgroup© r ú/usr/lib/python3.6/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)ZcliÚdemandsZ resolvingZ root_userZsack_activationÚoptsr Zavailable_reposr ÚbaseÚWITH_MODULESÚ grp_specsZfresh_metadataZ allow_erasing)Úselfr r r r Ú configure? s zRemoveCommand.configurec C s\ g }| j j| jkr"| j| j j g}| j j| j j7 _d}| j j�rD| jjjƒ }| jj |j ƒ ƒ}|jƒ j|ƒ}|s‚tj jtdƒƒ‚x¼|jƒ jƒ D ]¬\\}}}t|ƒdk rªq�|jdd� y| jjt|d ƒƒ W nH tj jk �r d} tdƒ} tj| | jjjjt|d ƒƒ| ƒ Y nX x"|d d … D ]}| jj|ƒ �q&W