3 ft` @ sR d dl mZ d dl mZ d dlmZ d dlZdZdZG dd deZ d dd Z dS ) )absolute_import)unicode_literals)_Nc @ sz e Zd ZdddZdd Zdd Zdd Zd d Zdd Zdd Z dd Z dd Zdd Zdd Z dd Zi fddZdS )TransactionWrapper/c C s@ t j|| _ddddddddd d ddd ddg| _g | _d| _d S )NZcheckorderZaddEraseZ addInstallZaddReinstallrunZpgpImportPubkeyZ pgpPrtPktsZproblemssetFlags setVSFlags setProbFilterZhdrFromFdnonextZcleanT)rpmZTransactionSetts_methodstsflagsopen)selfroot r !/usr/lib/python3.6/transaction.py__init__ s$ zTransactionWrapper.__init__c C s | j d S )N)close)r r r r __del__+ s zTransactionWrapper.__del__c C s | j r| jj d | _d| _ d S )NF)r r ZcloseDB)r r r r r / s zTransactionWrapper.closec O sL d|kr|j d}ng }| jj||}x |D ]\}}}|j||| q,W |S )Npatterns)popr dbMatchpattern)r argskwdsr ZmitagtpZpatr r r r 5 s zTransactionWrapper.dbMatchc C s || j kr| j|S t|d S )N)r getMethodAttributeError)r attrr r r __getattr__@ s zTransactionWrapper.__getattr__c C s | j S )N)r )r r r r __iter__F s zTransactionWrapper.__iter__c C s t | j|S )N)getattrr )r methodr r r r! I s zTransactionWrapper.getMethodc C s" | j j| | jj| j d d S )N )r appendr r )r flagsr r r pushVSFlagsQ s zTransactionWrapper.pushVSFlagsc C s | j jd}| j j||B d S )Nr )r r )r flagcurflagsr r r addTsFlagU s zTransactionWrapper.addTsFlagc C s | j jd}| j j| |S )Nr )r r )r r. r r r getTsFlagsY s zTransactionWrapper.getTsFlagsc C s | j }t||@ S )N)r0 bool)r r- valr r r isTsFlagSet^ s zTransactionWrapper.isTsFlagSetc C s |j | j_d S )N)filenor ZscriptFd)r fdr r r setScriptFdb s zTransactionWrapper.setScriptFdc C s | j }| jtj |jddkr0| jjtj | jj|j d}| jj | g }|dk rx |D ]\}\}}} |j| q^W |s|jtd |S )zetests the ts we've setup, takes a callback function and a conf dict for flags and what notZdiskspacecheckr Nz(Errors occurred during test transaction.) r0 r/ r ZRPMTRANS_FLAG_TESTgetr r ZRPMPROB_FILTER_DISKSPACEr callbackr r* r ) r cbZconfZ origflagsZtserrorsZ reserrorsZdescretypeZmountZneedr r r teste s zTransactionWrapper.testN)r )__name__ __module____qualname__r r r r r$ r% r! r, r/ r0 r3 r6 r<