a ©!c†<ã@s„ddlZddlZddlZddlZddlmZddlm Z ddl Z Gdd„de ƒZ Gdd„de ƒZ Gdd „d e ƒZGd d „d e ƒZdS) éN)Ú_)Úloggerc@sleZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)Ú PersistorBasecCs"||_i|_i|_i|_i|_dS©N)ÚhistoryÚ _installedÚ_removedÚ _upgradedÚ _downgraded)Úselfr©r ú0/usr/lib/python3.9/site-packages/dnf/db/group.pyÚ__init__ s zPersistorBase.__init__cCs(t|jƒt|jƒt|jƒt|jƒSr)Úlenrrr r ©r r r r Ú__len__(szPersistorBase.__len__cCsi|_i|_i|_i|_dSr)rrr r rr r r Úclean+szPersistorBase.cleancCst‚dSr©ÚNotImplementedError©r Úobjr r r Ú _get_obj_id1szPersistorBase._get_obj_idcCs*|jj |d|tjj¡}| tjj¡dS)NÚ)rÚswdbÚaddItemÚlibdnfÚ transactionÚTransactionItemReason_USERZsetStateZTransactionItemState_DONE)r ÚitemÚactionÚtir r r Ú_add_to_history4szPersistorBase._add_to_historycCs$||j| |¡<| |tjj¡dSr)rrr!rrÚTransactionItemAction_INSTALLrr r r Úinstall8szPersistorBase.installcCs$||j| |¡<| |tjj¡dSr)rrr!rrÚTransactionItemAction_REMOVErr r r Úremove<szPersistorBase.removecCs$||j| |¡<| |tjj¡dSr)r rr!rrÚTransactionItemAction_UPGRADErr r r Úupgrade@szPersistorBase.upgradecCs$||j| |¡<| |tjj¡dSr)r rr!rrÚTransactionItemAction_DOWNGRADErr r r Ú downgradeDszPersistorBase.downgradecCst‚dSrr)r Úobj_idÚnameÚtranslated_nameÚ pkg_typesr r r ÚnewHszPersistorBase.newcCst‚dSrr)r r*r r r ÚgetKszPersistorBase.getcCst‚dSrr©r Úpatternr r r Úsearch_by_patternNszPersistorBase.search_by_patternN)Ú__name__Ú __module__Ú __qualname__rrrrr!r#r%r'r)r.r/r2r r r r rsrc@sDeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)ÚGroupPersistorcCs"|jj ¡}dd„|Dƒ}t|ƒS)NcSsg|]}| ¡r|‘qSr )ÚgetCompsGroupItem©Ú.0Úir r r Ú Vóz+GroupPersistor.__iter__..©rrÚgetItemsÚiter©r Úitemsr r r Ú__iter__Ts zGroupPersistor.__iter__cCs| ¡Sr)Ú getGroupIdrr r r rYszGroupPersistor._get_obj_idcCsH|jj ¡}| |¡|dur(| |¡|dur:| |¡| |¡|Sr)rrZcreateCompsGroupItemZ setGroupIdÚsetNameÚsetTranslatedNameÚsetPackageTypes)r r*r+r,r-Ú swdb_groupr r r r.\s     zGroupPersistor.newcCs"|jj |¡}|sdS| ¡}|Sr)rrr7)r r*rGr r r r/fs zGroupPersistor.getcCs|jj |¡Sr)rrZgetCompsGroupItemsByPatternr0r r r r2msz GroupPersistor.search_by_patterncCs|jj |¡Sr)rrZgetPackageCompsGroups)r Úpkg_namer r r Úget_package_groupspsz!GroupPersistor.get_package_groupscCsÄ|jj |dd¡}|tjjkr"dSt| |¡ƒ}|j  ¡D]8\}}|  ¡D]&}|  ¡|kr\qJ|  ¡sfqJ|  |¡qJq:|j  ¡D]8\}}|  ¡D]&}|  ¡|kr qŽ|  ¡sªqŽ| |¡qŽq~|rÀdSdS)NréþÿÿÿFT)rrÚresolveRPMTransactionItemReasonrrZTransactionItemReason_GROUPÚsetrIrrAZ getPackagesÚgetNameÚ getInstalledr%rÚadd)r rHÚreasonZpackage_groupsÚgroup_idÚgroupÚpkgr r r Úis_removable_pkgss*     zGroupPersistor.is_removable_pkgN) r3r4r5rBrr.r/r2rIrTr r r r r6Rs r6c@sDeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)ÚEnvironmentPersistorcCs"|jj ¡}dd„|Dƒ}t|ƒS)NcSsg|]}| ¡r|‘qSr )ÚgetCompsEnvironmentItemr8r r r r;’r<z1EnvironmentPersistor.__iter__..r=r@r r r rBs zEnvironmentPersistor.__iter__cCs| ¡Sr)ZgetEnvironmentIdrr r r r•sz EnvironmentPersistor._get_obj_idcCsH|jj ¡}| |¡|dur(| |¡|dur:| |¡| |¡|Sr)rrZcreateCompsEnvironmentItemZsetEnvironmentIdrDrErF)r r*r+r,r-Úswdb_envr r r r.˜s     zEnvironmentPersistor.newcCs"|jj |¡}|sdS| ¡}|Sr)rrrV)r r*rWr r r r/¢s zEnvironmentPersistor.getcCs|jj |¡Sr)rrZ!getCompsEnvironmentItemsByPatternr0r r r r2©sz&EnvironmentPersistor.search_by_patterncCs|jj |¡Sr)rrZgetCompsGroupEnvironments)r rQr r r Úget_group_environments¬sz+EnvironmentPersistor.get_group_environmentscCs¸|jj |¡}|sdSt| |¡ƒ}|j ¡D]8\}}| ¡D]&}| ¡|krPq>|  ¡sZq>|  |¡q>q.|j  ¡D]8\}}| ¡D]&}| ¡|kr”q‚|  ¡sžq‚|  |¡q‚qr|r´dSdS)NFT) rrRr/rLrXrrAZ getGroupsrCrNr%rrO)r rQrGZgroup_environmentsZenv_idÚenvrRr r r Úis_removable_group¯s*    z'EnvironmentPersistor.is_removable_groupN) r3r4r5rBrr.r/r2rXrZr r r r rUŽs rUc@sÎeZdZd,dd„Zdd„Zdd„Zdd „Zd-d d „Zd d „Zdd„Z dd„Z d.dd„Z d/dd„Z d0dd„Z d1dd„Zd2dd„Zd3dd„Zd4dd„Zd d!„Zd"d#„Zed$d%„ƒZed&d'„ƒZd(d)„Zd*d+„ZdS)5ÚRPMTransactionNcCs:||_||_|js0z|jj ¡Wn Yn0i|_dSr)rrrZinitTransactionÚ _swdb_ti_pkg)r rrr r r rËszRPMTransaction.__init__cs8ˆjrˆj ¡}n ˆjj ¡}‡fdd„|Dƒ}t|ƒS)Ncs&g|]}| ¡rtjj ˆj|¡‘qSr ©Z getRPMItemÚdnfZdbrZRPMTransactionItemWrapperr8rr r r;Ýr<z+RPMTransaction.__iter__..)rr>rrr?r@r rr rB×s   zRPMTransaction.__iter__cs8ˆjrˆj ¡}n ˆjj ¡}‡fdd„|Dƒ}t|ƒS)Ncs&g|]}| ¡rtjj ˆj|¡‘qSr r]r8rr r r;år<z*RPMTransaction.__len__..)rr>rrrr@r rr ràs   zRPMTransaction.__len__cCsP|jj ¡}| |j¡| |jp$d¡| |j¡|  |j ¡|  |j ¡|S)Nr) rrZ createRPMItemrDr+ZsetEpochZepochZ setVersionÚversionZ setReleaseÚreleaseZsetArchÚarch)r rSÚrpm_itemr r r Ú_pkg_to_swdb_rpm_itemès     z$RPMTransaction._pkg_to_swdb_rpm_itemcCsV| |¡}| |¡}|dur&| |¡}|jj ||||¡}|rH| |¡||j|<|Sr)rcÚ get_repoidÚ get_reasonrrrÚ addReplacedByr\)r rSrrPÚ replaced_byrbZrepoidÚresultr r r r.ñs     zRPMTransaction.newcCst|ddƒ}|r|S|jS)NZ_force_swdb_repoid)ÚgetattrZreponame)r rSrhr r r rdüs zRPMTransaction.get_repoidcCs|jj |j|jd¡S)úGet reason for packageéÿÿÿÿ)rrrKr+ra©r rSr r r reszRPMTransaction.get_reasoncCstj | |¡¡S)rj)rrZTransactionItemReasonToStringrerlr r r Úget_reason_nameszRPMTransaction.get_reason_namecCs4|pg}|D]"}| |tjj¡}|r | |¡q dSr)r.rrÚTransactionItemAction_OBSOLETEDrf)r Ú obsoletedrgZobsr r r r Ú_add_obsoleted s zRPMTransaction._add_obsoletedcCs6| |tjj¡}|j|tjj|d}|j||ddS©N)rg)r.rrr(Ú TransactionItemAction_DOWNGRADEDrp©r r.ÚoldroÚti_newÚti_oldr r r Ú add_downgradeszRPMTransaction.add_downgradecCs| ||¡dSr)Ú add_remove)r rtrPr r r Ú add_eraseszRPMTransaction.add_erasecCs4|durtjj}| |tjj|¡}|j||ddSrq)rrrr.r"rp)r r.rorPrur r r Ú add_installszRPMTransaction.add_installcCs6| |tjj¡}|j|tjj|d}|j||ddSrq)r.rrÚTransactionItemAction_REINSTALLÚ!TransactionItemAction_REINSTALLEDrprsr r r Ú add_reinstallszRPMTransaction.add_reinstallcCs"|p tjj}| |tjj|¡}dSr)rrrr.r$)r rtrPrvr r r rx$s zRPMTransaction.add_removecCs6| |tjj¡}|j|tjj|d}|j||ddSrq)r.rrr&ÚTransactionItemAction_UPGRADEDrprsr r r Ú add_upgrade(szRPMTransaction.add_upgradecCs^|jr dS|jjrdSz.|drB| ¡sBt tdƒ |¡¡WdSWntyXYdS0dS)NrZmodularitylabelz\No available modular metadata for modular package '{}', it cannot be installed on the systemé) Z _from_cmdlineZrepoZmodule_hotfixesZ_is_in_active_modulerZcriticalrÚformatÚ ValueError)r ÚhdrrSr r r Ú_test_fail_safe-s ÿ  zRPMTransaction._test_fail_safec CsLd}|D]&}zâ|jtjjkrL|jj}|| ||j¡7}| ||d¡n¤|jtjjkrl|  |jj ¡n„|jtjj kr¦|jj}|| ||j¡7}| ||d¡nJ|jtjj krà|jj}|| ||j¡7}| ||d¡n|jtjj krþ|  |jj ¡nò|jtjjkr6|jj}|| ||j¡7}| ||¡nº|jtjjkrV|  |jj ¡nš|jtjjkrv|  |jj ¡nz|jtjjkr°|jj}|| ||j¡7}| ||d¡n@|jtjjkrÐ|  |jj ¡n |jtjjkrântd|jƒ‚Wqtjy.}z tj td|ƒ¡‚WYd}~qd}~00q|rHtj tdƒ¡‚|S)z!Populate the RPM transaction set.rÚur:z%TransactionItemAction not handled: %szAn rpm exception occurred: %sNz1No available modular metadata for modular package)rrrr(rSZ_headerr„Z addInstallrrZaddEraseÚidxr"ZTransactionItemAction_OBSOLETErnr{Z addReinstallr|r$r&r~Z#TransactionItemAction_REASON_CHANGEÚ RuntimeErrorÚrpmÚerrorr^Ú exceptionsÚErrorr)r ÚtsZmodular_problemsÚtsirƒÚer r r Ú_populate_rpm_ts;sR ,zRPMTransaction._populate_rpm_tsc CsRtƒ}|D]B}|jtjjvr z| |j¡Wq tyJtd|ƒ‚Yq 0q |S©Nz*TransactionItem is has no RPM attached: %s) rLrr^rZFORWARD_ACTIONSrOrSÚKeyErrorr‡©r rhrr r r Ú install_setms zRPMTransaction.install_setc Cs\tƒ}|D]L}|jtjjtjjgvr z| |j¡Wq t yTt d|ƒ‚Yq 0q |Sr) rLrr^rZBACKWARD_ACTIONSrr|rOrSr‘r‡r’r r r Ú remove_setys zRPMTransaction.remove_setcCs,dd„|jDƒ}t|ƒr(tdƒ|dSdS)zj Ensures all the members can be passed to rpm as they are to perform the transaction. cSsg|]}|jdkr|‘qS)Úsrc)ra)r9rSr r r r;‰r<z3RPMTransaction._rpm_limitations..z+Will not install a source rpm package (%s).rN)r“rr)r Z src_installsr r r Ú_rpm_limitations…s ÿzRPMTransaction._rpm_limitationscs‡fdd„|DƒS)Ncsg|]}|jˆkr|‘qSr ©r)r9rr—r r r;r<z-RPMTransaction._get_items..r )r rr r—r Ú _get_itemsszRPMTransaction._get_items)N)NN)N)N)N)NN)N)N)N)r3r4r5rrBrrcr.rdrermrprwryrzr}rxrr„rÚpropertyr“r”r–r˜r r r r r[Ês.          2   r[)Zlibdnf.transactionrZdnf.db.historyr^Zdnf.transactionZdnf.exceptionsZdnf.i18nrZdnf.utilrrˆÚobjectrr6rUr[r r r r Ús  3<<