a
    WŠÝg”  ã                   @   s®   d dl Z d dlZd dlmZ d dlmZ ejr:d dlmZ G dd„ deƒZejeej	dgej
e f f 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 )é    N)Ú_utils)Ú
retry_base)ÚRetryCallStatec                   @   sf   e Zd ZdZejdedœdd„ƒZdddœd	d
„Zdddœdd„Z	dddœdd„Z
dddœdd„ZdS )Úasync_retry_basez/Abstract base class for async retry strategies.r   ©Úretry_stateÚreturnc                 Ã   s   d S ©N© ©Úselfr   r
   r
   úd/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/tenacity/asyncio/retry.pyÚ__call__   s    zasync_retry_base.__call__z*typing.Union[retry_base, async_retry_base]Ú	retry_all)Úotherr   c                 C   s
   t | |ƒS r	   ©r   ©r   r   r
   r
   r   Ú__and__!   s    zasync_retry_base.__and__c                 C   s
   t || ƒS r	   r   r   r
   r
   r   Ú__rand__&   s    zasync_retry_base.__rand__Ú	retry_anyc                 C   s
   t | |ƒS r	   ©r   r   r
   r
   r   Ú__or__+   s    zasync_retry_base.__or__c                 C   s
   t || ƒS r	   r   r   r
   r
   r   Ú__ror__0   s    zasync_retry_base.__ror__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚabcÚabstractmethodÚboolr   r   r   r   r   r
   r
   r
   r   r      s   þþþþr   r   c                   @   sB   e Zd ZdZejegeje f ddœdd„Z	dedœdd	„Z
dS )
Úretry_if_exceptionzARetry strategy that retries if an exception verifies a predicate.N©Ú	predicater   c                 C   s
   || _ d S r	   ©r"   ©r   r"   r
   r
   r   Ú__init__>   s    zretry_if_exception.__init__r   r   c                 Ã   sL   |j d u rtdƒ‚|j jrD|j  ¡ }|d u r4tdƒ‚|  |¡I d H S dS d S )Nú(__call__() called before outcome was setz(outcome failed but the exception is NoneF)ÚoutcomeÚRuntimeErrorÚfailedÚ	exceptionr"   )r   r   r*   r
   r
   r   r   C   s    

zretry_if_exception.__call__)r   r   r   r   ÚtypingÚCallableÚBaseExceptionÚ	Awaitabler   r%   r   r
   r
   r
   r   r    ;   s
   þr    c                   @   sD   e Zd ZdZejejgeje f ddœdd„Z	dedœdd	„Z
dS )
Úretry_if_resultz+Retries if the result verifies a predicate.Nr!   c                 C   s
   || _ d S r	   r#   r$   r
   r
   r   r%   S   s    zretry_if_result.__init__r   r   c                 Ã   s8   |j d u rtdƒ‚|j js0|  |j  ¡ ¡I d H S dS d S )Nr&   F)r'   r(   r)   r"   Úresultr   r
   r
   r   r   X   s
    
zretry_if_result.__call__)r   r   r   r   r+   r,   ÚAnyr.   r   r%   r   r
   r
   r
   r   r/   P   s
   þr/   c                   @   s:   e Zd ZdZejeef ddœdd„Zde	dœdd	„Z
dS )
r   z1Retries if any of the retries condition is valid.N©Úretriesr   c                 G   s
   || _ d S r	   ©r3   ©r   r3   r
   r
   r   r%   e   s    zretry_any.__init__r   r   c                 Ã   s4   d}| j D ]$}|p$t |¡|ƒI d H }|r
 q0q
|S )NF©r3   r   Zwrap_to_async_func©r   r   r0   Úrr
   r
   r   r   h   s    
zretry_any.__call__©r   r   r   r   r+   ÚUnionr   r   r%   r   r   r
   r
   r
   r   r   b   s   r   c                   @   s:   e Zd ZdZejeef ddœdd„Zde	dœdd	„Z
dS )
r   z/Retries if all the retries condition are valid.Nr2   c                 G   s
   || _ d S r	   r4   r5   r
   r
   r   r%   t   s    zretry_all.__init__r   r   c                 Ã   s4   d}| j D ]$}|o$t |¡|ƒI d H }|s
 q0q
|S )NTr6   r7   r
   r
   r   r   w   s    
zretry_all.__call__r9   r
   r
   r
   r   r   q   s   r   )r   r+   Útenacityr   r   ÚTYPE_CHECKINGr   r   r:   r,   r.   r   Z
RetryBaseTr    r/   r   r   r
   r
   r
   r   Ú<module>   s   ÿ