o
    l¨Êh7  ã                   @   sj   d Z ddlmZ G dd„ deƒZG dd„ deƒZG dd„ deƒZeƒ Zdd
d„Z	dd„ Z
eƒ  e
ƒ ¡ d	S )z
Exceptions
é   )ÚPY3_OR_LATERc                   @   s$   e Zd ZdZdd„ Zdd„ ZeZdS )ÚJoblibExceptionz=A simple exception with an error message that you can get to.c                 G   s   t j| g|¢R Ž  d S ©N)Ú	ExceptionÚ__init__)ÚselfÚargs© r	   úF/var/www/html/env/lib/python3.10/site-packages/joblib/my_exceptions.pyr      s   zJoblibException.__init__c                 C   s@   t | dƒrt| jƒdkr| jd }nd}| jj}d|d|df S )Nr   é    Ú z%s
%s
%s
%sÚK___________________________________________________________________________)ÚhasattrÚlenr   Ú	__class__Ú__name__)r   ÚmessageÚnamer	   r	   r
   Ú__repr__   s
   zJoblibException.__repr__N)r   Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__str__r	   r	   r	   r
   r   
   s
    	r   c                   @   s"   e Zd ZdZdd„ Zddd„ZdS )	ÚTransportableExceptionz`An exception containing all the info to wrap an original
        exception and recreate it.
    c                 C   s   t  | ||¡ || _|| _d S r   )r   r   r   Úetype)r   r   r   r	   r	   r
   r   +   s   
zTransportableException.__init__r   c                 C   s$   d|| j f }t| jƒd }||ƒS )Nz¶%s
---------------------------------------------------------------------------
Joblib worker traceback:
---------------------------------------------------------------------------
%sr   )r   Ú_mk_exceptionr   )r   Úcontext_messageÚreportÚexception_typer	   r	   r
   Úunwrap2   s
   ûzTransportableException.unwrapN)r   )r   r   r   r   r   r   r	   r	   r	   r
   r   &   s    r   c                   @   s   e Zd ZdZdS )ÚWorkerInterruptza An exception that is not KeyboardInterrupt to allow subprocesses
        to be interrupted.
    N)r   r   r   r   r	   r	   r	   r
   r    >   s    r    Nc                 C   s’   t | tƒr
| | jfS |d u r| j}d| }|tv r!t| }||fS | tu r)t|fS zt|t| fi ƒ}|t|< W ||fS  tyH   t}Y ||fS w )NzJoblib%s)Ú
issubclassr   r   Ú_exception_mappingr   ÚtypeÚ	TypeError)Ú	exceptionr   Ú	this_nameÚthis_exceptionr	   r	   r
   r   H   s(   

ñ
ÿ
ùùr   c                  C   sz   t ƒ } trdd l}tdd„ t|ƒƒ}ndd l}t|ƒ}|D ]}t||ƒ}t|tƒr:t	|t
ƒr:t||d�\}}|| |< q| S )Nr   c                 S   s
   |   d¡S )NÚError)Úendswith)Úxr	   r	   r
   Ú<lambda>m   s   
 z'_mk_common_exceptions.<locals>.<lambda>)r   )Údictr   ÚbuiltinsÚfilterÚdirÚ
exceptionsÚgetattrÚ
isinstancer#   r!   ÚBaseExceptionr   )Ú	namespaceÚ_builtin_exceptionsÚcommon_exceptionsr   ÚobjÚthis_objr&   r	   r	   r
   Ú_mk_common_exceptionsh   s    þ
€r9   r   )r   Ú_compatr   r   r   r   r    r,   r"   r   r9   ÚlocalsÚupdater	   r	   r	   r
   Ú<module>   s    
 