a ©!c?ã@sVddlmZddlmZddlmZddlmZddlZddlZ Gdd„dej ƒZ dS)é)Úabsolute_import)Úunicode_literals)Ú_)ÚcommandsNc@s8eZdZdZdZedƒZedd„ƒZdd„Z dd „Z d S) Ú CheckCommandzSA class containing methods needed by the cli to execute the check command. )Úcheckz#check for problems in the packagedbc Csœ|jddddtdƒd|jddddtd ƒd|jd ddd td ƒd|jd dddtdƒd|jddddtdƒd|jddddd ddggtjddS)Nz--allÚ check_typesÚ append_constÚallzshow all problems; default)ÚdestÚactionÚconstÚhelpz--dependenciesÚ dependencieszshow dependency problemsz --duplicatesÚ duplicateszshow duplicate problemsz --obsoletedÚ obsoletedzshow obsoleted packagesz --providesÚprovideszshow problems with providesÚcheck_yum_typesÚ*)ÚnargsÚchoicesr)Ú add_argumentrÚargparseÚSUPPRESS)Úparser©rú:/usr/lib/python3.9/site-packages/dnf/cli/commands/check.pyÚ set_argparser$s2þþþþþ ÿþzCheckCommand.set_argparsercCsxd|jj_|jjr<|jjr0|jj|jj|j_n |jj|j_|jjsPdh|j_nt|jjƒ|j_|jjj dg7_ dS)NTr ) ZcliZdemandsZsack_activationÚoptsrrÚsetÚbaseÚconfZdisable_excludes)ÚselfrrrÚ configure;s ÿ   zCheckCommand.configurec Csjtƒ}|jj ¡ ¡}|jj ddh¡rœd}|D]f}t|jƒtt|j ƒt|j ƒƒBD]Ì}t |ƒ  d¡rnqZt |j|gdƒsZt |ƒ  d¡rô|dur¤tj |j¡}tj |¡}|jt |ƒdtj |¡}|jjj|_|j|dd| ¡}|rôqZtdƒ} | |  |jjj |¡|jjj |¡¡¡qZ|jD]j} |j| gt | ƒ  ¡d d } | D]B} d } | |  |jjj |¡|jjj | ¡|jjj | ¡¡¡qRq.q2|jj dd h¡r4|j !|¡} | "¡ #| ¡ $¡}| %¡D]\\}}| &¡|d d…D]<}tdƒ |jjj |d ¡|jjj |¡¡} | | ¡qòqÖ|jj ddh¡r¾|D]p}|j'D]b}|j|gt |ƒ  ¡d d }t |ƒrVtdƒ |jjj |d ¡|jjj |¡¡} | | ¡qVqL|jj ddh¡r2|D]Z}|j(D]L}||j|gdvràtdƒ} | |  |jjj |¡|jjj |¡¡¡qàqÖt)|ƒD]} t*| ƒq:|rftj+ ,d t |ƒ¡¡‚dS)Nr rZrpmlib)rú(F)ZselectZoptionalz{} has missing requires of {}r)rÚnamez"{} has installed conflict "{}": {}réz{} is a duplicate with {}rz{} is obsoleted by {}rz%{} provides {} but it cannot be foundzCheck discovered {} problem(s))-rr ÚsackÚqueryZ installedrrÚ intersectionZregular_requiresZ requires_preZprereq_ignoreinstÚstrÚ startswithÚlenÚfilterÚdnfZ rpmdb_sackÚselectorZSelectorÚgoalZGoalr!Zprotect_running_kernelÚinstallÚrunrÚaddÚformatÚoutputZtermZboldÚ conflictsÚsplitZ_get_installonly_queryZ duplicatedÚ differenceZ _name_dictÚitemsÚsortZ obsoletesrÚsortedÚprintÚ exceptionsÚError)r"Z output_setÚqr'ÚpkgZrequirer/r0ZsolvedÚmsgZconflictZ conflictedZ conflict_pkgZ installonlyZdupsr%ZpkgsÚdupZobsoleterZproviderrrr2Is” &   þ ÿý þ ÿ þ þ   ÿzCheckCommand.runN) Ú__name__Ú __module__Ú __qualname__Ú__doc__ÚaliasesrZsummaryÚ staticmethodrr#r2rrrrrs r) Z __future__rrZdnf.i18nrZdnf.clirrZdnf.exceptionsr.ZCommandrrrrrÚs