§
    >xÅj’
  ã                   ó’  — d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlZd dlmZ dd	lmZmZ  e j        e¦  «        Zd
Z ed¬¦  «        Zededed         fd„¦   «         Z ed¦  «        Z ed¦  «        Zd
 ed¬¦  «        fdededeeeeeddf         f         geeeeddf         f         f         fd„ZdS )é    N)ÚCallableÚ	Generator)Úcontextmanager)Ú	timedelta)Úwraps)ÚTypeVar)Ú	ParamSpecé   )ÚStreamLogErrorÚTooManyRetriesErroré   é   )ÚminutesÚattempt_numberÚreturn)NNNc              #   óò  ‡ K  — d	ˆ fd„}	 d V — d S # t           j        t           j        t           j        f$ r0}t                               d|¦  «          |¦   «          Y d }~d S d }~wt           j        $ r‚}|j        j        dk    r1t                               d|j        j        |¦  «          |¦   «          n6t          d|j        j        › d|j        j
        › �|j        j        ¬¦  «        |‚Y d }~d S d }~ww xY w)
Nr   c                  óŽ   •— t          d‰z  d¦  «        } t                               d| ‰¦  «         t          j        | ¦  «         d S )Né   é   zRetrying in %ds (attempt %d))ÚminÚloggerÚdebugÚtimeÚsleep)Úbackoff_secondsr   s    €úMC:\Projects\Historical\venv\Lib\site-packages\fastapi_cloud_cli/api/_retry.pyÚ_backoffzattempt.<locals>._backoff   sN   ø€ Ý˜a Ñ/°Ñ4Ô4ˆÝ�ŠØ*ØØñ	
ô 	
ð 	
õ
 	Œ
�?Ñ#Ô#Ð#Ð#Ð#ó    zNetwork error (will retry): %siô  z Server error %d (will retry): %szHTTP z: )Ústatus_code)r   N)ÚhttpxÚTimeoutExceptionÚNetworkErrorÚRemoteProtocolErrorr   r   ÚHTTPStatusErrorÚresponser   r   Útext)r   r   Úerrors   `  r   Úattemptr(      sH  øè è € ð$ð $ð $ð $ð $ð $ðØˆˆˆˆˆøõ 	ÔÝÔÝÔ!ðð ð ð õ
 	�ŠÐ5°uÑ=Ô=Ð=àˆ‰
Œ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
øøøøåÔ ð ð ð ØŒ>Ô%¨Ò,Ð,Ý�LŠLØ2Ø”Ô*Øñô ð ð
 ˆH‰JŒJˆJˆJõ !ØK˜œÔ2ÐKÐK°e´nÔ6IÐKÐKØ!œNÔ6ðñ ô ð ðð	 ˆJˆJˆJˆJˆJøøøøðøøøs!   ‹ ‘&C6·%A"Á"C6Á4A7C1Ã1C6ÚPÚTÚtotal_attemptsÚtimeoutc           	      ó´   ‡ ‡— dt           t          t          t          d d f         f         dt           t          t          t          d d f         f         fˆˆ fd„}|S )NÚfuncr   c           
      óž   •‡ — t          ‰ ¦  «        dt          j        dt          j        dt          t
          d d f         fˆ ˆˆfd„¦   «         }|S )NÚargsÚkwargsr   c               ?   óŒ  •K  — t          j        ¦   «         }t          ‰¦  «        D ]Œ}t          j        ¦   «         |z
  ‰                     ¦   «         k    r&t	          d‰                     ¦   «         d›d�¦  «        ‚t          |¦  «        5   ‰| i |¤ŽE d {V —† 	 d d d ¦  «          d S # 1 swxY w Y   Œ�t          d‰› d�¦  «        ‚)NzLog streaming timed out after z.0fÚszFailed after z	 attempts)r   Ú	monotonicÚrangeÚtotal_secondsÚTimeoutErrorr(   r   )r0   r1   Ústartr   r.   r,   r+   s       €€€r   Úwrapperz,attempts.<locals>.decorator.<locals>.wrapperH   s8  øè è € å”NÑ$Ô$ˆEå"'¨Ñ"7Ô"7ð 	ð 	�Ý”>Ñ#Ô# eÑ+¨g×.CÒ.CÑ.EÔ.EÒEÐEÝ&ØW¸×9NÒ9NÑ9PÔ9PÐWÐWÐWÐWñô ð õ ˜^Ñ,Ô,ð ð Ø#˜t TÐ4¨VÐ4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4àðð ð ñ ô ð ð ð ð ð ð ð ð øøøð ð ð ð ð õ
 &Ð&O°nÐ&OÐ&OÐ&OÑPÔPÐPs   Â	B'Â'B+	Â.B+	)r   r)   r0   r1   r   r*   )r.   r9   r,   r+   s   ` €€r   Ú	decoratorzattempts.<locals>.decoratorE   st   øø€ õ 
ˆt‰Œð	Q�1œ6ð 	Q­Q¬Xð 	Q½)ÅAÀtÈTÀMÔ:Rð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qñ 
Œð	Qð  ˆr   )r   r)   r   r*   )r+   r,   r:   s   `` r   Úattemptsr;   @   si   øø€ ð
Ý•q�)¥A t¨T MÔ2Ð2Ô3ðå	•!•Y�q $¨˜}Ô-Ð-Ô	.ðð ð ð ð ð ð ð, Ðr   )Úloggingr   Úcollections.abcr   r   Ú
contextlibr   Údatetimer   Ú	functoolsr   Útypingr   r    Útyping_extensionsr	   Ú_errorsr   r   Ú	getLoggerÚ__name__r   ÚSTREAM_LOGS_MAX_RETRIESÚSTREAM_LOGS_TIMEOUTÚintr(   r)   r*   r;   © r   r   ú<module>rJ      s¯  ðØ €€€Ø €€€Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8à	ˆÔ	˜8Ñ	$Ô	$€àÐ Ø�i¨Ð*Ñ*Ô*Ð ð ð$˜Cð $ IÐ.>Ô$?ð $ð $ð $ñ „ð$ðN €Iˆc�N„N€Ø€GˆC�L„L€ð °)°)ÀAÐ2FÑ2FÔ2Fðð ØðØ&/ðàØˆa�˜1˜d D˜=Ô)Ð)Ô*Ð+¨X°a¸À1ÀdÈDÀ=Ô9QÐ6QÔ-RÐRôðð ð ð ð ð r   