
    g6#                        S SK Jr  S SKrS SKrS SKJrJrJrJr  S SK	J
r
  S SKJr  \\/\\   4   r " S S5      r " S S	\5      rSS
 jr " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    )annotationsN)Any	AwaitableCallableIterable)warn)ClientResponsec                  t    \ rS rSr      S             SS jjr\R                  SS	S jj5       rSrg)
RetryOptionsBase   Nc                    Xl         Uc
  [        5       nX l        Uc
  [        5       nX0l        Uc  1 SknU Vs1 s H  owR	                  5       iM     snU l        XPl        X`l        g s  snf )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           c/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/aiohttp_retry/retry_options.py__init__RetryOptionsBase.__init__   sc     &uH'/J5??fGDK&LG&||~G&L'>$*D' 'Ms   A&c                    [         eN)NotImplementedErrorr   attemptresponses      r!   get_timeoutRetryOptionsBase.get_timeout(   s    !!    )r   r   r   r   r   r   )   NNNTN)r   intr   Iterable[int] | Noner    Iterable[type[Exception]] | Noner   Iterable[str] | Noner   boolr   #EvaluateResponseCallbackType | NonereturnNoner%   r(   r.   r)   zClientResponse | Noner4   float)	__name__
__module____qualname____firstlineno__r"   abcabstractmethodr*   __static_attributes__ r,   r!   r   r      s     )-7;(,(,JNEE 'E 5	E
 &E "&E %HE 
E4 	" "r,   r   c                     ^  \ rS rSr         S                   SU 4S jjjr S     SS jjrSrU =r$ )	ExponentialRetry-   c
           	     N   > [         T
U ]  UUUUUU	S9  X l        X0l        X@l        g 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"   ExponentialRetry.__init__.   s<     	!$;'A 	 	
 &3#.$r,   c                d    U R                   U R                  U-  -  n[        X0R                  5      $ )z(Return timeout with exponential backoff.)rG   rI   minrH   )r   r(   r)   timeouts       r!   r*   ExponentialRetry.get_timeoutG   s.     %%w)>?7--..r,   )rI   rH   rG   )	r-   皙?      >@       @NNNTN)r   r.   rJ   r7   rK   r7   rL   r7   r   set[int] | Noner   set[type[Exception]] | Noner   set[str] | Noner   r2   r   r3   r4   r5   r%   r6   r8   r9   r:   r;   r"   r*   r>   __classcell__rM   s   @r!   rA   rA   -   s     "!$(26#'(,JN%% % 	%
 % "% 0% !% "&% %H% 
% %8 +/// (/ 
	/ /r,   rA   c                 ,    [        SSS9  [        U 0 UD6$ )Nz0RetryOptions is deprecated, use ExponentialRetry   )
stacklevel)r   rA   )argskwargss     r!   RetryOptionsra   Q   s    	;JT,V,,r,   c            	         ^  \ rS rSrSSSSSS\R                  SS4	                   S
U 4S jjjr S     SS jjrS	rU =r$ )RandomRetryV   r-   NrS         @Tc
           	     Z   > [         T
U ]  UUUUUU	S9  Xl        XPl        X`l        Xpl        g rD   )rF   r"   r   min_timeoutrK   random)r   r   r   r   r   rg   rK   random_funcr   r   rM   s             r!   r"   RandomRetry.__init__W   sA     	!$;'A 	 	
 &"-"-!r,   c                p    U R                   U R                  5       U R                  U R                   -
  -  -   $ )zGenerate random timeouts.)rg   rh   rK   r'   s      r!   r*   RandomRetry.get_timeoutq   s1     $++-43C3CdFVFV3V"WWWr,   )r   rK   rg   rh   )r   r.   r   r/   r   r0   r   r1   rg   r7   rK   r7   ri   zCallable[[], float]r   r2   r   r3   r4   r5   r%   r6   )	r8   r9   r:   r;   rh   r"   r*   r>   rZ   r[   s   @r!   rc   rc   V   s     )-7;(,  +1==(,JN"" '" 5	"
 &" " " )" "&" %H" 
" ": +/XX (X 
	X Xr,   rc   c                  n   ^  \ rS rSr     S             SU 4S jjjr S     SS jjrSrU =r$ )		ListRetryz   c           	     H   > [         TU ]  [        U5      UUUUUS9  Xl        g rD   )rF   r"   lentimeouts)r   rr   r   r   r   r   r   rM   s          r!   r"   ListRetry.__init__{   s4     	]!$;'A 	 	
 !r,   c                     U R                   U   $ )zTimeouts from a defined list.rr   r'   s      r!   r*   ListRetry.get_timeout   s     }}W%%r,   ru   )NNNTN)rr   zlist[float]r   r/   r   r0   r   r1   r   r2   r   r3   r4   r5   r%   r6   rY   r[   s   @r!   rn   rn   z   s     *.7;(,(,JN!! '! 5	!
 &! "&! %H! 
! !, +/&& (& 
	& &r,   rn   c                  |   ^  \ rS rSr        S                 SU 4S jjjr S     SS jjrSrU =r$ )	FibonacciRetry   c	           	     ^   > [         T	U ]  UUUUUUS9  X`l        X l        SU l        SU l        g )NrE         ?)rF   r"   rK   
multiplier	prev_stepcurrent_step)
r   r   r|   r   r   r   rK   r   r   rM   s
            r!   r"   FibonacciRetry.__init__   sE     	!$;'A 	 	
 '$r,   c                    U R                   U R                  -   nU R                  U l         X0l        [        U R                  U-  U R                  5      $ r%   )r}   r~   rP   r|   rK   )r   r(   r)   new_current_steps       r!   r*   FibonacciRetry.get_timeout   sI    
  >>D,=,==**,4??%55t7G7GHHr,   )r~   rK   r|   r}   )r-   r{   NNNre   TN)r   r.   r|   r7   r   r/   r   r0   r   r1   rK   r7   r   r2   r   r3   r4   r5   r%   r6   rY   r[   s   @r!   rx   rx      s     )-7;(, (,JN     '	 
 5  &    "&  %H  
   8 +/	I	I (	I 
		I 	Ir,   rx   c                     ^  \ rS rSrSr          S                     SU 4S jjjr S     S	U 4S jjjrSrU =r$ )
JitterRetry   z3https://github.com/inyutin/aiohttp_retry/issues/44.c                `   > [         TU ]  UUUUUUUU	U
S9	  X l        X0l        X@l        Xl        g )N)	r   rJ   rK   rL   r   r   r   r   r   )rF   r"   rG   rH   rI   _random_interval_size)r   r   rJ   rK   rL   r   r   r   random_interval_sizer   r   rM   s              r!   r"   JitterRetry.__init__   sK     	'#!$;'A 	 
	
 &3#.$%9"r,   c                   > [         TU ]  U5      [        R                  " SU R                  5      U R
                  -  -   nU$ )Nr   )rF   r*   rh   uniformr   rI   )r   r(   r)   rQ   rM   s       r!   r*   JitterRetry.get_timeout   s;    
 ,W5q$JdJd8eimiuiu8uur,   )rI   rH   r   rG   )
r-   rS   rT   rU   NNNrU   TN)r   r.   rJ   r7   rK   r7   rL   r7   r   rV   r   rW   r   rX   r   r7   r   r2   r   r3   r4   r5   r%   r6   )	r8   r9   r:   r;   __doc__r"   r*   r>   rZ   r[   s   @r!   r   r      s    = "!$(26#'&)(,JN:: : 	:
 : ": 0: !: $: "&: %H: 
: :B +/ ( 
	 r,   r   )r_   r   r`   r   r4   rA   )
__future__r   r<   rh   typingr   r   r   r   warningsr   aiohttpr	   r2   EvaluateResponseCallbackTyper   rA   ra   rc   rn   rx   r   r?   r,   r!   <module>r      s    " 
  5 5  "'(8)D/(IJ " "@!/' !/H-
!X" !XH&  &:#I% #IL'" 'r,   