Ë
    [üàg6#  ã                  óð   — d dl mZ d dlZd dlZd dlmZmZmZmZ d dl	m
Z
 d dlmZ eegee   f   Z G d„ d«      Z G d„ d	e«      Zdd
„Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)é    )ÚannotationsN)ÚAnyÚ	AwaitableÚCallableÚIterable)Úwarn)ÚClientResponsec                  ód   — e Zd Z	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zej
                  ddd„«       Zy)ÚRetryOptionsBaseNc                óÖ   — || _         |€
t        «       }|| _        |€
t        «       }|| _        |€h d£}|D �ch c]  }|j	                  «       ’Œ c}| _        || _        || _        y c c}w )N>	   ÚGETÚPUTÚHEADÚPOSTÚPATCHÚTRACEÚDELETEÚCONNECTÚOPTIONS)ÚattemptsÚsetÚstatusesÚ
exceptionsÚupperÚmethodsÚretry_all_server_errorsÚevaluate_response_callback)Úselfr   r   r   r   r   r   Úmethods           úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/aiohttp_retry/retry_options.pyÚ__init__zRetryOptionsBase.__init__   sk   € ð &ˆŒØÐÜ“uˆHØ'/ˆŒàÐÜ›ˆJØ5?ˆŒàˆ?ÚfˆGØDKÖ&L¸& v§|¡|¥~Ò&LˆŒà'>ˆÔ$Ø*DˆÕ'ùò 'Ms   ¸A&c                ó   — t         ‚©N)ÚNotImplementedError©r   ÚattemptÚresponses      r    Úget_timeoutzRetryOptionsBase.get_timeout(   s   € ä!Ð!ó    )é   NNNTN)r   Úintr   úIterable[int] | Noner   ú Iterable[type[Exception]] | Noner   úIterable[str] | Noner   Úboolr   ú#EvaluateResponseCallbackType | NoneÚreturnÚNoner#   ©r&   r+   r'   zClientResponse | Noner1   Úfloat)Ú__name__Ú
__module__Ú__qualname__r!   ÚabcÚabstractmethodr(   © r)   r    r   r      s‚   „ ð Ø)-Ø7;Ø(,Ø(,àJNðEàðEð 'ðEð 5ð	Eð
 &ðEð "&ðEð %HðEð 
óEð4 	×Ñó"ó ñ"r)   r   c                  óp   ‡ — e Zd Z	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Z	 d	 	 	 	 	 dd„Zˆ xZS )ÚExponentialRetryc
                óZ   •— t         ‰
| �  ||||||	¬«       || _        || _        || _        y ©N©r   r   r   r   r   r   )Úsuperr!   Ú_start_timeoutÚ_max_timeoutÚ_factor)r   r   Ústart_timeoutÚmax_timeoutÚfactorr   r   r   r   r   Ú	__class__s             €r    r!   zExponentialRetry.__init__.   sB   ø€ ô 	‰ÑØØØ!ØØ$;Ø'Að 	ô 	
ð &3ˆÔØ#.ˆÔØ$ˆ�r)   c                óf   — | j                   | j                  |z  z  }t        || j                  «      S )z(Return timeout with exponential backoff.)rA   rC   ÚminrB   )r   r&   r'   Útimeouts       r    r(   zExponentialRetry.get_timeoutG   s0   € ð ×%Ñ%¨¯©°wÑ)>Ñ?ˆÜ�7˜D×-Ñ-Ó.Ð.r)   )	r*   çš™™™™™¹?ç      >@ç       @NNNTN)r   r+   rD   r4   rE   r4   rF   r4   r   úset[int] | Noner   úset[type[Exception]] | Noner   úset[str] | Noner   r/   r   r0   r1   r2   r#   r3   ©r5   r6   r7   r!   r(   Ú__classcell__©rG   s   @r    r<   r<   -   s®   ø„ ð Ø"Ø!ØØ$(Ø26Ø#'Ø(,ØJNð%àð%ð ð%ð ð	%ð
 ð%ð "ð%ð 0ð%ð !ð%ð "&ð%ð %Hð%ð 
õ%ð8 +/ð/àð/ð (ð/ð 
÷	/r)   r<   c                 ó2   — t        dd¬«       t        | i |¤ŽS )Nz0RetryOptions is deprecated, use ExponentialRetryé   )Ú
stacklevel)r   r<   )ÚargsÚkwargss     r    ÚRetryOptionsrY   Q   s   € ÜÐ	;ÈÕJÜ˜TÐ, VÑ,Ð,r)   c            	      ó„   ‡ — e Zd Zddddddej                  ddf		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Z	 d		 	 	 	 	 d
d„Zˆ xZS )ÚRandomRetryr*   NrK   ç      @Tc
                óh   •— t         ‰
| �  ||||||	¬«       || _        || _        || _        || _        y r>   )r@   r!   r   Úmin_timeoutrE   Úrandom)r   r   r   r   r   r^   rE   Úrandom_funcr   r   rG   s             €r    r!   zRandomRetry.__init__W   sI   ø€ ô 	‰ÑØØØ!ØØ$;Ø'Að 	ô 	
ð &ˆŒØ"-ˆÔØ"-ˆÔØ!ˆ�r)   c                óp   — | j                   | j                  «       | j                  | j                   z
  z  z   S )zGenerate random timeouts.)r^   r_   rE   r%   s      r    r(   zRandomRetry.get_timeoutq   s1   € ð ×Ñ $§+¡+£-°4×3CÑ3CÀd×FVÑFVÑ3VÑ"WÑWÐWr)   )r   r+   r   r,   r   r-   r   r.   r^   r4   rE   r4   r`   zCallable[[], float]r   r/   r   r0   r1   r2   r#   r3   )r5   r6   r7   r_   r!   r(   rR   rS   s   @r    r[   r[   V   s¶   ø„ ð Ø)-Ø7;Ø(,Ø Ø Ø+1¯=©=Ø(,ØJNð"àð"ð 'ð"ð 5ð	"ð
 &ð"ð ð"ð ð"ð )ð"ð "&ð"ð %Hð"ð 
õ"ð: +/ðXàðXð (ðXð 
÷	Xr)   r[   c                  ó\   ‡ — e Zd Z	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Z	 d	 	 	 	 	 dd„Zˆ xZS )Ú	ListRetryc                óP   •— t         ‰| �  t        |«      |||||¬«       || _        y r>   )r@   r!   ÚlenÚtimeouts)r   rf   r   r   r   r   r   rG   s          €r    r!   zListRetry.__init__{   s6   ø€ ô 	‰ÑÜ˜“]ØØ!ØØ$;Ø'Að 	ô 	
ð !ˆ�r)   c                ó    — | j                   |   S )zTimeouts from a defined list.)rf   r%   s      r    r(   zListRetry.get_timeoutŽ   s   € ð �}‰}˜WÑ%Ð%r)   )NNNTN)rf   zlist[float]r   r,   r   r-   r   r.   r   r/   r   r0   r1   r2   r#   r3   rQ   rS   s   @r    rc   rc   z   s„   ø„ ð *.Ø7;Ø(,Ø(,ØJNð!àð!ð 'ð!ð 5ð	!ð
 &ð!ð "&ð!ð %Hð!ð 
õ!ð, +/ð&àð&ð (ð&ð 
÷	&r)   rc   c                  ój   ‡ — e Zd Z	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Z	 d	 	 	 	 	 dd„Zˆ xZS )ÚFibonacciRetryc	                óh   •— t         ‰	| �  ||||||¬«       || _        || _        d| _        d| _        y )Nr?   ç      ð?)r@   r!   rE   Ú
multiplierÚ	prev_stepÚcurrent_step)
r   r   rl   r   r   r   rE   r   r   rG   s
            €r    r!   zFibonacciRetry.__init__˜   sI   ø€ ô 	‰ÑØØØ!ØØ$;Ø'Að 	ô 	
ð 'ˆÔØ$ˆŒØˆŒØˆÕr)   c                óª   — | j                   | j                  z   }| j                  | _         || _        t        | j                  |z  | j                  «      S r#   )rm   rn   rI   rl   rE   )r   r&   r'   Únew_current_steps       r    r(   zFibonacciRetry.get_timeout±   sK   € ð
  Ÿ>™>¨D×,=Ñ,=Ñ=ÐØ×*Ñ*ˆŒØ,ˆÔä�4—?‘?Ð%5Ñ5°t×7GÑ7GÓHÐHr)   )r*   rk   NNNr\   TN)r   r+   rl   r4   r   r,   r   r-   r   r.   rE   r4   r   r/   r   r0   r1   r2   r#   r3   rQ   rS   s   @r    ri   ri   —   s¥   ø„ ð ØØ)-Ø7;Ø(,Ø Ø(,ØJNð àð ð ð ð 'ð	 ð
 5ð ð &ð ð ð ð "&ð ð %Hð ð 
õ ð8 +/ð	Iàð	Ið (ð	Ið 
÷		Ir)   ri   c                  ó~   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Z	 d	 	 	 	 	 dˆ fd„Zˆ xZS )ÚJitterRetryz3https://github.com/inyutin/aiohttp_retry/issues/44.c                ón   •— t         ‰| �  ||||||||	|
¬«	       || _        || _        || _        || _        y )N)	r   rD   rE   rF   r   r   r   r   r   )r@   r!   rA   rB   rC   Ú_random_interval_size)r   r   rD   rE   rF   r   r   r   Úrandom_interval_sizer   r   rG   s              €r    r!   zJitterRetry.__init__À   sS   ø€ ô 	‰ÑØØ'Ø#ØØØ!ØØ$;Ø'Að 	ô 
	
ð &3ˆÔØ#.ˆÔØ$ˆŒØ%9ˆÕ"r)   c                ó‚   •— t         ‰| �  |«      t        j                  d| j                  «      | j
                  z  z   }|S )Nr   )r@   r(   r_   Úuniformrt   rC   )r   r&   r'   rJ   rG   s       €r    r(   zJitterRetry.get_timeoutÞ   s;   ø€ ô
 ™Ñ,¨WÓ5¼¿¹ÀqÈ$×JdÑJdÓ8eÐim×iuÑiuÑ8uÑuˆØˆr)   )
r*   rK   rL   rM   NNNrM   TN)r   r+   rD   r4   rE   r4   rF   r4   r   rN   r   rO   r   rP   ru   r4   r   r/   r   r0   r1   r2   r#   r3   )r5   r6   r7   Ú__doc__r!   r(   rR   rS   s   @r    rr   rr   ½   sÄ   ø„ Ù=ð Ø"Ø!ØØ$(Ø26Ø#'Ø&)Ø(,ØJNð:àð:ð ð:ð ð	:ð
 ð:ð "ð:ð 0ð:ð !ð:ð $ð:ð "&ð:ð %Hð:ð 
õ:ðB +/ðàðð (ðð 
÷	ñ r)   rr   )rW   r   rX   r   r1   r<   )Ú
__future__r   r8   r_   Útypingr   r   r   r   Úwarningsr   Úaiohttpr	   r/   ÚEvaluateResponseCallbackTyper   r<   rY   r[   rc   ri   rr   r:   r)   r    ú<module>r~      s‰   ðÝ "ã 
Û ß 5Ó 5Ý å "à'¨Ð(8¸)ÀD¹/Ð(IÑJÐ ÷"ñ "ô@!/Ð'ô !/óH-ô
!XÐ"ô !XôH&Ð ô &ô:#IÐ%ô #IôL'Ð"õ 'r)   