ó ¾[/\c@sddlZddlZddlZddlmZdefd„ƒYZdefd„ƒYZ defd„ƒYZ d efd „ƒYZ dS( iÿÿÿÿN(t_t PersistorBasecBsbeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z RS( cCs(||_i|_i|_i|_dS(N(thistoryt _installedt_removedt _upgraded(tselfR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt__init__s   cCs't|jƒt|jƒt|jƒS(N(tlenRRR(R((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt__len__$scCsi|_i|_i|_dS(N(RRR(R((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytclean's  cCs t‚dS(N(tNotImplementedError(Rtobj((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt _get_obj_id,scCs||j|j|ƒs( t__name__t __module__RR R R RRRRRR(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs         tGroupPersistorcBsGeZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsA|jjjƒ}g|D]}|jƒr|^q}t|ƒS(N(RtswdbtgetItemstgetCompsGroupItemtiter(Rtitemsti((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt__iter__Ds%cCs |jƒS(N(t getGroupId(RR ((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR IscCsJ|jjjƒ}|j|ƒ|j|ƒ|j|ƒ|j|ƒ|S(N(RRtcreateCompsGroupItemt setGroupIdtsetNametsetTranslatedNametsetPackageTypes(RRRRRt swdb_group((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRLs     cCs/|jjj|ƒ}|sdS|jƒ}|S(N(RRRtNone(RRR)((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRTs  cCs|jjj|ƒS(N(RRtgetCompsGroupItemsByPattern(RR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR[scCs|jjj|ƒS(N(RRtgetPackageCompsGroups(Rtpkg_name((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytget_package_groups^scCs0|jjj|ddƒ}|tjjkr1tSt|j|ƒƒ}xk|j j ƒD]Z\}}xK|j ƒD]=}|j ƒ|krqon|j ƒsŸqon|j|ƒqoWqVWxk|jj ƒD]Z\}}xK|j ƒD]=}|j ƒ|krûqÝn|j ƒs qÝn|j|ƒqÝWqÄW|r,tStS(Ntiþÿÿÿ(RRtresolveRPMTransactionItemReasontlibdnft transactiontTransactionItemReason_GROUPtFalsetsetR.RR t getPackagestgetNamet getInstalledRRtaddtTrue(RR-treasontpackage_groupstgroup_idtgrouptpkg((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytis_removable_pkgas*  ( RRR"R RRRR.R@(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRBs      tEnvironmentPersistorcBsGeZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsA|jjjƒ}g|D]}|jƒr|^q}t|ƒS(N(RRRtgetCompsEnvironmentItemR(RR R!((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR"~s%cCs |jƒS(N(tgetEnvironmentId(RR ((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR ƒscCsJ|jjjƒ}|j|ƒ|j|ƒ|j|ƒ|j|ƒ|S(N(RRtcreateCompsEnvironmentItemtsetEnvironmentIdR&R'R((RRRRRtswdb_env((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR†s     cCs/|jjj|ƒ}|sdS|jƒ}|S(N(RRRBR*(RRRF((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRŽs  cCs|jjj|ƒS(N(RRt!getCompsEnvironmentItemsByPattern(RR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR•scCs|jjj|ƒS(N(RRtgetCompsGroupEnvironments(RR=((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytget_group_environments˜scCs|jjj|ƒ}|stSt|j|ƒƒ}xk|jjƒD]Z\}}xK|jƒD]=}|j ƒ|kr{q]n|j ƒsq]n|j |ƒq]WqDWxk|j jƒD]Z\}}xK|jƒD]=}|j ƒ|kréqËn|j ƒsûqËn|j |ƒqËWq²W|rtStS(N(RR>RR4R5RIRR t getGroupsR#R8RRR9R:(RR=R)tgroup_environmentstenv_idtenvR>((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytis_removable_group›s*  ( RRR"R RRRRIRN(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRA|s      tRPMTransactioncBsàeZdd„Zd„Zd„Zd„Zddd„Zd„Zd„Z dd„Z dd„Z dd „Z ddd „Z dd „Zdd „Zdd „Zd„Zed„ƒZed„ƒZd„Zd„ZRS(cCsI||_||_|js<y|jjjƒWq<q<Xni|_dS(N(RR2RtinitTransactiont _swdb_ti_pkg(RRR2((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR·s   cCsq|jr|jjƒ}n|jjjƒ}g|D]-}|jƒr4tjjj|j|ƒ^q4}t|ƒS(N( R2RRRt getRPMItemtdnftdbtRPMTransactionItemWrapperR(RR R!((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR"Ãs  :cCsq|jr|jjƒ}n|jjjƒ}g|D]-}|jƒr4tjjj|j|ƒ^q4}t|ƒS(N( R2RRRRRRSRTRUR(RR R!((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR Ìs  :cCsl|jjjƒ}|j|jƒ|j|jp4dƒ|j|jƒ|j |j ƒ|j |j ƒ|S(Ni( RRt createRPMItemR&RtsetEpochtepocht setVersiontversiont setReleasetreleasetsetArchtarch(RR?trpm_item((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt_pkg_to_swdb_rpm_itemÔscCs|j|ƒ}|j|ƒ}|dkr<|j|ƒ}n|jjj||||ƒ}|rp|j|ƒn||j|<|S(N( R`t get_repoidR*t get_reasonRRtaddItemt addReplacedByRQ(RR?tactionR;t replaced_byR_trepoidtresult((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRÝs  cCs#t|ddƒ}|r|S|jS(Nt_force_swdb_repoid(tgetattrR*treponame(RR?Rh((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRaèscCs|jjj|j|jdƒS(sGet reason for packageiÿÿÿÿ(RRR0RR^(RR?((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRbîscCsO|p g}x<|D]4}|j|tjjƒ}|r|j|ƒqqWdS(N(RR1R2tTransactionItemAction_OBSOLETEDRd(Rt obsoletedRftobstti((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt_add_obsoletedòs   cCsM|j|tjjƒ}|j|tjjd|ƒ}|j|d|ƒdS(NRf(RR1R2tTransactionItemAction_DOWNGRADEt TransactionItemAction_DOWNGRADEDRp(RRtoldRmtti_newtti_old((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_downgradeùscCs|j||ƒdS(N(t add_remove(RRsR;((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_eraseþscCsD|ptjj}|j|tjj|ƒ}|j|d|ƒdS(NRf(R1R2tTransactionItemReason_USERRtTransactionItemAction_INSTALLRp(RRRmR;Rt((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_installscCsM|j|tjjƒ}|j|tjjd|ƒ}|j|d|ƒdS(NRf(RR1R2tTransactionItemAction_REINSTALLt!TransactionItemAction_REINSTALLEDRp(RRRsRmRtRu((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_reinstallscCs1|ptjj}|j|tjj|ƒ}dS(N(R1R2RyRtTransactionItemAction_REMOVE(RRsR;Ru((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRw scCsM|j|tjjƒ}|j|tjjd|ƒ}|j|d|ƒdS(NRf(RR1R2tTransactionItemAction_UPGRADEtTransactionItemAction_UPGRADEDRp(RRRsRmRtRu((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_upgradescCsx |D]}|jtjjkrD|jj}|j||dƒq|jtjjkro|j|jj ƒq|jtjj kr¦|jj}|j||dƒq|jtjj krÝ|jj}|j||dƒq|jtjj kr|j|jj ƒq|jtjj kr<|jj}|j||ƒq|jtjjkrTq|jtjjkr|j|jj ƒq|jtjjkr¶|jj}|j||dƒq|jtjjkrá|j|jj ƒq|jtjjkrùqtd|jƒ‚qW|S(s!Populate the RPM transaction set.tuR!s%TransactionItemAction not handled: %s(ReR1R2RqR?t_headert addInstallRrtaddErasetidxRztTransactionItemAction_OBSOLETERlR|t addReinstallR}RR€Rt#TransactionItemAction_REASON_CHANGEt RuntimeError(Rttsttsithdr((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt_populate_rpm_tss<      cCsntƒ}x^|D]V}|jtjjkry|j|jƒWqftk rbtd|ƒ‚qfXqqW|S(Ns*TransactionItem is has no RPM attached: %s( R5ReRSR2tFORWARD_ACTIONSR9R?tKeyErrorR‹(RRhR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt install_set:s   cCs{tƒ}xk|D]c}|jtjjtjjgkry|j|jƒWqst k rot d|ƒ‚qsXqqW|S(Ns*TransactionItem is has no RPM attached: %s( R5ReRSR2tBACKWARD_ACTIONSR1R}R9R?R‘R‹(RRhR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt remove_setFs  " cCsMg|jD]}|jdkr |^q }t|ƒrItdƒ|dSdS(sj Ensures all the members can be passed to rpm as they are to perform the transaction. tsrcs+Will not install a source rpm package (%s).iN(R’R^RRR*(RR?t src_installs((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt_rpm_limitationsRs +   cCs&g|D]}|j|kr|^qS(N(Re(RReR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt _get_items\sN(RRR*RR"R R`RRaRbRpRvRxR{R~RwR‚RtpropertyR’R”R—R˜(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRO¶s&           &  ( tlibdnf.transactionR1tdnf.db.historyRStdnf.transactiontdnf.i18nRtobjectRRRARO(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyts   &::