3 ʣ`�1�9@s4ddlmZddlmZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl mZdddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;dg9ZejZejZejZejZejZejZd?eeefZejZejZejZejZejZejZejZejZejZej 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?d@d5�Z@ejAZAejBZBejCZCejDZDejEZEejFZFejGZGejHZHejIZIejJZJejKZKejLZLejMZMejNZNejOZOejPZPejQZQejRZRejSZSejTZTejUZUejVZVejWZWejXZXejYZYejZZZej[Z[ej\Z\ej]Z]ej^Z^ej_Z_ej`dAkZaejbdB�ZcdCd4�ZdGdDd8�d8eje�ZeGdEd6�d6ejf�ZfdFdG�ZgdHdI�ZhGdJd>�d>eji�ZiGdKd;�d;ejj�ZjdS)L�)�absolute_import)� version_infoN�)�_hawkey�VERSION� VERSION_MAJOR� VERSION_MINOR� VERSION_PATCHZtest� 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�r?� /usr/lib64/python3.6/__init__.pyr2rs�ZdnfcCstj|�}t|�S)N)rr1r4)�s�tr?r?r@r1�s c@s4eZdZddddddgZdd�Zd d �Zd d �Zd S)r5�name�stream�version�context�arch�profilecCs&|jo$|j o$|j o$|j o$|j S)N)rDrErFrHrI)�selfr?r?r@�_has_just_name�szNSVCAP._has_just_namecsH�fdd��jD�}dd�t�j|�D�}djdd�|D��}dj|�S)Ncsg|]}t�|��qSr?)�getattr)�.0�i)rJr?r@� �sz#NSVCAP.__repr__..cSs g|]\}}|dk r||f�qS)Nr?)rM�field�valuer?r?r@rO�sz, cSsg|]\}}dj||��qS)z{}={})�format)rMrPrQr?r?r@rO�sz )� NSVCAP_FIELDS�zip�joinrR)rJ�values�itemsZ items_strr?)rJr@�__repr__�szNSVCAP.__repr__cCs8d}x.|jD]$}t||�}t||�}|||kM}q W|S)NT)rSrL)rJ�other�resultrPZ value_selfZ value_otherr?r?r@�__eq__�s    z NSVCAP.__eq__N)�__name__� __module__� __qualname__rSrKrXr[r?r?r?r@r5�scsJeZdZeeeeeee hZ �fdd�Z �fdd�Z dd�Z dd�Z�ZS) r3cstt|�j|�t�|_dS)N)�superr3�__init__�set� group_members)rJ�sack)� __class__r?r@r`�sz Goal.__init__cs4tt|�j|�}|tkr,|j|jkr,tjjSt |�S)N) r_r3� get_reasonrrDrbr<r=�TransactionItemReason_GROUPr2)rJ�pkg�code)rdr?r@re�szGoal.get_reasoncCs$|tjjkr |j|jkr tjjS|S)N)r<r=r>rDrbrf)rJrgZcurrent_reasonr?r?r@� group_reason�szGoal.group_reasoncCs(d}tj|�|j|j�}|j|�dS)Nz*--> Finding unneeded leftover dependencies)�logger�debugZ userinstalledZswdb)rJ�query�history�msgZuser_installedr?r?r@�push_userinstalled�s  zGoal.push_userinstalled)r\r]r^�ERASE� DISTUPGRADE�DISTUPGRADE_ALL� DOWNGRADE�INSTALL�UPGRADE� UPGRADE_ALLZ _goal_actionsr`reriro� __classcell__r?r?)rdr@r3�s  cCs t rt|t�r|jdd�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)�objr?r?r@�_encode�s  r~cCs@t rt|t�str$t|t�r$|g}t|t�o>tdd�|D��S)Ncss|]}t|�td�@VqdS)z*[?N)ra)rM�pr?r?r@� �sz"is_glob_pattern..)rzr{Z basestring�str�list�any)�patternr?r?r@�is_glob_pattern�sr�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)r_r;r`)rJZpkg_specr�)rdr?r@r`�szSubject.__init__c/s0tt|�j||�}x|D]}t|d�VqWdS)N)�nsvcap)r_r;�nsvcap_possibilitiesr5)rJ�args�kwargsZpossr�)rdr?r@r�s zSubject.nsvcap_possibilitiescCs|jjd�p|jjd�S)N�/z*/)r�� startswith)rJr?r?r@�_filename_patternszSubject._filename_patterncCs$|dr |djr t|dj�SdS)N�nevraF)rHr�)rJ�solutionr?r?r@�_is_arch_specified szSubject._is_arch_specifiedNc#sHtjdt�d}tj|t�x&tt|�j|d�D]}t|d�Vq0WdS)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�warnr_r;Zget_nevra_possibilitiesr4)rJZformrnr�)rdr?r@�nevra_possibilitiess   zSubject.nevra_possibilitiesTcCs�|dkr|j|j|dd�}|d}t|�dkr2gS|j||�}|sFgS|j rXt|j�sp|dol|djdk�r4d}|r�|dr�|dj�r�d}|j �} |r�|j |d�}|j �} | j dd �| D�d �} |r�|j | �| j | �}g} xL|j�j�D]<\} }|�r||jj�j |d �j�}| j|j|j|��q�W| S|�rj|d�rj|dj��rj|j |jj�j |d ��}|j �} |�r�|j | �|�r�|j |d�j | �}|�s�gS|j|j|�gSdS) NF)r�Zwith_srcrlrr�T)�reponamecSsg|] }|j�qSr?)rD)rMrgr?r?r@rO1sz/Subject._get_best_selectors..)rD)� obsoletes)Zget_best_solutionrc�len�_apply_security_filtersr�r�r�rDZ has_just_nameZ installed�filterZ availableZ_report_already_installed�unionZ _name_dictrWrlZrun�append�_list_or_query_to_selector)rJ�baser�r�r�Zreportsr��qZwith_obsoletesZinstalled_queryZavailable_queryZinstalled_relevant_queryZsltrsrDZ pkgs_listr?r?r@�_get_best_selectorssN       zSubject._get_best_selectorscCs(|j|dd�}|s$tjdj|j��|S)NF)�warningz%No security updates for argument "{}")Z_merge_update_filtersrjr�rRr�)rJrlr�r?r?r@r�JszSubject._apply_security_filterscCst|�}|j|d�S)N)rg)r:ra)rcZ list_or_queryZsltrr?r?r@r�Psz"Subject._list_or_query_to_selector)F)N)NTNFN)r\r]r^r`r��propertyr�r�r�r�r�� staticmethodr�rwr?r?)rdr@r;�s    1cseZdZ�fdd�Z�ZS)r8cs0tjdt�d}tj|t�tt|�j|�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�r_r8r`)rJrDrn)rdr?r@r`Xs  z Repo.__init__)r\r]r^r`rwr?r?)rdr@r8Vs)kZ __future__r�sysrZpython_version� collections� functoolsZlogging�operatorZtimer�Zlibdnf.transactionr<�r�__all__r4r7r:rrr rrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*Z MODULE_FORM_NrZEQZLTZGTZAPPLY_EXCLUDESZIGNORE_MODULAR_EXCLUDESZIGNORE_REGULAR_EXCLUDESZIGNORE_EXCLUDESr r r r rrrrrr2ZADVISORY_UNKNOWNZADVISORY_SECURITYZADVISORY_BUGFIXZADVISORY_ENHANCEMENTZADVISORY_NEWPACKAGEZREFERENCE_UNKNOWNZREFERENCE_BUGZILLAZ REFERENCE_CVEZREFERENCE_VENDORr6ZReldepr9r+r,r.Z ArchExceptionr-r/r0Z detect_archrprqrrrsrtrurvZALLOW_UNINSTALLZ FORCE_BESTZVERIFYZIGNORE_WEAK_DEPS�majorrzZ getLoggerrjr1r5r3r~r�r;r8r?r?r?r@�s�          #Z