3 ©ft`Ð ã@spddlmZddlmZddlZddlmZddlmZddl Z ddl Z ddl Z e j dƒZ Gdd„dejƒZdS) é)Úprint_function)Úunicode_literalsN)Ú_)ÚcommandsÚdnfc@sLeZdZdZedƒZedd„ƒZdd„Zdd„Z d d „Z d d „Z d d„Z dS)Ú MarkCommandÚmarkz7mark or unmark installed packages as installed by user.cCs6|jdddddgtdƒd�|jdd d td ƒd �dS) NréZinstallÚremoveÚgroupzhinstall: mark as installed by user remove: unmark as installed by user group: mark as installed by group)ÚnargsÚchoicesÚhelpÚpackageú+ZPACKAGEzPackage specification)r Úmetavarr)Ú add_argumentr)Úparser©rú/usr/lib/python3.6/mark.pyÚ set_argparser)s  zMarkCommand.set_argparsercCs,|jjj|tjjƒtjtdƒt |ƒƒdS)Nz%s marked as user installed.) ÚbaseÚhistoryÚ set_reasonÚlibdnfÚ transactionZTransactionItemReason_USERÚloggerÚinforÚstr)ÚselfÚpkgrrrÚ _mark_install2szMarkCommand._mark_installcCs,|jjj|tjjƒtjtdƒt |ƒƒdS)Nz%s unmarked as user installed.) rrrrrZ TransactionItemReason_DEPENDENCYrrrr)rr rrrÚ _mark_remove6szMarkCommand._mark_removecCs,|jjj|tjjƒtjtdƒt |ƒƒdS)Nz%s marked as group installed.) rrrrrZTransactionItemReason_GROUPrrrr)rr rrrÚ _mark_group:szMarkCommand._mark_groupcCs$|jj}d|_d|_d|_d|_dS)NTF)ÚcliÚdemandsZsack_activationZ root_userZavailable_reposZ resolving)rr%rrrÚ configure>s zMarkCommand.configurec Cs|jjd}|jj}tjt|d|ƒƒ}g}xR|D]J}tjj|ƒ}|j |j j ƒ}x|D] }||ƒqVWt |ƒdkr2|j |ƒq2W|r¸tjtdƒƒx|D]}tjtdƒ|ƒq˜Wtjj‚|j jjƒ}|dkrØ|j jƒ} n|j} |j jj| ggƒ|j jj| ƒdS)NrZ_mark_zError:zPackage %s is not installed.)ZoptsrrÚ functoolsÚpartialÚgetattrrZsubjectZSubjectZget_best_queryrZsackÚlenÚappendrÚerrorrr$ZCliErrorrZlastZ_rpmdb_versionZend_rpmdb_versionZbegÚend) rÚcmdZpkgsZ mark_funcZnotfoundr ZsubjÚqÚoldZ rpmdb_versionrrrÚrunEs,         zMarkCommand.runN)r) Ú__name__Ú __module__Ú __qualname__ÚaliasesrZsummaryÚ staticmethodrr!r"r#r&r1rrrrr$s r)Z __future__rrZlibdnf.transactionrZdnf.i18nrZdnf.clirrr'ZloggingZ getLoggerrZCommandrrrrrÚs