a !c @ sp d dl mZ d dl mZ d dlZd dlmZ d dlmZ d dl Z d dl Z d dlZedZ G dd dejZdS ) )print_function)unicode_literalsN)_)commandsdnfc @ sL e Zd ZdZedZedd Zdd Zdd Z d d Z dd Zd d ZdS )MarkCommand)markz7mark or unmark installed packages as installed by user.c C s4 | j ddg dtdd | j dddtd d d S )Nr )installremovegroupzhinstall: mark as installed by user remove: unmark as installed by user group: mark as installed by group)nargschoiceshelppackage+ZPACKAGEzPackage specification)r metavarr )add_argumentr )parser r 9/usr/lib/python3.9/site-packages/dnf/cli/commands/mark.py set_argparser) s zMarkCommand.set_argparserc C s, | j j|tjj ttdt | d S )Nz%s marked as user installed.) basehistory set_reasonlibdnftransactionZTransactionItemReason_USERloggerinfor strselfpkgr r r _mark_install2 s zMarkCommand._mark_installc C s, | j j|tjj ttdt | d S )Nz%s unmarked as user installed.) r r r r r Z TransactionItemReason_DEPENDENCYr r r r r r r r _mark_remove6 s zMarkCommand._mark_removec C s, | j j|tjj ttdt | d S )Nz%s marked as group installed.) r r r r r ZTransactionItemReason_GROUPr r r r r r r r _mark_group: s zMarkCommand._mark_groupc C s$ | j j}d|_d|_d|_d|_d S )NTF)clidemandsZsack_activationZ root_userZavailable_reposZ resolving)r! r' r r r configure> s zMarkCommand.configurec C s | j jd }| j j}tt| d| }g }|D ]F}tj|}| | j j}|D ]}|| qRt|dkr0| | q0|rttd |D ]}ttd| qtjj| j j }|d u r| j j } n|j} | j j| g g | j j| d S )Nr Z_mark_zError:zPackage %s is not installed.)Zoptsr r functoolspartialgetattrr ZsubjectZSubjectZget_best_queryr Zsacklenappendr errorr r&