Ë
    §ŒjÓ	  ã                   ó˜   — d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
mZ d dlmZmZmZ d dlmZ  e
d«      Zerd dlmZ  G d„ dee   «      Zy	)
é    )Úsleep)	ÚTYPE_CHECKINGÚAnyÚ	AwaitableÚCallableÚOptionalÚTupleÚTypeÚTypeVarÚUnion)ÚConnectionErrorÚ
RedisErrorÚTimeoutError)ÚAbstractRetryÚT)ÚAbstractBackoffc                   óÔ   ‡ — e Zd Zej                  Zeeffdddedee	e
   df   fˆ fd„Zdedefd	„Z	 	 dd
eg ee   f   deeegef   eeegef   f   deeegef      dedef
d„Zˆ xZS )ÚRetryÚbackoffr   ÚretriesÚsupported_errors.c                 ó(   •— t         ‰| �  |||«       y ©N)ÚsuperÚ__init__)Úselfr   r   r   Ú	__class__s       €ú]/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/redis/asyncio/retry.pyr   zRetry.__init__   s   ø€ ô 	‰Ñ˜ 'Ð+;Õ<ó    ÚotherÚreturnc                 óð   — t        |t        «      st        S | j                  |j                  k(  xrF | j                  |j                  k(  xr+ t        | j                  «      t        |j                  «      k(  S r   )Ú
isinstancer   ÚNotImplementedÚ_backoffÚ_retriesÚsetÚ_supported_errors)r   r    s     r   Ú__eq__zRetry.__eq__%   sc   € Ü˜%¤Ô'Ü!Ð!ð �M‰M˜UŸ^™^Ñ+ò LØ—‘ §¡Ñ/òLä�D×*Ñ*Ó+¬s°5×3JÑ3JÓ/KÑKð	
r   ÚdoÚfailÚis_retryableÚwith_failure_countc              ƒ   ó¶  K  — | j                   j                  «        d}	 	  |«       ƒ d{  –—† S 7 Œ# | j                  $ r”}|r	 ||«      s‚ |dz  }|r |||«      ƒ d{  –—†7   n ||«      ƒ d{  –—†7   | j                  dk\  r|| j                  kD  r|‚| j                   j	                  |«      }|dkD  rt        |«      ƒ d{  –—†7   Y d}~nd}~ww xY wŒ¹­w)aÔ  
        Execute an operation that might fail and returns its result, or
        raise the exception that was thrown depending on the `Backoff` object.
        `do`: the operation to call. Expects no argument.
        `fail`: the failure handler, expects the last error that was thrown
        ``is_retryable``: optional function to determine if an error is retryable
        ``with_failure_count``: if True, the failure count is passed to the failure handler
        r   Né   )r%   Úresetr(   r&   Úcomputer   )r   r*   r+   r,   r-   ÚfailuresÚerrorr   s           r   Úcall_with_retryzRetry.call_with_retry/   sÇ   è ø€ ð$ 	�‰×ÑÔØˆØð)Ù›T—zÐ!�zùØ×)Ñ)ò )Ù©°UÔ(;ØØ˜A‘�á%Ù˜u hÓ/×/Ò/á˜u›+×%Ñ%à—=‘= AÒ%¨(°T·]±]Ò*BØ�KØŸ-™-×/Ñ/°Ó9�Ø˜Q’;Ü ›.×(Ñ(ÿøð)úð ùs\   ‚C¡
2 «0¬2 ¯C°2 ²CÁCÁA"Á CÁ1A4Á2ACÃCÃCÃCÃCÃC)NF)Ú__name__Ú
__module__Ú__qualname__r   Ú__hash__r   r   Úintr	   r
   r   r   r   Úboolr)   r   r   r   r   Ú	Exceptionr   r4   Ú__classcell__)r   s   @r   r   r      sæ   ø„ Ø×%Ñ%€Hð Øð:
ñ		=à"ð	=ð ð	=ð    ZÑ 0°#Ð 5Ñ6õ		=ð
˜Cð 
 Dó 
ð" ?CØ#(ñ%)à�R˜ 1™Ð%Ñ&ð%)ð Ø�i�[ #Ð%Ñ&Ø�i Ð% sÐ*Ñ+ð-ñ
ð%)ð ˜x¨¨°TÐ(9Ñ:Ñ;ð%)ð !ð%)ð 
÷%)r   r   N)Úasyncior   Útypingr   r   r   r   r   r	   r
   r   r   Úredis.exceptionsr   r   r   Úredis.retryr   r   Úredis.backoffr   r   © r   r   Ú<module>rC      sC   ðÝ ÷
÷ 
õ 
÷ GÑ FÝ %áˆCƒL€áÝ-ô=)ˆM˜*Ñ%õ =)r   