a
    !c                     @   sp  d Z ddlmZ ddlmZmZmZ ddlZddl	Z	ddl
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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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dS )+z
Core DNF Errors.
    )unicode_literals)ucd_P_Nc                   @   s   e Zd ZdS )DeprecationWarningN__name__
__module____qualname__ r   r   2/usr/lib/python3.9/site-packages/dnf/exceptions.pyr      s   r   c                       s2   e Zd ZdZd	 fdd	Zdd Zdd Z  ZS )
ErrorzTBase Error. All other Errors thrown by DNF should inherit from this.

    :api

    Nc                    s(   t t|   |d u rd nt|| _d S N)superr   __init__r   value)selfr   	__class__r   r   r   &   s    zError.__init__c                 C   s   d | jS )Nz{})formatr   r   r   r   r   __str__*   s    zError.__str__c                 C   s   t |  S r   )r   r   r   r   r   r   __unicode__-   s    zError.__unicode__)N)r   r	   r
   __doc__r   r   r   __classcell__r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )
CompsErrorNr   r   r   r   r   r   2   s   r   c                       s   e Zd Zd fdd	Z  ZS )ConfigErrorNc                    s*   t t| | |d ur t|nd | _d S r   )r   r   r   r   	raw_error)r   r   r   r   r   r   r   8   s    zConfigError.__init__)NNr   r	   r
   r   r   r   r   r   r   r   7   s   r   c                   @   s   e Zd ZdS )DatabaseErrorNr   r   r   r   r   r   =   s   r   c                   @   s   e Zd ZdS )DepsolveErrorNr   r   r   r   r   r    A   s   r    c                       s0   e Zd Z fddZedd Zdd Z  ZS )DownloadErrorc                    s   t t|   || _d S r   )r   r!   r   errmap)r   r"   r   r   r   r   H   s    zDownloadError.__init__c                 C   sH   g }| D ]4}| | D ]&}|r(d||f nd| }| | qqd|S )Nz%s: %sz%s
)appendjoin)r"   Z
errstringskeyerrormsgr   r   r   
errmap2strL   s    zDownloadError.errmap2strc                 C   s   |  | jS r   )r)   r"   r   r   r   r   r   U   s    zDownloadError.__str__)r   r	   r
   r   staticmethodr)   r   r   r   r   r   r   r!   F   s   
r!   c                   @   s   e Zd ZdS )	LockErrorNr   r   r   r   r   r+   Y   s   r+   c                       s*   e Zd Zd fdd	Z fddZ  ZS )MarkingErrorNc                    s*   t t| | |du rdnt|| _dS )&Initialize the marking error instance.N)r   r,   r   r   pkg_spec)r   r   r.   r   r   r   r   `   s    zMarkingError.__init__c                    s&   t t|  }| jr"|d| j 7 }|S )Nz: )r   r,   r   r.   )r   stringr   r   r   r   e   s    zMarkingError.__str__)NN)r   r	   r
   r   r   r   r   r   r   r   r,   ]   s   r,   c                       s*   e Zd Zd fdd	Zedd Z  ZS )MarkingErrorsr   c              	      s  t d}|r&|dt d d| 7 }|rD|dt d d| 7 }|rb|dt d d| 7 }|r|dt d d| 7 }|rtj|d }|d	 tjjjkr|ddt	d
dt
||g 7 }n"|ddt	ddt
||g 7 }tt| | || _|| _|| _|| _|| _dS )r-   zProblems in request:r#   zmissing packages: z, zbroken packages: zmissing groups or modules: zbroken groups or modules: r      z)Modular dependency problem with Defaults:z*Modular dependency problems with Defaults:zModular dependency problem:zModular dependency problems:N)r   r%   dnfutilZ_format_resolve_problemslibdnfmoduleZModulePackageContainerZ!ModuleErrorType_ERROR_IN_DEFAULTSr   lenr   r0   r   no_match_group_specserror_group_specsno_match_pkg_specserror_pkg_specsmodule_depsolv_errors)r   r7   r8   r9   r:   r;   r(   Zmsg_modr   r   r   r   n   s@    
zMarkingErrors.__init__c                 C   s   d}t j|tdd | jS )Nz[Attribute module_debsolv_errors is deprecated. Use module_depsolv_errors attribute instead.   )
stacklevel)warningswarnr   r;   )r   r(   r   r   r   module_debsolv_errors   s    z#MarkingErrors.module_debsolv_errors)r   r   r   r   r   )r   r	   r
   r   propertyr@   r   r   r   r   r   r0   l   s
      r0   c                   @   s   e Zd ZdS )MetadataErrorNr   r   r   r   r   rB      s   rB   c                   @   s   e Zd ZdS )	MiscErrorNr   r   r   r   r   rC      s   rC   c                       s   e Zd Zd fdd	Z  ZS )PackagesNotAvailableErrorNc                    s    t t| || |pg | _d S r   )r   rD   r   packagesr   r   r.   rE   r   r   r   r      s    z"PackagesNotAvailableError.__init__)NNNr   r   r   r   r   rD      s   rD   c                   @   s   e Zd ZdS )PackageNotFoundErrorNr   r   r   r   r   rG      s   rG   c                       s   e Zd Zd fdd	Z  ZS )PackagesNotInstalledErrorNc                    s    t t| || |pg | _d S r   )r   rH   r   rE   rF   r   r   r   r      s    z"PackagesNotInstalledError.__init__)NNNr   r   r   r   r   rH      s   rH   c                       s$   e Zd Z fddZdd Z  ZS )ProcessLockErrorc                    s   t t| | || _d S r   )r   rI   r   pid)r   r   rJ   r   r   r   r      s    zProcessLockError.__init__c                 C   s   t | j| jffS )zPickling support.)rI   r   rJ   r   r   r   r   
__reduce__   s    zProcessLockError.__reduce__)r   r	   r
   r   rK   r   r   r   r   r   rI      s   rI   c                   @   s   e Zd ZdS )	RepoErrorNr   r   r   r   r   rL      s   rL   c                   @   s   e Zd ZdS )ThreadLockErrorNr   r   r   r   r   rM      s   rM   c                   @   s   e Zd ZdS )TransactionCheckErrorNr   r   r   r   r   rN      s   rN   )r   Z
__future__r   Zdnf.i18nr   r   r   Zdnf.utilr2   r4   r>   r   	Exceptionr   r   r   r   r    r!   r+   r,   r0   rB   rC   rD   rG   rH   rI   rL   rM   rN   r   r   r   r   <module>   s0   )
