a
    
d+                     @  s   d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZmZmZmZmZmZ erhd dl
mZ ededd	Zed
edZededd	ZededZddddddZdddddZG dd deee ZG dd dee eZdS )    )annotations)CallableSequence)partial)getmroisclass)TYPE_CHECKINGGenericTypeTypeVarcastoverload)Self_BaseExceptionT_coT)bound	covariant_BaseExceptionT)r   _ExceptionT_co_ExceptionTBaseExceptionztuple[type[BaseException]]bool)excparentsreturnc                 C  s*   t | jd d D ]}||v r dS qdS )NTF)r   	__class__)r   r   cls r   c/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/exceptiongroup/_exceptions.pycheck_direct_subclass   s    r   `type[_BaseExceptionT] | tuple[type[_BaseExceptionT], ...] | Callable[[_BaseExceptionT_co], bool]z$Callable[[_BaseExceptionT_co], bool])	conditionr   c                 C  sr   t | r*tttt | tr*tt| fdS t| trTt	dd | D rftt| dS nt
| rftd| S tdd S )N)r   c                 s  s    | ]}t |ot|tV  qd S N)r   
issubclassr   ).0xr   r   r   	<genexpr>%       z'get_condition_filter.<locals>.<genexpr>zCallable[[BaseException], bool]z?expected a function, exception type or tuple of exception types)r   r#   r   r
   r   r   r   
isinstancetupleallcallable	TypeError)r!   r   r   r   get_condition_filter   s    


r-   c                      sJ  e Zd ZdZdddd fddZddd	d
dZeddddZeddddZe	dddddZ
e	dddddZ
e	dddddZ
dddddZ
e	dddd d!Ze	dd"dd#d!Ze	dd$dd%d!Zd&d'dd(d!Ze	d)d*d+d,d-Ze	d.d/d+d0d-Zd.d/d+d1d-Zddd2d3Zddd4d5Z  ZS )6BaseExceptionGroupz/A combination of multiple unrelated exceptions.strzSequence[_BaseExceptionT_co]r   )_BaseExceptionGroup__message_BaseExceptionGroup__exceptionsr   c                   s   t |tstdt| t |ts.td|s:tdt|D ]"\}}t |tsBtd| dqB| tu rt	dd |D rt
} t| tr|D ]0}t |ts| t
u rtdqtd	| jqt | ||}||_||_|S )
Nzargument 1 must be str, not z/second argument (exceptions) must be a sequencez9second argument (exceptions) must be a non-empty sequencezItem z4 of second argument (exceptions) is not an exceptionc                 s  s   | ]}t |tV  qd S r"   )r(   	Exception)r$   r   r   r   r   r&   C   r'   z-BaseExceptionGroup.__new__.<locals>.<genexpr>z/Cannot nest BaseExceptions in an ExceptionGroupzCannot nest BaseExceptions in )r(   r/   r,   typer   
ValueError	enumerater   r.   r*   ExceptionGroupr#   r2   __name__super__new___message_exceptions)r   r0   r1   ir   instancer   r   r   r9   0   s<    






zBaseExceptionGroup.__new__None)noter   c                 C  sF   t |ts&td|dt|j dt| ds6g | _| j| d S )NzExpected a string, got note=z (type )	__notes__)r(   r/   r,   r3   r7   hasattrrB   append)selfr@   r   r   r   add_noteW   s    

zBaseExceptionGroup.add_noter   c                 C  s   | j S r"   )r:   rE   r   r   r   messageb   s    zBaseExceptionGroup.messagezGtuple[_BaseExceptionT_co | BaseExceptionGroup[_BaseExceptionT_co], ...]c                 C  s
   t | jS r"   )r)   r;   rH   r   r   r   
exceptionsf   s    zBaseExceptionGroup.exceptions1type[_ExceptionT] | tuple[type[_ExceptionT], ...]"ExceptionGroup[_ExceptionT] | None)_BaseExceptionGroup__conditionr   c                 C  s   d S r"   r   rE   rM   r   r   r   subgroupl   s    zBaseExceptionGroup.subgroupz9type[_BaseExceptionT] | tuple[type[_BaseExceptionT], ...]z*BaseExceptionGroup[_BaseExceptionT] | Nonec                 C  s   d S r"   r   rN   r   r   r   rO   r   s    z+Callable[[_BaseExceptionT_co | Self], bool]z-BaseExceptionGroup[_BaseExceptionT_co] | Nonec                 C  s   d S r"   r   rN   r   r   r   rO   x   s    zgtype[_BaseExceptionT] | tuple[type[_BaseExceptionT], ...] | Callable[[_BaseExceptionT_co | Self], bool]c                 C  s   t |}d}|| r| S g }| jD ]P}t|trZ||}|d urL|| ||urrd}q"||rn|| q"d}q"|s|| S |r| |}| j|_| j|_| j	|_	|S d S d S )NFT)
r-   rJ   r(   r.   rO   rD   derive	__cause____context____traceback__)rE   rM   r!   modifiedrJ   r   rO   groupr   r   r   rO   ~   s0    




zXtuple[ExceptionGroup[_ExceptionT] | None, BaseExceptionGroup[_BaseExceptionT_co] | None]c                 C  s   d S r"   r   rN   r   r   r   split   s    zBaseExceptionGroup.splitz`tuple[BaseExceptionGroup[_BaseExceptionT] | None, BaseExceptionGroup[_BaseExceptionT_co] | None]c                 C  s   d S r"   r   rN   r   r   r   rV      s    zctuple[BaseExceptionGroup[_BaseExceptionT_co] | None, BaseExceptionGroup[_BaseExceptionT_co] | None]c                 C  s   d S r"   r   rN   r   r   r   rV      s    r    a!  tuple[ExceptionGroup[_ExceptionT] | None, BaseExceptionGroup[_BaseExceptionT_co] | None] | tuple[BaseExceptionGroup[_BaseExceptionT] | None, BaseExceptionGroup[_BaseExceptionT_co] | None] | tuple[BaseExceptionGroup[_BaseExceptionT_co] | None, BaseExceptionGroup[_BaseExceptionT_co] | None]c           
      C  s   t |}|| r| d fS g }g }| jD ]`}t|trh||\}}|d urT|| |d ur|| q&||r||| q&|| q&d }|r| |}| j|_| j|_| j	|_	d }	|r| |}	| j|	_| j|	_| j	|	_	||	fS r"   )
r-   rJ   r(   r.   rV   rD   rP   rQ   rR   rS   )
rE   rM   r!   Zmatching_exceptionsZnonmatching_exceptionsr   ZmatchingZnonmatchingZmatching_groupZnonmatching_groupr   r   r   rV      s8    




zSequence[_ExceptionT]zExceptionGroup[_ExceptionT])_BaseExceptionGroup__excsr   c                 C  s   d S r"   r   rE   rW   r   r   r   rP      s    zBaseExceptionGroup.derivezSequence[_BaseExceptionT]z#BaseExceptionGroup[_BaseExceptionT]c                 C  s   d S r"   r   rX   r   r   r   rP      s    c                 C  s&   t | j|}t| dr"t| j|_|S )NrB   )r.   rI   rC   listrB   )rE   rW   Zegr   r   r   rP      s    
c                 C  s4   t | jdkrdnd}| j dt | j d| dS )N    sz (z sub-exceptionrA   )lenr;   rI   )rE   suffixr   r   r   __str__  s    zBaseExceptionGroup.__str__c                 C  s   | j j d| jd| jdS )N(z, rA   )r   r7   rI   r;   rH   r   r   r   __repr__  s    zBaseExceptionGroup.__repr__)r7   
__module____qualname____doc__r9   rF   propertyrI   rJ   r   rO   rV   rP   r_   ra   __classcell__r   r   r>   r   r.   -   s8   '$6
r.   c                      s   e Zd Zdddd fddZereddd	d
ZedddddZedddddZddd fddZedddddZ	edddddZ	dddd fddZ	  Z
S )r6   r/   zSequence[_ExceptionT_co]r   )_ExceptionGroup__message_ExceptionGroup__exceptionsr   c                   s   t  | ||S r"   )r8   r9   )r   rg   rh   r>   r   r   r9     s    zExceptionGroup.__new__z;tuple[_ExceptionT_co | ExceptionGroup[_ExceptionT_co], ...]rG   c                 C  s   d S r"   r   rH   r   r   r   rJ     s    zExceptionGroup.exceptionsrK   rL   )_ExceptionGroup__conditionr   c                 C  s   d S r"   r   rE   ri   r   r   r   rO     s    zExceptionGroup.subgroupz'Callable[[_ExceptionT_co | Self], bool]z%ExceptionGroup[_ExceptionT_co] | Nonec                 C  s   d S r"   r   rj   r   r   r   rO   !  s    zTtype[_ExceptionT] | tuple[type[_ExceptionT], ...] | Callable[[_ExceptionT_co], bool]c                   s   t  |S r"   )r8   rO   rj   r>   r   r   rO   '  s    zPtuple[ExceptionGroup[_ExceptionT] | None, ExceptionGroup[_ExceptionT_co] | None]c                 C  s   d S r"   r   rj   r   r   r   rV   /  s    zExceptionGroup.splitzStuple[ExceptionGroup[_ExceptionT_co] | None, ExceptionGroup[_ExceptionT_co] | None]c                 C  s   d S r"   r   rj   r   r   r   rV   7  s    )rE   ri   r   c                   s   t  |S r"   )r8   rV   rj   r>   r   r   rV   ?  s    )r7   rb   rc   r9   r   re   rJ   r   rO   rV   rf   r   r   r>   r   r6     s   r6   N)
__future__r   collections.abcr   r   	functoolsr   inspectr   r   typingr   r	   r
   r   r   r   r   r   r   r   r2   r   r   r   r-   r.   r6   r   r   r   r   <module>   s    
 c