grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a ýœÞiÊ4ã@sÆddlmZddlmZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl mZgd¢ZejZejZejZejZejZejZdeeefZejZejZejZejZejZejZejZejZejZej Z ej!Z!ej"Z"ej#Z#ej$Z$ej%Z%ej&Z&ej'Z'ej(Z(ej)Z)ej*Z*ej+Z+ej,Z,ej-Z-ej.Z.ej/Z/ej0Z0ej1Z1ej2Z2ej3Z3ej4Z4ej5Z5ej6Z6ej7Z7ej8Z8ej9Z9ej:Z:ej;Z;ejZ>ej?Z?dd „Z@ejAZAejBZBejCZCejDZDejEZEejFZFejGZGejHZHejIZIejJZJejKZKejLZLejMZMejNZNejOZOejPZPejQZQejRZRejSZSejTZTejUZUejVZVejWZWejXZXejYZYejZZZej[Z[ej\Z\ej]Z]ej^Z^ej_Z_ej`d kZae bd ¡Zcd d „ZdGdd„dejeƒZeGdd„dejfƒZfdd„Zgdd„ZhGdd„dejiƒZiGdd„dejjƒZjdS)é)Úabsolute_import)Ú version_infoNé)Ú_hawkey)9ÚVERSIONÚ VERSION_MAJORÚ VERSION_MINORÚ VERSION_PATCHÚtestÚ CHKSUM_MD5Ú CHKSUM_SHA1Ú CHKSUM_SHA256Ú CHKSUM_SHA384Ú CHKSUM_SHA512ÚICASEÚCMDLINE_REPO_NAMEÚMODULE_FAIL_SAFE_REPO_NAMEÚSYSTEM_REPO_NAMEÚ REASON_DEPÚ REASON_USERÚ REASON_CLEANÚREASON_WEAKDEPÚ FORM_NEVRAÚ FORM_NEVRÚFORM_NEVÚFORM_NAÚ FORM_NAMEZFORM_ALLÚMODULE_FORM_NSVCAPÚMODULE_FORM_NSVCAÚMODULE_FORM_NSVAPÚMODULE_FORM_NSVAÚMODULE_FORM_NSAPÚMODULE_FORM_NSAÚMODULE_FORM_NSVCPÚMODULE_FORM_NSVPÚMODULE_FORM_NSVCÚMODULE_FORM_NSVÚMODULE_FORM_NSPÚMODULE_FORM_NSÚMODULE_FORM_NAPÚMODULE_FORM_NAÚMODULE_FORM_NPZMODULE_FORM_NArchExceptionÚ ExceptionÚQueryExceptionÚRuntimeExceptionÚValueExceptionÚ chksum_nameÚ chksum_typeÚ split_nevraÚconvert_hawkey_reasonÚGoalÚNEVRAÚNSVCAPÚPackageÚQueryÚRepoÚSackÚSelectorÚSubjectz%d.%d.%dcCsH|tkrtjjS|tkr tjjS|tkr0tjjS|tkr@tjj Stjj S©N) rÚlibdnfÚ transactionZTransactionItemReason_USERrZ TransactionItemReason_DEPENDENCYrZTransactionItemReason_CLEANrZ%TransactionItemReason_WEAK_DEPENDENCYÚTransactionItemReason_UNKNOWN)Z hawkey_reason©rAú5/usr/lib64/python3.9/site-packages/hawkey/__init__.pyr3rsr3éZdnfcCst |¡}t|ŽSr=)rr2r5)ÚsÚtrArArBr2§s r2c@s,eZdZgd¢Zdd„Zdd„Zdd„ZdS) r6)ÚnameÚstreamÚversionÚcontextÚarchÚprofilecCs&|jo$|j o$|j o$|j o$|j Sr=)rFrGrHrJrK©ÚselfrArArBÚ_has_just_name°s ÿÿzNSVCAP._has_just_namecsH‡fdd„ˆjDƒ}dd„tˆj|ƒDƒ}d dd„|Dƒ¡}d |¡S)Ncsg|]}tˆ|ƒ‘qSrA)Úgetattr)Ú.0ÚirLrArBÚ µóz#NSVCAP.__repr__..cSs g|]\}}|dur||f‘qSr=rA©rPÚfieldÚvaluerArArBrR¶rSz, cSsg|]\}}d ||¡‘qS)z{}={})ÚformatrTrArArBrR·rSz )Ú NSVCAP_FIELDSÚzipÚjoinrW)rMÚvaluesÚitemsZ items_strrArLrBÚ__repr__´szNSVCAP.__repr__cCs4d}|jD]$}t||ƒ}t||ƒ}|||kM}q |S)NT)rXrO)rMÚotherÚresultrUZ value_selfZ value_otherrArArBÚ__eq__ºs    z NSVCAP.__eq__N)Ú__name__Ú __module__Ú __qualname__rXrNr]r`rArArArBr6¬sr6csJeZdZeeeeeee hZ ‡fdd„Z ‡fdd„Z dd„Z dd„Z‡ZS) r4cstt|ƒ |¡tƒ|_dSr=)Úsuperr4Ú__init__ÚsetÚ group_members)rMÚsack©Ú __class__rArBreÎsz Goal.__init__cs4tt|ƒ |¡}|tkr,|j|jvr,tjjSt |ƒSr=) rdr4Ú get_reasonrrFrgr>r?ÚTransactionItemReason_GROUPr3)rMÚpkgÚcoderirArBrkÒszGoal.get_reasoncCs$|tjjkr |j|jvr tjjS|Sr=)r>r?r@rFrgrl)rMrmZcurrent_reasonrArArBÚ group_reasonØszGoal.group_reasoncCs(d}t |¡| |j¡}| |¡dS)Nz*--> Finding unneeded leftover dependencies)ÚloggerÚdebugZ userinstalledZswdb)rMÚqueryÚhistoryÚmsgZuser_installedrArArBÚpush_userinstalledÝs  zGoal.push_userinstalled)rarbrcÚERASEÚ DISTUPGRADEÚDISTUPGRADE_ALLÚ DOWNGRADEÚINSTALLÚUPGRADEÚ UPGRADE_ALLZ _goal_actionsrerkroruÚ __classcell__rArArirBr4Ãsù  r4cCstst|tƒr| dd¡S|S)a« Identity, except when obj is unicode then return a UTF-8 string. This assumes UTF-8 is good enough for libsolv and always will be. Else we'll have to deal with some encoding configuration. Since we use this to match string queries, we have to enforce 'strict' and potentially face exceptions rather than bizarre results. (Except that as long as we stick to UTF-8 it never fails.) Úutf8Ústrict)ÚPY3Ú isinstanceZunicodeÚencode)ÚobjrArArBÚ_encodeæs  r„cCs>tst|tƒstr"t|tƒr"|g}t|tƒoùrSz"is_glob_pattern..)r€r�Z basestringÚstrÚlistÚany)ÚpatternrArArBÚis_glob_patternõsÿÿr‹csjeZdZd‡fdd„ Z‡fdd„Zedd„ƒZdd „Zd‡fd d „ Zddd„Z dd„Z e dd„ƒZ ‡Z S)r<Fcstt|ƒj||d�dS)N)Ú ignore_case)rdr<re)rMZpkg_specrŒrirArBreþszSubject.__init__c/s0tt|ƒj|i|¤Ž}|D]}t|d�VqdS)N)Únsvcap)rdr<Únsvcap_possibilitiesr6)rMÚargsÚkwargsZpossr�rirArBrŽszSubject.nsvcap_possibilitiescCs|j d¡p|j d¡S)Nú/z*/)rŠÚ startswithrLrArArBÚ_filename_patternszSubject._filename_patterncCs$|dr |djr t|djƒSdS)NÚnevraF)rJr‹)rMÚsolutionrArArBÚ_is_arch_specified szSubject._is_arch_specifiedNc#sDt dt¡d}t |t¡tt|ƒj|d�D]}t|d�Vq.dS)NÚalwayszŠThe function 'nevra_possibilities' is deprecated. Please use 'get_nevra_possibilities' instead. The function will be removed on 2018-01-01)Úforms)r”)ÚwarningsÚ simplefilterÚDeprecationWarningÚwarnrdr<Zget_nevra_possibilitiesr5)rMZformrtr”rirArBÚnevra_possibilitiess   zSubject.nevra_possibilitiesTcCs|dur|j|j|dd�}|d}t|ƒdkr2gS| ||¡}|sFgS| ¡}|js^t|jƒsx|d�rX|djdu�rXd} |r˜|dr˜|d  ¡r˜d} |r¨|j |d�}|  ¡} |j dd „| Dƒd �} |rÔ|  | ¡|   | ¡}g} | ¡ ¡D]d\} }| �r>|j ¡j|d �}| ¡�s$|jdd �||j ¡j |d � ¡}|  | |j|¡¡qî| S|�r¶|d�r¶|d  ¡�r¶|�r–|  |j ¡j |d �¡}n |  |j ¡j |j dd �d �¡}| ¡}|�rÎ|  |¡|�ræ|j |d�  |¡}|�sðgS| |j|¡gSdS)NF)r˜Zwith_srcrrrr”T)ÚreponamecSsg|] }|j‘qSrA©rF)rPrmrArArBrR1rSz/Subject._get_best_selectors..rŸ©rm)Zlatest_per_arch_by_priority)Ú obsoletes)Zget_best_solutionrhÚlenÚ_apply_security_filtersZ installedr“r‹rŠrFZ has_just_nameÚfilterZ availableZ_report_already_installedÚunionZ _name_dictr\rrZfiltermÚrunÚappendÚ_list_or_query_to_selector)rMÚbaser˜r¡ržZreportsr•ÚqZinstalled_queryZwith_obsoletesZavailable_queryZinstalled_relevant_queryZsltrsrFZ pkgs_listZobsoletes_queryrArArBÚ_get_best_selectorssb  ÿ ÿ  ÿ     ÿ   zSubject._get_best_selectorscCs(|j|dd�}|s$t d |j¡¡|S)NF)Úwarningz%No security updates for argument "{}")Z_merge_update_filtersrpr¬rWrŠ)rMrrr©rArArBr£UszSubject._apply_security_filterscCst|ƒ}|j|d�S)Nr )r;rf)rhZ list_or_queryZsltrrArArBr¨[sz"Subject._list_or_query_to_selector)F)N)NTNFN)rarbrcrerŽÚpropertyr“r–r�r«r£Ú staticmethodr¨r}rArArirBr<üs   ÿ =r<cseZdZ‡fdd„Z‡ZS)r9cs0t dt¡d}t |t¡tt|ƒ |¡dS)Nr—zoThe class hawkey.Repo is deprecated. Please use dnf.repo.Repo instead. The class will be removed on 2019-12-31.)r™ršr›rœrdr9re)rMrFrtrirArBrecs  z Repo.__init__)rarbrcrer}rArArirBr9asr9)kZ __future__rÚsysrZpython_versionÚ collectionsÚ functoolsZloggingÚoperatorÚtimer™Zlibdnf.transactionr>ÚrÚ__all__r5r8r;rrr rrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+Z MODULE_FORM_NrZEQZLTZGTZAPPLY_EXCLUDESZIGNORE_MODULAR_EXCLUDESZIGNORE_REGULAR_EXCLUDESZIGNORE_EXCLUDESr r r rrrrrrr3ZADVISORY_UNKNOWNZADVISORY_SECURITYZADVISORY_BUGFIXZADVISORY_ENHANCEMENTZADVISORY_NEWPACKAGEZREFERENCE_UNKNOWNZREFERENCE_BUGZILLAZ REFERENCE_CVEZREFERENCE_VENDORr7ZReldepr:r,r-r/Z ArchExceptionr.r0r1Z detect_archrvrwrxryrzr{r|ZALLOW_UNINSTALLZ FORCE_BESTZVERIFYZIGNORE_WEAK_DEPSÚmajorr€Z getLoggerrpr2r6r4r„r‹r<r9rArArArBÚsÆ      #e