§
    OŠtj”  ã                   ó$  — 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e¦  «        Zej        eej	        dgej
        e         f         f         Z G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    N)Ú_utils)Ú
retry_base)ÚRetryCallStatec                   ó|   — e Zd ZdZej        dddefd„¦   «         Z	 	 	 	 dd	„Z	 	 	 	 dd
„Z		 	 	 	 dd„Z
	 	 	 	 dd„ZdS )Úasync_retry_basez/Abstract base class for async retry strategies.Úretry_stater   Úreturnc              ƒ   ó
   K  — d S ©N© ©Úselfr   s     úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/tenacity/asyncio/retry.pyÚ__call__zasync_retry_base.__call__   s   è è € àˆó    Úotherú*typing.Union[retry_base, async_retry_base]Ú	retry_allc                 ó"   — t          | |¦  «        S r   ©r   ©r   r   s     r   Ú__and__zasync_retry_base.__and__!   ó   € õ ˜˜uÑ%Ô%Ð%r   c                 ó"   — t          || ¦  «        S r   r   r   s     r   Ú__rand__zasync_retry_base.__rand__&   ó   € õ ˜ Ñ%Ô%Ð%r   Ú	retry_anyc                 ó"   — t          | |¦  «        S r   ©r   r   s     r   Ú__or__zasync_retry_base.__or__+   r   r   c                 ó"   — t          || ¦  «        S r   r   r   s     r   Ú__ror__zasync_retry_base.__ror__0   r   r   N)r   r   r	   r   )r   r   r	   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚabcÚabstractmethodÚboolr   r   r   r    r"   r   r   r   r   r      sÛ   € € € € € Ø9Ð9àÔðÐ*:ð ¸tð ð ð ñ Ôðð&ØAð&à	ð&ð &ð &ð &ð
&ØAð&à	ð&ð &ð &ð &ð
&ØAð&à	ð&ð &ð &ð &ð
&ØAð&à	ð&ð &ð &ð &ð &ð &r   r   r   c                   ód   — e Zd ZdZdej        egej        e         f         ddfd„Z	dddefd„Z
dS )	Úretry_if_exceptionzARetry strategy that retries if an exception verifies a predicate.Ú	predicater	   Nc                 ó   — || _         d S r   ©r,   ©r   r,   s     r   Ú__init__zretry_if_exception.__init__>   ó   € ð #ˆŒˆˆr   r   r   c              ƒ   óØ   K  — |j         €t          d¦  «        ‚|j         j        rE|j                              ¦   «         }|€t          d¦  «        ‚|                      |¦  «        ƒ d {V —†S dS )Nú(__call__() called before outcome was setz(outcome failed but the exception is NoneF)ÚoutcomeÚRuntimeErrorÚfailedÚ	exceptionr,   )r   r   r7   s      r   r   zretry_if_exception.__call__C   s~   è è € ØÔÐ&ÝÐIÑJÔJÐJàÔÔ%ð 	Ø#Ô+×5Ò5Ñ7Ô7ˆIØÐ Ý"Ð#MÑNÔNÐNØŸš¨	Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2à�5r   )r#   r$   r%   r&   ÚtypingÚCallableÚBaseExceptionÚ	Awaitabler)   r0   r   r   r   r   r+   r+   ;   sw   € € € € € ØKÐKð#Øœ¨-¨¸&Ô:JÈ4Ô:PÐ)PÔQð#à	ð#ð #ð #ð #ð

Ð*:ð 
¸tð 
ð 
ð 
ð 
ð 
ð 
r   r+   c                   ón   — e Zd ZdZdej        ej        gej        e         f         ddfd„Z	dddefd„Z
dS )	Úretry_if_resultz+Retries if the result verifies a predicate.r,   r	   Nc                 ó   — || _         d S r   r.   r/   s     r   r0   zretry_if_result.__init__S   r1   r   r   r   c              ƒ   ó²   K  — |j         €t          d¦  «        ‚|j         j        s2|                      |j                              ¦   «         ¦  «        ƒ d {V —†S dS )Nr3   F)r4   r5   r6   r,   Úresultr   s     r   r   zretry_if_result.__call__X   sd   è è € ØÔÐ&ÝÐIÑJÔJÐJàÔ"Ô)ð 	ØŸš¨Ô(;×(BÒ(BÑ(DÔ(DÑEÔEÐEÐEÐEÐEÐEÐEÐEà�5r   )r#   r$   r%   r&   r8   r9   ÚAnyr;   r)   r0   r   r   r   r   r=   r=   P   sy   € € € € € Ø5Ð5ð#Øœ¨&¬*¨°vÔ7GÈÔ7MÐ)MÔNð#à	ð#ð #ð #ð #ð
Ð*:ð ¸tð ð ð ð ð ð r   r=   c                   óL   — e Zd ZdZdej        eef         ddfd„Zddde	fd„Z
dS )	r   z1Retries if any of the retries condition is valid.Úretriesr	   Nc                 ó   — || _         d S r   ©rC   ©r   rC   s     r   r0   zretry_any.__init__e   ó   € ØˆŒˆˆr   r   r   c              ƒ   ót   K  — d}| j         D ]+}|p" t          j        |¦  «        |¦  «        ƒ d {V —†}|r nŒ,|S )NF©rC   r   Úwrap_to_async_func©r   r   r@   Úrs       r   r   zretry_any.__call__h   se   è è € ØˆØ”ð 	ð 	ˆAØÐNÐ%A¥VÔ%>¸qÑ%AÔ%AÀ+Ñ%NÔ%NÐNÐNÐNÐNÐNÐNˆFØð Ø�ðàˆr   ©r#   r$   r%   r&   r8   ÚUnionr   r   r0   r)   r   r   r   r   r   r   b   sm   € € € € € Ø;Ð;ð ¤¨jÐ:JÐ.JÔ!Kð ÐPTð ð ð ð ðÐ*:ð ¸tð ð ð ð ð ð r   r   c                   óL   — e Zd ZdZdej        eef         ddfd„Zddde	fd„Z
dS )	r   z/Retries if all the retries condition are valid.rC   r	   Nc                 ó   — || _         d S r   rE   rF   s     r   r0   zretry_all.__init__t   rG   r   r   r   c              ƒ   ót   K  — d}| j         D ]+}|o" t          j        |¦  «        |¦  «        ƒ d {V —†}|s nŒ,|S )NTrI   rK   s       r   r   zretry_all.__call__w   se   è è € ØˆØ”ð 	ð 	ˆAØÐOÐ&B¥fÔ&?ÀÑ&BÔ&BÀ;Ñ&OÔ&OÐ OÐ OÐ OÐ OÐ OÐ OˆFØð Ø�ðàˆr   rM   r   r   r   r   r   q   sm   € € € € € Ø9Ð9ð ¤¨jÐ:JÐ.JÔ!Kð ÐPTð ð ð ð ðÐ*:ð ¸tð ð ð ð ð ð r   r   )r'   r8   Útenacityr   r   ÚTYPE_CHECKINGr   r   rN   r9   r;   r)   Ú
RetryBaseTr+   r=   r   r   r   r   r   ú<module>rU      sh  ðð  €
€
€
Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à	Ôð (Ø'Ð'Ð'Ð'Ð'Ð'ð&ð &ð &ð &ð &�zñ &ô &ð &ð8 Œ\Ø�f”oÐ'7Ð&8¸&Ô:JÈ4Ô:PÐ&PÔQÐQô€
ð
ð ð ð ð Ð)ñ ô ð ð*ð ð ð ð Ð&ñ ô ð ð$ð ð ð ð Ð ñ ô ð ðð ð ð ð Ð ñ ô ð ð ð r   