a ©!cã@sdddlmZddlmZddlmZddlZddlZe d¡ZdZ dZ Gdd„de ƒZ d d d „Z dS) é)Úabsolute_import)Úunicode_literals)Ú_NZdnfc@s‚eZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zifdd„ZdS) ÚTransactionWrapperú/cCs&t |¡|_gd¢|_g|_d|_dS)N)ÚcheckÚorderZaddEraseZ addInstallZ addReinstallÚrunZpgpImportPubkeyZ pgpPrtPktsZproblemsÚsetFlagsÚ setVSFlagsÚ setProbFilterZ hdrFromFdnoÚnextZcleanT)ÚrpmZTransactionSetÚtsÚ_methodsÚtsflagsÚopen)ÚselfÚroot©rú7/usr/lib/python3.9/site-packages/dnf/rpm/transaction.pyÚ__init__s  zTransactionWrapper.__init__cCs | ¡dS©N)Úclose©rrrrÚ__del__-szTransactionWrapper.__del__cCs |jr|j ¡d|_d|_dS)NF)rrZcloseDBrrrrr1s zTransactionWrapper.closecOsLd|vr| d¡}ng}|jj|i|¤Ž}|D]\}}}| |||¡q.|S)NÚpatterns)ÚpoprÚdbMatchÚpattern)rÚargsÚkwdsrÚmiÚtagÚtpÚpatrrrr7s zTransactionWrapper.dbMatchcCsD|j ¡dkr t tdƒ¡dS|j ¡}|s@t tdƒ¡dS|S)Nrz/The openDB() function cannot open rpm database.Úz>The dbCookie() function did not return cookie of rpm database.)rZopenDBÚ_loggerÚerrorrÚdbCookie)rZcookierrrr)Bs zTransactionWrapper.dbCookiecCs ||jvr| |¡St|ƒ‚dSr)rÚ getMethodÚAttributeError)rÚattrrrrÚ __getattr__Ps  zTransactionWrapper.__getattr__cCs|jSr)rrrrrÚ__iter__VszTransactionWrapper.__iter__cCs t|j|ƒSr)Úgetattrr)rÚmethodrrrr*YszTransactionWrapper.getMethodcCs"|j |¡|j |jd¡dS)Néÿÿÿÿ)rÚappendrr )rÚflagsrrrÚ pushVSFlagsas zTransactionWrapper.pushVSFlagscCs |j d¡}|j ||B¡dS©Nr©rr )rÚflagÚcurflagsrrrÚ addTsFlages zTransactionWrapper.addTsFlagcCs|j d¡}|j |¡|Sr5r6)rr8rrrÚ getTsFlagsis  zTransactionWrapper.getTsFlagscCs| ¡}t||@ƒSr)r:Úbool)rr7ÚvalrrrÚ isTsFlagSetnszTransactionWrapper.isTsFlagSetcCs| ¡|j_dSr)ÚfilenorZscriptFd)rÚfdrrrÚ setScriptFdrszTransactionWrapper.setScriptFdc CsŒ| ¡}| tj¡| d¡dkr0|j tj¡|j |j d¡}|j  |¡g}|durˆ|D]\}\}}} |  |¡q\|sˆ|  t dƒ¡|S)zetests the ts we've setup, takes a callback function and a conf dict for flags and what notZdiskspacecheckrr&Nz(Errors occurred during test transaction.) r:r9rZRPMTRANS_FLAG_TESTÚgetrr ZRPMPROB_FILTER_DISKSPACEr Úcallbackr r2r) rÚcbZconfZ origflagsZtserrorsZ reserrorsZdescrÚetypeZmountZneedrrrÚtestus   zTransactionWrapper.testN)r)Ú__name__Ú __module__Ú __qualname__rrrrr)r-r.r*r4r9r:r=r@rErrrrrs  rrcCs t|d}| tjtjB¡|S)N)r)rr4rZ_RPMVSF_NOSIGNATURESZ_RPMVSF_NODIGESTS)rÚread_tsrrrÚinitReadOnlyTransaction‹s rJ)r)Z __future__rrZdnf.i18nrZloggingrZ getLoggerr'rIrÚobjectrrJrrrrÚ s    s