§
    OŠtjJ#  ã                   ó,  — d dl Z d dlZd dlZej        rd dlmZ  G d„ de j        ¦  «        Zej        eej	        dge
f         f         Z G d„ de¦  «        Z e¦   «         Z G d„ d	e¦  «        Z e¦   «         Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS ) é    N)Ú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 )Ú
retry_basez)Abstract base class for retry strategies.Úretry_stater   Úreturnc                 ó   — d S ©N© ©Úselfr   s     úL/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/tenacity/retry.pyÚ__call__zretry_base.__call__   s   € àˆó    ÚotherÚ	retry_allc                 ó,   — |                      | ¦  «        S r	   )Ú__rand__©r   r   s     r   Ú__and__zretry_base.__and__    s   € Ø�~Š~˜dÑ#Ô#Ð#r   c                 ó"   — t          || ¦  «        S r	   )r   r   s     r   r   zretry_base.__rand__#   ó   € Ý˜ Ñ%Ô%Ð%r   Ú	retry_anyc                 ó,   — |                      | ¦  «        S r	   )Ú__ror__r   s     r   Ú__or__zretry_base.__or__&   s   € Ø�}Š}˜TÑ"Ô"Ð"r   c                 ó"   — t          || ¦  «        S r	   )r   r   s     r   r   zretry_base.__ror__)   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›   € € € € € Ø3Ð3àÔðÐ$4ð ¸ð ð ð ñ Ôðð$ð $ð $ð $ð&ð &ð &ð &ð#ð #ð #ð #ð&ð &ð &ð &ð &ð &r   r   r   c                   ó"   — e Zd ZdZdddefd„ZdS )Ú_retry_neverz-Retry strategy that never rejects any result.r   r   r   c                 ó   — dS )NFr
   r   s     r   r   z_retry_never.__call__3   s   € Øˆur   N©r   r   r   r    r#   r   r
   r   r   r%   r%   0   s=   € € € € € Ø7Ð7ðÐ$4ð ¸ð ð ð ð ð ð r   r%   c                   ó"   — e Zd ZdZdddefd„ZdS )Ú_retry_alwaysz.Retry strategy that always rejects any result.r   r   r   c                 ó   — dS )NTr
   r   s     r   r   z_retry_always.__call__=   s   € Øˆtr   Nr'   r
   r   r   r)   r)   :   s=   € € € € € Ø8Ð8ðÐ$4ð ¸ð ð ð ð ð ð r   r)   c                   óN   — e Zd ZdZdej        eg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__G   ó   € Ø"ˆŒˆˆr   r   r   c                 óÈ   — |j         €t          d¦  «        ‚|j         j        r?|j                              ¦   «         }|€t          d¦  «        ‚|                      |¦  «        S dS )Nú(__call__() called before outcome was setú(outcome failed but the exception is NoneF©ÚoutcomeÚRuntimeErrorÚfailedÚ	exceptionr-   ©r   r   r:   s      r   r   zretry_if_exception.__call__J   sh   € ØÔÐ&ÝÐIÑJÔJÐJàÔÔ%ð 	Ø#Ô+×5Ò5Ñ7Ô7ˆIØÐ Ý"Ð#MÑNÔNÐNØ—>’> )Ñ,Ô,Ð,à�5r   )
r   r   r   r    ÚtypingÚCallableÚBaseExceptionr#   r1   r   r
   r   r   r,   r,   D   sm   € € € € € ØKÐKð# &¤/°=°/À4Ð2GÔ"Hð #ÈTð #ð #ð #ð #ð
Ð$4ð 
¸ð 
ð 
ð 
ð 
ð 
ð 
r   r,   c                   ó�   ‡ — e Zd ZdZefdej        ej        e         ej	        ej        e         df         f         ddfˆ fd„Z
ˆ xZS )Úretry_if_exception_typez=Retries if an exception has been raised of one or more types.Úexception_types.r   Nc                 ó`   •‡— ‰| _         t          ¦   «                              ˆfd„¦  «         d S )Nc                 ó$   •— t          | ‰¦  «        S r	   ©Ú
isinstance©ÚerA   s    €r   ú<lambda>z2retry_if_exception_type.__init__.<locals>.<lambda>b   s   ø€ ¥:¨a°Ñ#AÔ#A€ r   ©rA   Úsuperr1   ©r   rA   Ú	__class__s    `€r   r1   z retry_if_exception_type.__init__Z   s6   øø€ ð  /ˆÔÝ‰Œ×ÒÐAÐAÐAÐAÑBÔBÐBÐBÐBr   ©r   r   r   r    Ú	Exceptionr<   ÚUnionÚTyper>   ÚTupler1   Ú__classcell__©rL   s   @r   r@   r@   W   s˜   ø€ € € € € ØGÐGð ðCð CàœØŒK˜Ô&ØŒL˜œ ]Ô3°SÐ8Ô9ð;ô
ðCð 
ðCð Cð Cð Cð Cð Cð Cð Cð Cð Cr   r@   c                   ó�   ‡ — e Zd ZdZefdej        ej        e         ej	        ej        e         df         f         ddfˆ fd„Z
ˆ xZS )Úretry_if_not_exception_typezARetries except an exception has been raised of one or more types.rA   .r   Nc                 ó`   •‡— ‰| _         t          ¦   «                              ˆfd„¦  «         d S )Nc                 ó&   •— t          | ‰¦  «         S r	   rD   rF   s    €r   rH   z6retry_if_not_exception_type.__init__.<locals>.<lambda>p   ó   ø€ ¥z°!°_Ñ'EÔ'EÐ#E€ r   rI   rK   s    `€r   r1   z$retry_if_not_exception_type.__init__h   ó6   øø€ ð  /ˆÔÝ‰Œ×ÒÐEÐEÐEÐEÑFÔFÐFÐFÐFr   rM   rS   s   @r   rU   rU   e   s˜   ø€ € € € € ØKÐKð ðGð GàœØŒK˜Ô&ØŒL˜œ ]Ô3°SÐ8Ô9ð;ô
ðGð 
ðGð Gð Gð Gð Gð Gð Gð Gð Gð Gr   rU   c                   ó    ‡ — e Zd ZdZefdej        ej        e         ej	        ej        e         df         f         ddfˆ fd„Z
dddefd	„Zˆ xZS )
Úretry_unless_exception_typez:Retries until an exception is raised of one or more types.rA   .r   Nc                 ó`   •‡— ‰| _         t          ¦   «                              ˆfd„¦  «         d S )Nc                 ó&   •— t          | ‰¦  «         S r	   rD   rF   s    €r   rH   z6retry_unless_exception_type.__init__.<locals>.<lambda>~   rX   r   rI   rK   s    `€r   r1   z$retry_unless_exception_type.__init__v   rY   r   r   r   c                 óÈ   — |j         €t          d¦  «        ‚|j         j        sdS |j                              ¦   «         }|€t          d¦  «        ‚|                      |¦  «        S ©Nr4   Tr5   r6   r;   s      r   r   z$retry_unless_exception_type.__call__€   sj   € ØÔÐ&ÝÐIÑJÔJÐJð Ô"Ô)ð 	Ø�4àÔ'×1Ò1Ñ3Ô3ˆ	ØÐÝÐIÑJÔJÐJØ�~Š~˜iÑ(Ô(Ð(r   )r   r   r   r    rN   r<   rO   rP   r>   rQ   r1   r#   r   rR   rS   s   @r   r[   r[   s   s·   ø€ € € € € ØDÐDð ðGð GàœØŒK˜Ô&ØŒL˜œ ]Ô3°SÐ8Ô9ð;ô
ðGð 
ðGð Gð Gð Gð Gð Gð)Ð$4ð )¸ð )ð )ð )ð )ð )ð )ð )ð )r   r[   c                   ó–   — e Zd ZdZefdej        ej        e         ej	        ej        e         df         f         ddfd„Z
dddefd	„ZdS )
Úretry_if_exception_cause_typezåRetries if any of the causes of the raised exception is of one or more types.

    The check on the type of the cause of the exception is done recursively (until finding
    an exception in the chain that has no `__cause__`)
    rA   .r   Nc                 ó   — || _         d S r	   )Úexception_cause_types)r   rA   s     r   r1   z&retry_if_exception_cause_type.__init__•   s   € ð &5ˆÔ"Ð"Ð"r   r   r   c                 óÊ   — |j         €t          d¦  «        ‚|j         j        r@|j                              ¦   «         }|�%t	          |j        | j        ¦  «        rdS |j        }|­%dS )Nz&__call__ called before outcome was setTF)r7   r8   r9   r:   rE   Ú	__cause__rc   )r   r   Úexcs      r   r   z&retry_if_exception_cause_type.__call__ž   sr   € ØÔÐ&ÝÐGÑHÔHÐHàÔÔ%ð 	$ØÔ%×/Ò/Ñ1Ô1ˆCØ�/Ý˜cœm¨TÔ-GÑHÔHð  Ø˜4Ø”m�ð �/ð
 ˆur   )r   r   r   r    rN   r<   rO   rP   r>   rQ   r1   r#   r   r
   r   r   ra   ra   Ž   s�   € € € € € ðð ð ð5ð 5àœØŒK˜Ô&ØŒL˜œ ]Ô3°SÐ8Ô9ð;ô
ð5ð 
ð5ð 5ð 5ð 5ðÐ$4ð ¸ð ð ð ð ð ð r   ra   c                   óX   — e Zd ZdZdej        ej        g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/   r0   s     r   r1   zretry_if_result.__init__¯   r2   r   r   r   c                 ó¢   — |j         €t          d¦  «        ‚|j         j        s,|                      |j                              ¦   «         ¦  «        S dS ©Nr4   F©r7   r8   r9   r-   Úresultr   s     r   r   zretry_if_result.__call__²   sN   € ØÔÐ&ÝÐIÑJÔJÐJàÔ"Ô)ð 	Ø—>’> +Ô"5×"<Ò"<Ñ">Ô">Ñ?Ô?Ð?à�5r   ©
r   r   r   r    r<   r=   ÚAnyr#   r1   r   r
   r   r   rh   rh   ¬   so   € € € € € Ø5Ð5ð# &¤/°6´:°,ÀÐ2DÔ"Eð #È$ð #ð #ð #ð #ðÐ$4ð ¸ð ð ð ð ð ð r   rh   c                   óX   — e Zd ZdZdej        ej        gef         ddfd„Zdddefd„Z	dS )	Úretry_if_not_resultz*Retries if the result refutes a predicate.r-   r   Nc                 ó   — || _         d S r	   r/   r0   s     r   r1   zretry_if_not_result.__init__¿   r2   r   r   r   c                 ó¤   — |j         €t          d¦  «        ‚|j         j        s-|                      |j                              ¦   «         ¦  «         S dS rk   rl   r   s     r   r   zretry_if_not_result.__call__Â   sQ   € ØÔÐ&ÝÐIÑJÔJÐJàÔ"Ô)ð 	Ø—~’~ kÔ&9×&@Ò&@Ñ&BÔ&BÑCÔCÐCÐCà�5r   rn   r
   r   r   rq   rq   ¼   so   € € € € € Ø4Ð4ð# &¤/°6´:°,ÀÐ2DÔ"Eð #È$ð #ð #ð #ð #ðÐ$4ð ¸ð ð ð ð ð ð r   rq   c            	       ó~   ‡ — e Zd ZdZ	 	 ddej        e         dej        deej        e         f         ddfˆ fd„Z	ˆ xZ
S )Úretry_if_exception_messagez2Retries if an exception message equals or matches.NÚmessageÚmatchr   c                 óR  •‡‡— ‰r|rt          | j        j        › d�¦  «        ‚‰rdt          dt          fˆfd„}|}nI|r+t          j        |¦  «        Šdt          dt          fˆfd„}|}nt          | j        j        › d�¦  «        ‚t          ¦   «                              |¦  «         d S )Nz.() takes either 'message' or 'match', not bothr:   r   c                 ó*   •— ‰t          | ¦  «        k    S r	   )Ústr)r:   rv   s    €r   Úmessage_fncz8retry_if_exception_message.__init__.<locals>.message_fncÜ   s   ø€ Ø¥# i¡.¤.Ò0Ð0r   c                 ób   •— t          ‰                     t          | ¦  «        ¦  «        ¦  «        S r	   )r#   rw   rz   )r:   Úprogs    €r   Ú	match_fncz6retry_if_exception_message.__init__.<locals>.match_fncã   s#   ø€ Ý˜DŸJšJ¥s¨9¡~¤~Ñ6Ô6Ñ7Ô7Ð7r   z3() missing 1 required argument 'message' or 'match')	Ú	TypeErrorrL   r   r>   r#   ÚreÚcompilerJ   r1   )r   rv   rw   r{   r-   r~   r}   rL   s    `    @€r   r1   z#retry_if_exception_message.__init__Ï   s  øøø€ ð
 ð 	�uð 	ÝØ”>Ô*ÐZÐZÐZñô ð ð
 ð 	ð1¥}ð 1½ð 1ð 1ð 1ð 1ð 1ð 1ð $ˆIˆIØð 
	Ý”:˜eÑ$Ô$ˆDð8¥]ð 8µtð 8ð 8ð 8ð 8ð 8ð 8ð "ˆIˆIåØ”>Ô*Ð_Ð_Ð_ñô ð õ 	‰Œ×Ò˜Ñ#Ô#Ð#Ð#Ð#r   ©NN)r   r   r   r    r<   ÚOptionalrz   rO   ÚPatternr1   rR   rS   s   @r   ru   ru   Ì   sˆ   ø€ € € € € Ø<Ð<ð )-Ø>Bð$ð $à” Ô%ð$ð Œ|˜D # v¤~°cÔ':Ð:Ô;ð$ð 
ð	$ð $ð $ð $ð $ð $ð $ð $ð $ð $r   ru   c            	       óŽ   ‡ — e Zd ZdZ	 	 d
dej        e         dej        deej        e         f         ddfˆ fd„Z	ddde
fd	„Zˆ xZS )Úretry_if_not_exception_messagez5Retries until an exception message equals or matches.Nrv   rw   r   c                 óp   •‡— t          ¦   «                              ||¦  «         | j        Šˆfd„| _        d S )Nc                  ó   •—  ‰| i |¤Ž S r	   r
   )Úargs_Úkwargs_Úif_predicates     €r   rH   z9retry_if_not_exception_message.__init__.<locals>.<lambda>ú   s   ø€ °|°|ÀUÐ7VÈgÐ7VÐ7VÐ3V€ r   )rJ   r1   r-   )r   rv   rw   r‹   rL   s      @€r   r1   z'retry_if_not_exception_message.__init__ò   s;   øø€ õ
 	‰Œ×Ò˜ %Ñ(Ô(Ð(à”~ˆØVÐVÐVÐVˆŒˆˆr   r   r   c                 óÈ   — |j         €t          d¦  «        ‚|j         j        sdS |j                              ¦   «         }|€t          d¦  «        ‚|                      |¦  «        S r_   r6   r;   s      r   r   z'retry_if_not_exception_message.__call__ü   sh   € ØÔÐ&ÝÐIÑJÔJÐJàÔ"Ô)ð 	Ø�4àÔ'×1Ò1Ñ3Ô3ˆ	ØÐÝÐIÑJÔJÐJØ�~Š~˜iÑ(Ô(Ð(r   r‚   )r   r   r   r    r<   rƒ   rz   rO   r„   r1   r#   r   rR   rS   s   @r   r†   r†   ï   sµ   ø€ € € € € Ø?Ð?ð )-Ø>BðWð Wà” Ô%ðWð Œ|˜D # v¤~°cÔ':Ð:Ô;ðWð 
ð	Wð Wð Wð Wð Wð Wð
)Ð$4ð 
)¸ð 
)ð 
)ð 
)ð 
)ð 
)ð 
)ð 
)ð 
)r   r†   c                   ó2   — e Zd ZdZde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	   ©rŽ   ©r   rŽ   s     r   r1   zretry_any.__init__  ó   € ØˆŒˆˆr   r   r   c                 óD   ‡— t          ˆfd„| j        D ¦   «         ¦  «        S )Nc              3   ó.   •K  — | ]} |‰¦  «        V — Œd S r	   r
   ©Ú.0Úrr   s     €r   ú	<genexpr>z%retry_any.__call__.<locals>.<genexpr>  ó+   øè è € Ð8Ð8 a�1�1�[‘>”>Ð8Ð8Ð8Ð8Ð8Ð8r   )ÚanyrŽ   r   s    `r   r   zretry_any.__call__  ó(   ø€ ÝÐ8Ð8Ð8Ð8¨4¬<Ð8Ñ8Ô8Ñ8Ô8Ð8r   ©r   r   r   r    r   r1   r#   r   r
   r   r   r   r   	  s_   € € € € € Ø;Ð;ð ð °ð ð ð ð ð9Ð$4ð 9¸ð 9ð 9ð 9ð 9ð 9ð 9r   r   c                   ó2   — e Zd ZdZdeddfd„Zdddefd„ZdS )	r   z/Retries if all the retries condition are valid.rŽ   r   Nc                 ó   — || _         d S r	   r�   r‘   s     r   r1   zretry_all.__init__  r’   r   r   r   c                 óD   ‡— t          ˆfd„| j        D ¦   «         ¦  «        S )Nc              3   ó.   •K  — | ]} |‰¦  «        V — Œd S r	   r
   r•   s     €r   r˜   z%retry_all.__call__.<locals>.<genexpr>  r™   r   )ÚallrŽ   r   s    `r   r   zretry_all.__call__  r›   r   rœ   r
   r   r   r   r     s_   € € € € € Ø9Ð9ð ð °ð ð ð ð ð9Ð$4ð 9¸ð 9ð 9ð 9ð 9ð 9ð 9r   r   )r!   r€   r<   ÚTYPE_CHECKINGÚtenacityr   ÚABCr   rO   r=   r#   Ú
RetryBaseTr%   Úretry_neverr)   Úretry_alwaysr,   r@   rU   r[   ra   rh   rq   ru   r†   r   r   r
   r   r   ú<module>r¨      sê  ðð" €
€
€
Ø 	€	€	€	Ø €€€à	Ôð (Ø'Ð'Ð'Ð'Ð'Ð'ð&ð &ð &ð &ð &�”ñ &ô &ð &ð( Œ\˜* f¤oÐ7GÐ6HÈ$Ð6NÔ&OÐOÔP€
ðð ð ð ð �:ñ ô ð ð ˆl‰nŒn€ðð ð ð ð �Jñ ô ð ð ˆ}‰Œ€ðð ð ð ð ˜ñ ô ð ð&Cð Cð Cð Cð CÐ0ñ Cô Cð CðGð Gð Gð Gð GÐ"4ñ Gô Gð Gð)ð )ð )ð )ð )Ð"4ñ )ô )ð )ð6ð ð ð ð  Jñ ô ð ð<ð ð ð ð �jñ ô ð ð ð ð ð ð ˜*ñ ô ð ð  $ð  $ð  $ð  $ð  $Ð!3ñ  $ô  $ð  $ðF)ð )ð )ð )ð )Ð%?ñ )ô )ð )ð49ð 9ð 9ð 9ð 9�
ñ 9ô 9ð 9ð9ð 9ð 9ð 9ð 9�
ñ 9ô 9ð 9ð 9ð 9r   