a
    !c`                     @   s  d dl mZ d dl mZ d dl mZ d dlZd dlmZ d dlm	Z	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Zd dlZd dlZd dlZd dlZedZejjZejjZejjZ ejj!Z"eeB e B e"B Z#d	d
 Z$dd Z%dd Z&dd Z'd*ddZ(G dd de)Z*G dd de)Z+G dd de)Z,G dd de,Z-G dd de,Z.G dd de,Z/G d d! d!e,Z0G d"d# d#e)Z1G d$d% d%e)Z2G d&d' d'e)Z3G d(d) d)e)Z4dS )+    )absolute_import)print_function)unicode_literalsN)
CompsError)_ucd)reducednfc                 C   s"   | j | j| jf}ttjtt|S N)
categoriesgroupsenvironmentsr   operator__add__maplen)compscollections r   -/usr/lib/python3.9/site-packages/dnf/comps.py_internal_comps_length6   s    r   c                 C   s   | d u rd S t j| S r
   )r	   utilfirst)seqr   r   r   _first_if_iterable;   s    r   c                    s   t j   fdd|D }|r&|S |r>tt j}ntjt tjdj}t	 }|D ]X}||j
rz|| q`|jdur||jr|| q`|jdur`||jr`|| q`|S )z;Return items from sqn matching either exactly or glob-wise.c                    s$   h | ]}|j  ks|j kr|qS r   )nameid.0gpatternr   r   	<setcomp>E       z_by_pattern.<locals>.<setcomp>)flagsN)r	   Zi18nr   recompilefnmatch	translatematchIsetr   addr   ui_name)r!   case_sensitiveZsqnexactr)   retr   r   r    r   _by_patternA   s     
r1   c                 C   s   | j d u rtjS | j S r
   )Zdisplay_ordersysmaxsize)groupr   r   r   _fn_display_orderZ   s    r5   Tc                 C   s   | |||||S )aF  
    Installs a group or an environment identified by grp_or_env_id.
    This method is preserved for API compatibility. It used to catch an
    exception thrown when a gorup or env was already installed, which is no
    longer thrown.
    `install_fnc` has to be Solver._group_install or
    Solver._environment_install.
    r   )Zinstall_fncZgrp_or_env_idtypesexcludestrictexclude_groupsr   r   r   install_or_skip^   s    
r:   c                   @   s,   e Zd ZdZdd Zedd Zdd ZdS )	_Langsz6Get all usable abbreviations for the current language.c                 C   s   d | _ d | _d S r
   )last_localecacheselfr   r   r   __init__o   s    z_Langs.__init__c                  C   s"   t t j} | dkrdS d| S )N)NNC.)localeZ	getlocaleLC_MESSAGESjoin)Zlclr   r   r   _dotted_locale_strs   s    z_Langs._dotted_locale_strc                 C   sr   |   }| j|kr| jS g | _|g}|dkr6|d |D ]*}t|D ]}|| jvrH| j| qHq:|| _| jS )NrA   )rF   r<   r=   appendgettextZ_expand_lang)r?   Zcurrent_localeZlocaleslZnlangr   r   r   getz   s    


z
_Langs.getN)__name__
__module____qualname____doc__r@   staticmethodrF   rJ   r   r   r   r   r;   k   s
   
r;   c                   @   s<   e Zd ZdZdZdZdZdd Zdd Zdd Z	d	d
 Z
dS )
CompsQuery      c                 C   s   || _ || _|| _|| _d S r
   )r   historykindsstatus)r?   r   rS   rT   rU   r   r   r   r@      s    zCompsQuery.__init__c                 C   s\   t  }| j| j@ r&|dd |D  | j| j@ rX|D ] }| }|sHq6||  q6|S )Nc                 S   s   h | ]
}|j qS r   r   r   ir   r   r   r"      r#   z)CompsQuery._get_groups.<locals>.<setcomp>)r+   rU   	AVAILABLEupdate	INSTALLEDZgetCompsGroupItemr,   
getGroupId)r?   	available	installedresultrX   r4   r   r   r   _get_groups   s    zCompsQuery._get_groupsc                 C   s\   t  }| j| j@ r&|dd |D  | j| j@ rX|D ] }| }|sHq6||  q6|S )Nc                 S   s   h | ]
}|j qS r   rV   rW   r   r   r   r"      r#   z'CompsQuery._get_envs.<locals>.<setcomp>)r+   rU   rY   rZ   r[   ZgetCompsEnvironmentItemr,   ZgetEnvironmentId)r?   r]   r^   r_   rX   envr   r   r   	_get_envs   s    zCompsQuery._get_envsc           	      G   s  t j }g |_g |_|D ]}g  }}| j| j@ rd| j|}| j	j
|}| ||}|j| | j| j@ r| j|}| j	j|}| ||}|j| |s|s| j| jkrtdt| }n.| j| jkrtdt| }ntdt| }t|q|S )N&Module or Group '%s' is not installed.&Module or Group '%s' is not available.z$Module or Group '%s' does not exist.)r	   r   ZBunchr   r   rT   ENVIRONMENTSr   environments_by_patternrS   ra   Zsearch_by_patternrb   extendGROUPSgroups_by_patternr4   r`   rU   r[   r   r   rY   r   )	r?   Zpatternsrespatenvsgrpsr]   r^   msgr   r   r   rJ      s.    

zCompsQuery.getN)rK   rL   rM   rY   r[   re   rh   r@   r`   rb   rJ   r   r   r   r   rP      s   rP   c                   @   s<   e Zd Zdd Zdd Zdd Zedd Zed	d
 ZdS )	Forwarderc                 C   s   || _ || _d S r
   )_i_langs)r?   iobjlangsr   r   r   r@      s    zForwarder.__init__c                 C   s   t | j|S r
   )getattrrp   )r?   r   r   r   r   __getattr__   s    zForwarder.__getattr__c                 C   s.   | j  D ]}||}|d ur
|  S q
|S r
   )rq   rJ   )r?   defaultZdctrI   tr   r   r   _ui_text   s
    

zForwarder._ui_textc                 C   s   |  | j| jS r
   )rx   ZdescZdesc_by_langr>   r   r   r   ui_description   s    zForwarder.ui_descriptionc                 C   s   |  | j| jS r
   )rx   r   Zname_by_langr>   r   r   r   r-      s    zForwarder.ui_nameN)	rK   rL   rM   r@   ru   rx   propertyry   r-   r   r   r   r   ro      s   
ro   c                       s8   e Zd Z fddZdd Zdd Zedd Z  ZS )	Categoryc                    s   t t| || || _d S r
   )superr{   r@   _group_factoryr?   rr   rs   Zgroup_factory	__class__r   r   r@      s    zCategory.__init__c                 C   s0   |  |j}|d u r,d}t||j| jf |S )Nz no group '%s' from category '%s'r}   r   
ValueErrorr   r?   grp_idgrprn   r   r   r   _build_group   s
    zCategory._build_groupc                 c   s   | j D ]}| |V  qd S r
   )	group_idsr   )r?   r   r   r   r   groups_iter   s    
zCategory.groups_iterc                 C   s   t |  S r
   )listr   r>   r   r   r   r      s    zCategory.groups)	rK   rL   rM   r@   r   r   rz   r   __classcell__r   r   r   r   r{      s
   r{   c                       sL   e Zd Z fddZdd Zdd Zdd Zed	d
 Zedd Z	  Z
S )Environmentc                    s   t t| || || _d S r
   )r|   r   r@   r}   r~   r   r   r   r@      s    zEnvironment.__init__c                 C   s0   |  |j}|d u r,d}t||j| jf |S )Nz#no group '%s' from environment '%s'r   r   r   r   r   r      s
    zEnvironment._build_groupc                 C   sV   g }|D ]H}z| | | W q tyN } zt| W Y d }~qd }~0 0 q|S r
   )rG   r   r   loggererror)r?   Zidsr   Zgier   r   r   _build_groups  s    "zEnvironment._build_groupsc                 c   sZ   t | j| jD ]D}z| |V  W q tyR } zt| W Y d }~qd }~0 0 qd S r
   )	itertoolschainr   
option_idsr   r   r   r   )r?   r   r   r   r   r   r     s
    zEnvironment.groups_iterc                 C   s   |  | jS r
   )r   r   r>   r   r   r   mandatory_groups  s    zEnvironment.mandatory_groupsc                 C   s   |  | jS r
   )r   r   r>   r   r   r   optional_groups  s    zEnvironment.optional_groups)rK   rL   rM   r@   r   r   r   rz   r   r   r   r   r   r   r   r      s   

r   c                       sh   e Zd Z fddZdd Zedd Zedd Zd	d
 Zedd Z	edd Z
edd Z  ZS )Groupc                    s$   t t| || || _|j| _d S r
   )r|   r   r@   _pkg_factoryrv   Zselected)r?   rr   rs   Zpkg_factoryr   r   r   r@   "  s    zGroup.__init__c                    s    fdd| j D S )Nc                    s   g | ]}|j  kr|qS r   )typer   pkgtype_r   r   
<listcomp>(  r#   z+Group._packages_of_type.<locals>.<listcomp>)packages)r?   r   r   r   r   _packages_of_type'  s    zGroup._packages_of_typec                 C   s   |  tjS r
   )r   libcompsPACKAGE_TYPE_CONDITIONALr>   r   r   r   conditional_packages*  s    zGroup.conditional_packagesc                 C   s   |  tjS r
   )r   r   PACKAGE_TYPE_DEFAULTr>   r   r   r   default_packages.  s    zGroup.default_packagesc                 C   s   t | j| jS r
   )r   r   r   r>   r   r   r   packages_iter2  s    zGroup.packages_iterc                 C   s   |  tjS r
   )r   r   PACKAGE_TYPE_MANDATORYr>   r   r   r   mandatory_packages6  s    zGroup.mandatory_packagesc                 C   s   |  tjS r
   )r   r   PACKAGE_TYPE_OPTIONALr>   r   r   r   optional_packages:  s    zGroup.optional_packagesc                 C   s   | j jS r
   )rp   Zuservisibler>   r   r   r   visible>  s    zGroup.visible)rK   rL   rM   r@   r   rz   r   r   r   r   r   r   r   r   r   r   r   r      s   



r   c                   @   sL   e Zd ZdZejeejeej	e
ejeiZdd Zedd Zedd ZdS )	Packagez#Represents comps package data. :apic                 C   s
   || _ d S r
   )rp   r?   Zipkgr   r   r   r@   L  s    zPackage.__init__c                 C   s   | j jS r
   )rp   r   r>   r   r   r   r   O  s    zPackage.namec                 C   s   | j | j S r
   )_OPT_MAPr   r>   r   r   r   option_typeT  s    zPackage.option_typeN)rK   rL   rM   rN   r   r   CONDITIONALr   DEFAULTr   	MANDATORYr   OPTIONALr   r@   rz   r   r   r   r   r   r   r   B  s   
r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	e
dd Zd-ddZd.ddZdd Ze
dd Zdd Zd/ddZd0ddZd d! Ze
d"d# Zd$d% Zd1d&d'Zd2d(d)Zd*d+ Zd,S )3Compsc                 C   s   t  | _t | _d S r
   )r   r   rp   r;   rq   r>   r   r   r   r@   \  s    
zComps.__init__c                 C   s
   t | jS r
   )r   rp   r>   r   r   r   __len__`  s    zComps.__len__c                 C   s   t || j| jS r
   )r{   rq   _group_by_id)r?   Z	icategoryr   r   r   _build_categoryc  s    zComps._build_categoryc                 C   s   t || j| jS r
   )r   rq   r   )r?   Zienvironmentr   r   r   _build_environmentf  s    zComps._build_environmentc                 C   s   t || j| jS r
   )r   rq   _build_package)r?   Zigroupr   r   r   r   i  s    zComps._build_groupc                 C   s   t |S r
   )r   r   r   r   r   r   l  s    zComps._build_packagec                 C   sT   t  }z|| W n* t jy@   | }td|Y n0 |  j|7  _d S )N )r   r   Z	fromxml_fZParserErrorZget_last_errorsr   rE   rp   )r?   fnr   errorsr   r   r   _add_from_xml_filenameo  s    zComps._add_from_xml_filenamec                 C   s   t |  S r
   )r   categories_iterr>   r   r   r   r   x  s    zComps.categoriesFc                 C   s$   t j|sJ | ||}t|S r
   )r	   r   is_string_typecategories_by_patternr   )r?   r!   r.   Zcatsr   r   r   category_by_pattern}  s    zComps.category_by_patternc                 C   s   t j|sJ t||| jS r
   )r	   r   r   r1   r   )r?   r!   r.   r   r   r   r     s    zComps.categories_by_patternc                    s    fdd j jD S )Nc                 3   s   | ]}  |V  qd S r
   )r   )r   cr>   r   r   	<genexpr>  r#   z(Comps.categories_iter.<locals>.<genexpr>)rp   r   r>   r   r>   r   r     s    zComps.categories_iterc                 C   s   t |  tdS N)key)sortedenvironments_iterr5   r>   r   r   r   r     s    zComps.environmentsc                    s.   t j sJ t j fdd|  D S )Nc                 3   s   | ]}|j  kr|V  qd S r
   rV   r   rV   r   r   r     r#   z+Comps._environment_by_id.<locals>.<genexpr>)r	   r   r   r   r   )r?   r   r   rV   r   _environment_by_id  s    zComps._environment_by_idc                 C   s$   t j|sJ | ||}t|S r
   )r	   r   r   rf   r   )r?   r!   r.   rl   r   r   r   environment_by_pattern  s    zComps.environment_by_patternc                 C   s4   t j|sJ t|  }t|||}t|tdS r   )r	   r   r   r   r   r1   r   r5   )r?   r!   r.   rl   Z
found_envsr   r   r   rf     s    zComps.environments_by_patternc                    s    fdd j jD S )Nc                 3   s   | ]}  |V  qd S r
   )r   )r   r   r>   r   r   r     r#   z*Comps.environments_iter.<locals>.<genexpr>)rp   r   r>   r   r>   r   r     s    zComps.environments_iterc                 C   s   t |  tdS r   )r   r   r5   r>   r   r   r   r     s    zComps.groupsc                    s.   t j sJ t j fdd|  D S )Nc                 3   s   | ]}|j  kr|V  qd S r
   rV   r   id_r   r   r     r#   z%Comps._group_by_id.<locals>.<genexpr>)r	   r   r   r   r   )r?   r   r   r   r   r     s    zComps._group_by_idc                 C   s$   t j|sJ | ||}t|S r
   )r	   r   r   ri   r   r?   r!   r.   rm   r   r   r   group_by_pattern  s    zComps.group_by_patternc                 C   s0   t j|sJ t||t|  }t|tdS r   )r	   r   r   r1   r   r   r   r5   r   r   r   r   ri     s    zComps.groups_by_patternc                    s    fdd j jD S )Nc                 3   s   | ]}  |V  qd S r
   )r   r   r>   r   r   r     r#   z$Comps.groups_iter.<locals>.<genexpr>)rp   r   r>   r   r>   r   r     s    zComps.groups_iterN)F)F)F)F)F)F)rK   rL   rM   r@   r   r   r   r   r   r   rz   r   r   r   r   r   r   r   rf   r   r   r   r   ri   r   r   r   r   r   r   Y  s0   	








r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
CompsTransPkgc                 C   s   t j|r&d| _|| _d| _d | _n\t|tj	j
r\d| _| | _| tj@ | _d | _n&|j| _|j| _|jtj@ | _|j| _d S )NFT)r	   r   r   basearchonlyr   optionalrequires
isinstancelibdnftransactionZCompsGroupPackagegetNameZgetPackageTyper   r   r   )r?   Zpkg_or_namer   r   r   r@     s    
zCompsTransPkg.__init__c                 C   s0   | j |j ko.| j|jko.| j|jko.| j|jkS r
   )r   r   r   r   r?   otherr   r   r   __eq__  s    


zCompsTransPkg.__eq__c                 C   s   | j S r
   r   r>   r   r   r   __str__  s    zCompsTransPkg.__str__c                 C   s   t | j| j| j| jfS r
   )hashr   r   r   r   r>   r   r   r   __hash__  s
    zCompsTransPkg.__hash__N)rK   rL   rM   r@   r   r   r   r   r   r   r   r     s   r   c                   @   s   e Zd Zdd Zdd Zdd Zedd Zed	d
 Z	e	j
dd
 Z	edd Zej
dd Zedd Zej
dd Zedd Zej
dd ZdS )TransactionBunchc                 C   s$   t  | _t  | _t  | _t  | _d S r
   )r+   _install_install_opt_remove_upgrader>   r   r   r   r@     s    zTransactionBunch.__init__c                 C   sN   | j |j  | j|j | j|j | j|jB | j  | j | j | _| S r
   )r   rZ   r   r   r   r   r   r   r   __iadd__  s    
zTransactionBunch.__iadd__c                 C   s(   t | jt | j t | j t | j S r
   )r   installinstall_optupgraderemover>   r   r   r   r     s    zTransactionBunch.__len__c                 C   s2   |D ](}t |tr| | q| t| qd S r
   )r   r   r,   )Zparamvalitemr   r   r   
_set_value  s    
zTransactionBunch._set_valuec                 C   s   | j S )z
        Packages to be installed with strict=True - transaction will
        fail if they cannot be installed due to dependency errors etc.
        )r   r>   r   r   r   r     s    zTransactionBunch.installc                 C   s   |  | j| d S r
   )r   r   r?   valuer   r   r   r   	  s    c                 C   s   | j S )zw
        Packages to be installed with strict=False - they will be
        skipped if they cannot be installed
        )r   r>   r   r   r   r     s    zTransactionBunch.install_optc                 C   s   |  | j| d S r
   )r   r   r   r   r   r   r     s    c                 C   s   | j S r
   )r   r>   r   r   r   r     s    zTransactionBunch.removec                 C   s   |  | j| d S r
   )r   r   r   r   r   r   r     s    c                 C   s   | j S r
   )r   r>   r   r   r   r   !  s    zTransactionBunch.upgradec                 C   s   |  | j| d S r
   )r   r   r   r   r   r   r   %  s    N)rK   rL   rM   r@   r   r   rO   r   rz   r   setterr   r   r   r   r   r   r   r     s*   







r   c                   @   s   e Zd Zdd Zedd Zedd Zeg fddZd	d
 Zdd Z	dddZ
dd Zdd ZdddZdd Zdd Zdd ZdS )Solverc                 C   s   || _ || _|| _d S r
   )rS   r   Z
_reason_fn)r?   rS   r   Z	reason_fnr   r   r   r@   +  s    zSolver.__init__c                 C   s   dd | j D S )Nc                 S   s   h | ]
}|j qS r   rV   )r   r   r   r   r   r"   2  r#   z.Solver._mandatory_group_set.<locals>.<setcomp>)r   )ra   r   r   r   _mandatory_group_set0  s    zSolver._mandatory_group_setc                 C   s"   dd | j | j | j | j D S )Nc                 S   s   h | ]}|  qS r   r   r   r   r   r   r"   6  r#   z+Solver._full_package_set.<locals>.<setcomp>)r   r   r   r   )r   r   r   r   _full_package_set4  s    
zSolver._full_package_setc                    sv    fdd}t  }|t@ r*||| j |t@ rB||| j |t@ rZ||| j |t@ rr||| j	 |S )Nc                    s    fdd| D S )Nc                    s   g | ]}|j  vr|qS r   r   r   r7   r   r   r   =  s   
z8Solver._pkgs_of_type.<locals>.filter.<locals>.<listcomp>r   )pkgsr   r   r   filter<  s    z$Solver._pkgs_of_type.<locals>.filter)
r+   r   rZ   r   r   r   r   r   r   r   )r4   	pkg_typesr7   r   r   r   r   r   _pkgs_of_type:  s    zSolver._pkgs_of_typec                 C   s   t j|sJ | jj|S r
   )r	   r   r   rS   r4   Zis_removable_pkg)r?   Zpkg_namer   r   r   _removable_pkgK  s    zSolver._removable_pkgc                 C   s   t j|sJ | jj|S r
   )r	   r   r   rS   ra   Zis_removable_group)r?   group_idr   r   r   _removable_grpO  s    zSolver._removable_grpNTc           
      C   s   t j|sJ | j|}|s4ttdt| | jj	
||j|j|}| jj	| t }|jD ]:}	|rz|	j|v rzqf|| |	j|||7 }||	jdt qf|jD ]$}	|r|	j|v rq||	jdt q|S )Nz#Environment id '%s' does not exist.TF)r	   r   r   r   r   r   r   r   rS   ra   newr   r-   r   r   r   r   _group_installaddGroupr   r   r   )
r?   env_idr   r7   r8   r9   	comps_envswdb_envtranscomps_groupr   r   r   _environment_installS  s"    

zSolver._environment_installc                 C   s   t j|du sJ | jj|}|s6ttd| | jj| t	 }t
dd | D }|D ]}| |stqd|| |7 }qd|S )NTz%Environment id '%s' is not installed.c                 S   s   g | ]}|  qS r   r\   rW   r   r   r   r   s  r#   z.Solver._environment_remove.<locals>.<listcomp>)r	   r   r   rS   ra   rJ   r   r   r   r   r+   	getGroupsr   _group_remove)r?   r   r   r   r   r   r   r   r   _environment_removej  s    
zSolver._environment_removec                 C   sF  t j|sJ | j|}| jj|}|s>tt	d| |sRtt	d| t
dd | D }| }| jj|j|j|j|}t }|jD ]R}|j|v r| jj|jr|| |j7 }n|| |j|7 }||jdt q|jD ]B}|j|v r"| jj|jr"|| |j7 }||jdt q| jj| |S )Nz"Environment '%s' is not installed.z"Environment '%s' is not available.c                 S   s   g | ]}|  qS r   r   rW   r   r   r   r     r#   z/Solver._environment_upgrade.<locals>.<listcomp>TF)r	   r   r   r   r   rS   ra   rJ   r   r   r+   r  getPackageTypesr   r   r   r-   r   r   r4   _group_upgrader   r   r   r   r   r   )r?   r   r   r   old_setr   r   r   r   r   r   _environment_upgradez  s.    


zSolver._environment_upgradec           
      C   s   t j|sJ | j|}|s4ttdt| | jj	
||j|j|}| D ]}||jdtj|j  qT| jj	| t }	|r|	j| j||g d n|	j| j||g d |	S )NzGroup id '%s' does not exist.Fr   )r	   r   r   r   r   r   r   r   rS   r4   r   r   r-   r   
addPackager   r   r   r   r   rZ   r   r   )
r?   r   r   r7   r8   r9   r   
swdb_grouprX   r   r   r   r   r     s    zSolver._group_installc                    sb   t j|sJ  jj|}|s2ttd|  jj| t	 } fdd|
 D |_|S )Nrc   c                    s   h | ]}  | r|qS r   )r   r   r   r>   r   r   r"     r#   z'Solver._group_remove.<locals>.<setcomp>)r	   r   r   rS   r4   rJ   r   r   r   r   getPackages)r?   r   r	  r   r   r>   r   r    s    zSolver._group_removec           	         s"  t j|sJ | j|}| jj|}g }|sP|r<|jn|}t	t
d| |sdt	t
d| | }tdd | D | ||| | jj||j|j|}| D ]}||jdtj|j  q| jj| t }fdd D |_ fddD |_fd	d D |_|S )
Nrc   rd   c                 S   s   g | ]}|  qS r   r   rW   r   r   r   r     r#   z)Solver._group_upgrade.<locals>.<listcomp>Fc                    s   h | ]}|j  vr|qS r   r   r   r  r   r   r"     r#   z(Solver._group_upgrade.<locals>.<setcomp>c                    s"   h | ]}|d d  D vr|qS )c                 S   s   g | ]
}|j qS r   r   r   r   r   r   r     r#   z3Solver._group_upgrade.<locals>.<setcomp>.<listcomp>r   )r   r   )new_setr   r   r"     s   c                    s   h | ]}|j  v r|qS r   r   r   r  r   r   r"     r#   )r	   r   r   r   r   rS   r4   rJ   r-   r   r   r  r+   r
  r   r   r   r   r  r   r   r   r   r   r   r   )	r?   r   r   r	  r7   Zargumentr   rX   r   r   )r  r  r   r    s*    zSolver._group_upgradec                 C   sd   | j jD ]V}| j |}|jrt|jt|j }|j  j	|d}|D ]}|j
| qLqd S )Nr   )Z	persistorr   r4   r^   r+   Z	full_listZpkg_excludeZsackqueryZfiltermZ_goalr   )r?   baser4   Zp_grpZinstalled_pkg_namesZinstalled_pkgsr   r   r   r   '_exclude_packages_from_installed_groups  s    z.Solver._exclude_packages_from_installed_groups)NTN)NTN)rK   rL   rM   r@   rO   r   r   r   r   r   r   r  r  r   r  r  r  r   r   r   r   r   *  s    


#

r   )NTN)5Z
__future__r   r   r   Zlibdnf.transactionr   Zdnf.exceptionsr   Zdnf.i18nr   r   	functoolsr   r	   Zdnf.utilr'   rH   r   r   rC   Zloggingr   r%   r2   Z	getLoggerr   r   ZCompsPackageType_CONDITIONALr   ZCompsPackageType_DEFAULTr   ZCompsPackageType_MANDATORYr   ZCompsPackageType_OPTIONALr   Z	ALL_TYPESr   r   r1   r5   r:   objectr;   rP   ro   r{   r   r   r   r   r   r   r   r   r   r   r   <module>   sR   
  
!A'"f(C