<!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
`gS                 @   sX   d dl mZ d dlZd dlZd dlmZ ejd  dkr>efZ	ne
fZ	G dd deZdS )    )with_statementN)ts   c               @   s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd.dd Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-S )/TransactionSetr   c             C   s   t | |}t| || |S )N)getattrsetattr)selfattrvalZoval r   #/usr/lib64/python3.6/transaction.py_wrapSetGet   s    
zTransactionSet._wrapSetGetc             C   s   | j d|S )N_vsflags)r   )r   flagsr   r   r   
setVSFlags   s    zTransactionSet.setVSFlagsc             C   s   | j S )N)r   )r   r   r   r   
getVSFlags   s    zTransactionSet.getVSFlagsc             C   s   | j d|S )N	_vfyflags)r   )r   r   r   r   r   setVfyFlags   s    zTransactionSet.setVfyFlagsc             C   s   | j S )N)r   )r   r   r   r   getVfyFlags   s    zTransactionSet.getVfyFlagsc             C   s   | j S )N)	_vfylevel)r   r   r   r   getVfyLevel"   s    zTransactionSet.getVfyLevelc             C   s   | j d|S )Nr   )r   )r   r   r   r   r   setVfyLevel%   s    zTransactionSet.setVfyLevelc             C   s   | j d|S )NZ_color)r   )r   colorr   r   r   setColor(   s    zTransactionSet.setColorc             C   s   | j d|S )NZ
_prefcolor)r   )r   r   r   r   r   setPrefColor+   s    zTransactionSet.setPrefColorc             C   s   | j d|S )NZ_flags)r   )r   r   r   r   r   setFlags.   s    zTransactionSet.setFlagsc             C   s   | j d|S )N_probFilter)r   )r   Z	ignoreSetr   r   r   setProbFilter1   s    zTransactionSet.setProbFilterc             C   s   dd l }|jj|S )Nr   )Z	rpm._rpmbZ_rpmbspec)r   Zspecfilerpmr   r   r   	parseSpec4   s    zTransactionSet.parseSpecc             C   s4   g }x| D ]}|j |j  q
W |s(d S t|S d S )N)appendZKeytuple)r   keysZter   r   r   getKeys8   s    
zTransactionSet.getKeysc          	   C   sJ   t |tr*t|}| j|}W d Q R X nt |tjr<|}n
| j|}|S )N)
isinstance_string_typesopenhdrFromFdnor   hdr)r   itemfheaderr   r   r   _f2hdrB   s    


zTransactionSet._f2hdruc             C   s@   | j |}|dkrtd|dk}tj| |||s<tjdd S )Nr.   izhow argument must be "u" or "i"z$adding package to transaction failed)r.   r/   )r-   
ValueErrorTransactionSetCore
addInstallr   error)r   r*   keyZhowr,   Zupgrader   r   r   r2   L   s    
zTransactionSet.addInstallc             C   s&   | j |}tj| ||s"tjdd S )Nz$adding package to transaction failed)r-   r1   addReinstallr   r3   )r   r*   r4   r,   r   r   r   r5   V   s    
zTransactionSet.addReinstallc             C   s   g }t |tjr|}n~t |tjr.|j| nft |ttfrt |trNtj}ntj}x| j	||D ]}|j| qbW |stj
dntdt| x"|D ]}tj| |stj
dqW d S )Nzpackage not installedzinvalid type %s)r%   r   Zmir)   r!   intr&   ZRPMDBI_PACKAGESZRPMDBI_LABELZdbMatchr3   	TypeErrortyper1   addErase)r   r*   ZhdrsZdbihr   r   r   r9   \   s"    

zTransactionSet.addErasec             C   sb   t j| ||| j}|dkrd S g }|dkr^x2| j D ]&}d| |j|j|jff}|j| q4W |S )Nr   z%s)r1   runr   problemsr8   _strZ_numr!   )r   callbackdataZrcresZprobr*   r   r   r   r;   u   s    zTransactionSet.runc             O   s
  t j| f|| g }x| j D ]}|jtjkr8tj}n|jtjkr tj}nq |j	j
ddd }|j
dd\}}}	|jj }
|
d }tj}t|
dkr|
d }d|kr|tjO }d|kr|tjO }d	|kr|tjO }|
d }nd
}|j|||	f||f|||jf q W |S )N.   r   -   r   <=> )r1   checkr<   r8   r   ZRPMPROB_CONFLICTZRPMDEP_SENSE_CONFLICTSZRPMPROB_REQUIRESZRPMDEP_SENSE_REQUIRESZaltNEVRrsplitr=   splitZRPMSENSE_ANYlenZRPMSENSE_LESSZRPMSENSE_EQUALZRPMSENSE_GREATERr!   r4   )r   argskwdsr@   pZsenseZnevrnvrZneedsZneednameZ	needflagsZneedopZneedverr   r   r   rI      s4    




zTransactionSet.checkc             C   sT   t j| |\}}|tjkr&tjdn*|tjkr<tjdn|tjkrPtj|d S )Nzpublic key not availablezpublic key not trusted)r1   hdrCheckr   RPMRC_NOKEYr3   RPMRC_NOTTRUSTEDRPMRC_OK)r   Zblobr@   msgr   r   r   rS      s    


zTransactionSet.hdrCheckc             C   sT   t j| |\}}|tjkr&tjdn*|tjkr<tjdn|tjkrPtjd|S )Nzpublic key not availablezpublic key not trustedzerror reading package header)r1   r(   r   rT   r3   rU   rV   )r   fdr@   r:   r   r   r   r(      s    



zTransactionSet.hdrFromFdnoN)r.   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r   r    r$   r-   r2   r5   r9   r;   rI   rS   r(   r   r   r   r   r      s,   



'
r   )Z
__future__r   sysr   Zrpm._rpmr   r1   version_infostrr&   Z
basestringr   r   r   r   r   <module>   s   