§
    >xÅj6#  ã                  ó"  — 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dS )é    )ÚannotationsN)ÚAnyÚ	AwaitableÚCallableÚIterable)Úwarn)ÚClientResponsec                  óH   — e Zd Z	 	 	 	 	 	 ddd„Zej        ddd„¦   «         ZdS )ÚRetryOptionsBaseé   NTÚattemptsÚintÚstatusesúIterable[int] | NoneÚ
exceptionsú Iterable[type[Exception]] | NoneÚmethodsúIterable[str] | NoneÚretry_all_server_errorsÚboolÚevaluate_response_callbackú#EvaluateResponseCallbackType | NoneÚreturnÚNonec                óº   — || _         |€t          ¦   «         }|| _        |€t          ¦   «         }|| _        |€h d£}d„ |D ¦   «         | _        || _        || _        d S )N>	   ÚGETÚPUTÚHEADÚPOSTÚPATCHÚTRACEÚDELETEÚCONNECTÚOPTIONSc                ó6   — h | ]}|                      ¦   «         ’ŒS © )Úupper)Ú.0Úmethods     úLC:\Projects\Historical\venv\Lib\site-packages\aiohttp_retry/retry_options.pyú	<setcomp>z,RetryOptionsBase.__init__.<locals>.<setcomp>#   s    € Ð&LÐ&LÐ&L¸& v§|¢|¡~¤~Ð&LÐ&LÐ&Ló    )r   Úsetr   r   r   r   r   )Úselfr   r   r   r   r   r   s          r*   Ú__init__zRetryOptionsBase.__init__   sr   € ð &ˆŒØÐÝ‘u”uˆHØ'/ˆŒàÐÝ™œˆJØ5?ˆŒàˆ?ØfÐfÐfˆGØ&LÐ&LÀGÐ&LÑ&LÔ&LˆŒà'>ˆÔ$Ø*DˆÔ'Ð'Ð'r,   ÚattemptÚresponseúClientResponse | NoneÚfloatc                ó   — t           ‚©N)ÚNotImplementedError©r.   r0   r1   s      r*   Úget_timeoutzRetryOptionsBase.get_timeout(   s   € å!Ð!r,   )r   NNNTN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   ©r0   r   r1   r2   r   r3   )Ú__name__Ú
__module__Ú__qualname__r/   ÚabcÚabstractmethodr8   r&   r,   r*   r   r      so   € € € € € ð Ø)-Ø7;Ø(,Ø(,àJNðEð Eð Eð Eð Eð4 	Ôð"ð "ð "ð "ñ Ôð"ð "ð "r,   r   c                  ó@   ‡ — e Zd Z	 	 	 	 	 	 	 	 	 ddˆ fd„Z	 d d!d„Zˆ xZS )"ÚExponentialRetryr   çš™™™™™¹?ç      >@ç       @NTr   r   Ústart_timeoutr3   Úmax_timeoutÚfactorr   úset[int] | Noner   úset[type[Exception]] | Noner   úset[str] | Noner   r   r   r   r   r   c
                ó€   •— t          ¦   «                              ||||||	¬¦  «         || _        || _        || _        d S ©N©r   r   r   r   r   r   )Úsuperr/   Ú_start_timeoutÚ_max_timeoutÚ_factor)r.   r   rD   rE   rF   r   r   r   r   r   Ú	__class__s             €r*   r/   zExponentialRetry.__init__.   sU   ø€ õ 	‰Œ×ÒØØØ!ØØ$;Ø'Að 	ñ 	
ô 	
ð 	
ð &3ˆÔØ#.ˆÔØ$ˆŒˆˆr,   r0   r1   r2   c                óP   — | j         | j        |z  z  }t          || j        ¦  «        S )z(Return timeout with exponential backoff.)rN   rP   ÚminrO   )r.   r0   r1   Útimeouts       r*   r8   zExponentialRetry.get_timeoutG   s+   € ð Ô%¨¬°wÑ)>Ñ?ˆÝ�7˜DÔ-Ñ.Ô.Ð.r,   )	r   rA   rB   rC   NNNTN)r   r   rD   r3   rE   r3   rF   r3   r   rG   r   rH   r   rI   r   r   r   r   r   r   r5   r9   ©r:   r;   r<   r/   r8   Ú__classcell__©rQ   s   @r*   r@   r@   -   s}   ø€ € € € € ð Ø"Ø!ØØ$(Ø26Ø#'Ø(,ØJNð%ð %ð %ð %ð %ð %ð %ð8 +/ð/ð /ð /ð /ð /ð /ð /ð /ð /r,   r@   Úargsr   Úkwargsr   c                 ó<   — t          dd¬¦  «         t          | i |¤ŽS )Nz0RetryOptions is deprecated, use ExponentialRetryé   )Ú
stacklevel)r   r@   )rX   rY   s     r*   ÚRetryOptionsr]   Q   s)   € ÝÐ	;ÈÐJÑJÔJÐJÝ˜TÐ, VÐ,Ð,Ð,r,   c            	      óJ   ‡ — 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   NrA   ç      @Tr   r   r   r   r   r   r   r   Úmin_timeoutr3   rE   Úrandom_funcúCallable[[], float]r   r   r   r   r   r   c
                óŽ   •— t          ¦   «                              ||||||	¬¦  «         || _        || _        || _        || _        d S rK   )rM   r/   r   ra   rE   Úrandom)r.   r   r   r   r   ra   rE   rb   r   r   rQ   s             €r*   r/   zRandomRetry.__init__W   s\   ø€ õ 	‰Œ×ÒØØØ!ØØ$;Ø'Að 	ñ 	
ô 	
ð 	
ð &ˆŒØ"-ˆÔØ"-ˆÔØ!ˆŒˆˆr,   r0   r1   r2   c                óZ   — | j         |                      ¦   «         | j        | j         z
  z  z   S )zGenerate random timeouts.)ra   re   rE   r7   s      r*   r8   zRandomRetry.get_timeoutq   s*   € ð Ô $§+¢+¡-¤-°4Ô3CÀdÔFVÑ3VÑ"WÑWÐWr,   )r   r   r   r   r   r   r   r   ra   r3   rE   r3   rb   rc   r   r   r   r   r   r   r5   r9   )r:   r;   r<   re   r/   r8   rV   rW   s   @r*   r_   r_   V   sˆ   ø€ € € € € ð Ø)-Ø7;Ø(,Ø Ø Ø+1¬=Ø(,ØJNð"ð "ð "ð "ð "ð "ð "ð: +/ðXð Xð Xð Xð Xð Xð Xð Xð Xr,   r_   c                  ó8   ‡ — e Zd Z	 	 	 	 	 ddˆ fd„Z	 ddd„Zˆ xZS )Ú	ListRetryNTÚtimeoutsúlist[float]r   r   r   r   r   r   r   r   r   r   r   r   c                ó~   •— t          ¦   «                              t          |¦  «        |||||¬¦  «         || _        d S rK   )rM   r/   Úlenri   )r.   ri   r   r   r   r   r   rQ   s          €r*   r/   zListRetry.__init__{   sK   ø€ õ 	‰Œ×ÒÝ˜‘]”]ØØ!ØØ$;Ø'Að 	ñ 	
ô 	
ð 	
ð !ˆŒˆˆr,   r0   r   r1   r2   r3   c                ó   — | j         |         S )zTimeouts from a defined list.)ri   r7   s      r*   r8   zListRetry.get_timeoutŽ   s   € ð Œ}˜WÔ%Ð%r,   )NNNTN)ri   rj   r   r   r   r   r   r   r   r   r   r   r   r   r5   r9   rU   rW   s   @r*   rh   rh   z   sq   ø€ € € € € ð *.Ø7;Ø(,Ø(,ØJNð!ð !ð !ð !ð !ð !ð !ð, +/ð&ð &ð &ð &ð &ð &ð &ð &ð &r,   rh   c                  ó>   ‡ — e Zd Z	 	 	 	 	 	 	 	 ddˆ fd„Z	 ddd„Zˆ xZS ) ÚFibonacciRetryr   ç      ð?Nr`   Tr   r   Ú
multiplierr3   r   r   r   r   r   r   rE   r   r   r   r   r   r   c	                óŽ   •— t          ¦   «                              ||||||¬¦  «         || _        || _        d| _        d| _        d S )NrL   rp   )rM   r/   rE   rq   Ú	prev_stepÚcurrent_step)
r.   r   rq   r   r   r   rE   r   r   rQ   s
            €r*   r/   zFibonacciRetry.__init__˜   s^   ø€ õ 	‰Œ×ÒØØØ!ØØ$;Ø'Að 	ñ 	
ô 	
ð 	
ð 'ˆÔØ$ˆŒØˆŒØˆÔÐÐr,   r0   r1   r2   c                ó€   — | j         | j        z   }| j        | _         || _        t          | j        |z  | j        ¦  «        S r5   )rs   rt   rS   rq   rE   )r.   r0   r1   Únew_current_steps       r*   r8   zFibonacciRetry.get_timeout±   sA   € ð
  œ>¨DÔ,=Ñ=ÐØÔ*ˆŒØ,ˆÔå�4”?Ð%5Ñ5°tÔ7GÑHÔHÐHr,   )r   rp   NNNr`   TN)r   r   rq   r3   r   r   r   r   r   r   rE   r3   r   r   r   r   r   r   r5   r9   rU   rW   s   @r*   ro   ro   —   sƒ   ø€ € € € € ð ØØ)-Ø7;Ø(,Ø Ø(,ØJNð ð  ð  ð  ð  ð  ð  ð8 +/ð	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Ir,   ro   c                  óJ   ‡ — 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.r   rA   rB   rC   NTr   r   rD   r3   rE   rF   r   rG   r   rH   r   rI   Úrandom_interval_sizer   r   r   r   r   r   c                ó”   •— t          ¦   «                              ||||||||	|
¬¦	  «	         || _        || _        || _        || _        d S )N)	r   rD   rE   rF   r   r   r   r   r   )rM   r/   rN   rO   rP   Ú_random_interval_size)r.   r   rD   rE   rF   r   r   r   ry   r   r   rQ   s              €r*   r/   zJitterRetry.__init__À   sh   ø€ õ 	‰Œ×ÒØØ'Ø#ØØØ!ØØ$;Ø'Að 	ñ 
	
ô 
	
ð 
	
ð &3ˆÔØ#.ˆÔØ$ˆŒØ%9ˆÔ"Ð"Ð"r,   r0   r1   r2   c                ó�   •— t          ¦   «                              |¦  «        t          j        d| j        ¦  «        | j        z  z   }|S )Nr   )rM   r8   re   Úuniformr{   rP   )r.   r0   r1   rT   rQ   s       €r*   r8   zJitterRetry.get_timeoutÞ   s>   ø€ õ
 ™œ×,Ò,¨WÑ5Ô5½¼ÀqÈ$ÔJdÑ8eÔ8eÐimÔiuÑ8uÑuˆØˆr,   )
r   rA   rB   rC   NNNrC   TN)r   r   rD   r3   rE   r3   rF   r3   r   rG   r   rH   r   rI   ry   r3   r   r   r   r   r   r   r5   r9   )r:   r;   r<   Ú__doc__r/   r8   rV   rW   s   @r*   rx   rx   ½   s‘   ø€ € € € € Ø=Ð=ð Ø"Ø!ØØ$(Ø26Ø#'Ø&)Ø(,ØJNð:ð :ð :ð :ð :ð :ð :ðB +/ðð ð ð ð ð ð ð ð ð ð r,   rx   )rX   r   rY   r   r   r@   )Ú
__future__r   r=   re   Útypingr   r   r   r   Úwarningsr   Úaiohttpr	   r   ÚEvaluateResponseCallbackTyper   r@   r]   r_   rh   ro   rx   r&   r,   r*   ú<module>r„      s¹  ðØ "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð à "Ð "Ð "Ð "Ð "Ð "à'¨Ð(8¸)ÀD¼/Ð(IÔJÐ ð"ð "ð "ð "ð "ñ "ô "ð "ð@!/ð !/ð !/ð !/ð !/Ð'ñ !/ô !/ð !/ðH-ð -ð -ð -ð
!Xð !Xð !Xð !Xð !XÐ"ñ !Xô !Xð !XðH&ð &ð &ð &ð &Ð ñ &ô &ð &ð:#Ið #Ið #Ið #Ið #IÐ%ñ #Iô #Ið #IðL'ð 'ð 'ð 'ð 'Ð"ñ 'ô 'ð 'ð 'ð 'r,   