a
    !c                     @   s   d dl mZ d dl mZ d dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZ edZG dd dejZd	d
 Zdd Zdd ZdS )    )absolute_import)unicode_literalsN)
basestring)_dnfc                       s0   e Zd Z fddZd	ddZd
ddZ  ZS )Sackc                    s   t t| j|i | d S )N)superr   __init__)selfargskwargs	__class__ ,/usr/lib/python3.9/site-packages/dnf/sack.pyr	   %   s    zSack.__init__Nr   c                 C   s8   |r
|| _ || _|d ur4|| _|du r4ttd d S )NFznallow_vendor_change is disabled. This option is currently not supported for downgrade and distro-sync commands)installonlyinstallonly_limitallow_vendor_changeloggerZwarningr   )r
   r   r   r   r   r   r   
_configure(   s    zSack._configurec                 C   s   t j| |S )z'Factory function returning a DNF Query.)r   queryZQuery)r
   flagsr   r   r   r   1   s    z
Sack.query)Nr   N)r   )__name__
__module____qualname__r	   r   r   __classcell__r   r   r   r   r   "   s   
	r   c              
   C   sT   | j j}tj| ttjj| | j jd || j j	t
j| j jtjj| j jdkdS )Narch	   )ZpkgclsZ
pkginitvalr   cachedirZrootdirZlogfileZlogdebug)Zconfr   r   utilZ
ensure_dirr   packageZPackageZsubstitutionsZinstallrootospathjoinZlogdirconstZ
LOG_HAWKEYZlogfilelevel)baser   r   r   r   _build_sack7   s    


r&   c                 C   s0   t | }z|jdd W n ty*   Y n0 |S )NF)Zbuild_cache)r&   Zload_system_repoIOError)r%   Zsackr   r   r   _rpmdb_sackB   s    r(   c                 C   s   t | S )z
    Returns a new instance of sack containing only installed packages (@System repo)
    Useful to get list of the installed RPMs after transaction.
    )r(   )r%   r   r   r   
rpmdb_sackM   s    r)   )Z
__future__r   r   Zdnf.utilr   Zdnf.packageZ	dnf.queryZloggingZhawkeyr!   Z
dnf.pycompr   Zdnf.i18nr   Z	getLoggerr   r   r&   r(   r)   r   r   r   r   <module>   s   
