<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
ft`                 @   s   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 d dl	Z
d dlZd dlZd dlZ
d dlZejdZG dd	 d	ejZdS )
    )absolute_import)unicode_literals)commands)_)OptionParserNdnfc               @   sb   e Zd ZdZejejejejejejdZde	ej
  ZedZedd Zd	d
 Zdd ZdS )RemoveCommandzRemove command.)zremove-nz	remove-nazremove-nevrazerase-nzerase-nazerase-nevraremoveerasermz-remove a package or packages from your systemc             C   sf   | j  }|jdddtdd |jddtjd |jddtd	d | jd
dtdtjtdd d S )Nz--duplicates
store_true
duplicatedzremove duplicated packages)actiondesthelpz--duplicated)r   r   z--oldinstallonlyz*remove installonly packages over the limitZpackages*zPackage to removeZPACKAGE)nargsr   r   metavar)Zadd_mutually_exclusive_groupadd_argumentr   argparseZSUPPRESSr   ZParseSpecGroupFileCallback)parserZmgroup r   /usr/lib/python3.6/remove.pyset_argparser0   s    

zRemoveCommand.set_argparserc             C   s^   | j j}d|_d|_d|_| jjr*d|_n0tj	j
rN| jjrNd|_d|_d|_nd|_d|_d S )NTF)ZclidemandsZ	resolvingZ	root_userZsack_activationoptsr   Zavailable_reposr   baseWITH_MODULES	grp_specsZfresh_metadataZallow_erasing)selfr   r   r   r   	configure?   s    zRemoveCommand.configurec             C   s\  g }| j j| jkr"| j| j j g}| j  j| j j7  _d}| j jrD| jjj }| jj	|j
 }|j j|}|stjjtdx|j j D ]\\}}}t|dk rq|jdd y| jjt|d  W nH tjjk
r   d}	td}
tj|
| jjjjt|d |	 Y nX x"|d	d  D ]}| jj| q&W qW d S | j jr| jjj }| jj	|j
 jd}| jjj }|d k	r|j |j!|j"|j#d
}|r|j|}|rx,|D ]}| jj| qW ntjjtdd S | j j$r*|r*x| j j$D ]&}td}
tj|
| jjjj| qW n| j j$rtjj%rxtj&j'j(| j}|j)| j j$}t| j j$t|krd}n| j j$}|rxB|D ]:}y| jj*|grd}W n tjjk
r   Y nX qW xx| j jD ]l}y| jj)||d W nL tjj+k
r8 } z*dj,|j-| jjjj|}
tj.|
 W Y d d }~X nX d}qW |sXtjtd d S )NFz)No duplicated packages found for removal.   T)reverser    z%Installed package %s%s not available.   )epochversionreleasez.No old installonly packages found for removal.zNot a valid form: %s)formsz{}: {}zNo packages marked for removal.)/r   Zcommandnevra_formsZ	pkg_specs	filenamesr   r   ZsackZqueryZ_get_installonly_queryZ	installed
differencer   
exceptionsErrorr   Z_na_dictitemslensortZ	reinstallstrZPackagesNotAvailableErrorloggerZwarningoutputZtermZboldZpackage_removeZoldinstallonlyZlatestZget_running_kernelfilterr%   r&   r'   r   r   modulemodule_baseZ
ModuleBaser	   Zenv_group_removeZMarkingErrorformatvalueinfo)r   r(   doneqZinstonlyZdupsnameZarchZ	pkgs_listZxmsgmsgZpkgZkernelZrunning_installonlyZgrp_specr7   Zskipped_grpsgroupZpkg_specer   r   r   runP   s    
(




 



zRemoveCommand.runN)r	   r
   r   )__name__
__module____qualname____doc__hawkeyZ	FORM_NAMEZFORM_NAZ
FORM_NEVRAr*   tuplekeysaliasesr   Zsummarystaticmethodr   r    rA   r   r   r   r   r   #   s   
r   )Z
__future__r   r   Zdnf.clir   Zdnf.i18nr   Zdnf.cli.option_parserr   Zdnf.baser   r   rF   Zdnf.exceptionsZloggingZ	getLoggerr3   ZCommandr   r   r   r   r   <module>   s   
