§
    >xÅj(0  ã                  óð  — d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	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 d dlmZ d	d
lmZmZ dZe
rd dlm Z  ej!        dk    rd dl	m"Z" nd dl#m"Z"  G d„ de"¦  «        Z$eeef         Z%ee%ee%         ee%df         f         Z&ee$ej'        f         Z(edee         f         Z)e G d„ d¦  «        ¦   «         Z* G d„ d¦  «        Z+dd„Z, G d„ d¦  «        Z-dS )é    )ÚannotationsN)Úabstractmethod)Ú	dataclass)ÚTYPE_CHECKINGÚAnyÚ	AwaitableÚCallableÚ	GeneratorÚListÚTupleÚUnion)ÚClientResponseÚClientSessionÚhdrs)ÚStrOrURL)ÚURLé   )ÚExponentialRetryÚRetryOptionsBaseiô  )ÚTracebackType)é   é   )ÚProtocolc                  óZ   — e Zd ZdZedd	„¦   «         Zedd
„¦   «         Zedd„¦   «         ZdS )Ú_Loggerz8_Logger defines which methods logger object should have.ÚmsgÚstrÚargsr   ÚkwargsÚreturnÚNonec                ó   — d S ©N© ©Úselfr   r   r   s       úEC:\Projects\Historical\venv\Lib\site-packages\aiohttp_retry/client.pyÚdebugz_Logger.debug'   ó   € àˆó    c                ó   — d S r#   r$   r%   s       r'   Úwarningz_Logger.warning+   r)   r*   c                ó   — d S r#   r$   r%   s       r'   Ú	exceptionz_Logger.exception/   r)   r*   N)r   r   r   r   r   r   r    r!   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r(   r,   r.   r$   r*   r'   r   r   $   sx   € € € € € ØBÐBàðð ð ñ „^ðð ðð ð ñ „^ðð ðð ð ñ „^ðð ð r*   r   .c                  óN   — e Zd ZU ded<   ded<   dZded<   dZded<   dZded	<   dS )
ÚRequestParamsr   ÚmethodÚ_RAW_URL_TYPEÚurlNzdict[str, Any] | NoneÚheadersÚtrace_request_ctxr   )r/   r0   r1   Ú__annotations__r8   r9   r   r$   r*   r'   r4   r4   <   s[   € € € € € € à€K€K�KØÐÐÑØ%)€GÐ)Ð)Ð)Ñ)Ø/3ÐÐ3Ð3Ð3Ñ3Ø$(€FÐ(Ð(Ð(Ñ(Ð(Ð(r*   r4   c                  óB   — e Zd Z	 d d!d„Zd"d„Zd#d„Zd$d„Zd#d„Zd%d„ZdS )&Ú_RequestContextFÚrequest_funcÚRequestFuncÚparams_listúlist[RequestParams]ÚloggerÚ_LoggerTypeÚretry_optionsr   Úraise_for_statusÚboolr    r!   c                ó„   — t          |¦  «        dk    sJ ‚|| _        || _        || _        || _        || _        d | _        d S )Nr   )ÚlenÚ_request_funcÚ_params_listÚ_loggerÚ_retry_optionsÚ_raise_for_statusÚ	_response)r&   r=   r?   rA   rC   rD   s         r'   Ú__init__z_RequestContext.__init__F   sO   € õ �;ÑÔ !Ò#Ð#Ð#Ð#à)ˆÔØ'ˆÔØˆŒØ+ˆÔØ!1ˆÔà04ˆŒˆˆr*   Úcurrent_attemptÚintÚresponser   c              ƒ  ó:  K  — || j         j        k    rdS |j                             ¦   «         | j         j        vrdS |j        t          k    r| j         j        rdS |j        | j         j        v rdS | j         j	        €dS | j          	                    |¦  «        ƒ d {V —†S )NTF)
rK   Úattemptsr5   ÚupperÚmethodsÚstatusÚ_MIN_SERVER_ERROR_STATUSÚretry_all_server_errorsÚstatusesÚevaluate_response_callback)r&   rO   rQ   s      r'   Ú_is_skip_retryz_RequestContext._is_skip_retryX   s°   è è € Ø˜dÔ1Ô:Ò:Ð:Ø�4àŒ?× Ò Ñ"Ô"¨$Ô*=Ô*EÐEÐEØ�4àŒ?Õ6Ò6Ð6¸4Ô;NÔ;fÐ6Ø�5àŒ?˜dÔ1Ô:Ð:Ð:Ø�5àÔÔ9ÐAØ�4àÔ(×CÒCÀHÑMÔMÐMÐMÐMÐMÐMÐMÐMr*   c              ƒ  ón  ‡K  — d}	 | j                              d|dz   › d| j        j        › �¦  «         |dz  }	 	 | j        |dz
           }n# t
          $ r | j        d         }Y nw xY w | j        |j        |j        f|j	        d|i|j
        pi ¥dœ|j        pi ¤Žƒ d {V —†}d	|j        › �}|                      ||¦  «        ƒ d {V —†}|r)| j        r|                     ¦   «          || _        | j        S | j                             ||¬
¦  «        }nq# t$          $ rdŠ|| j        j        k    r‚ t'          ˆfd„| j        j        D ¦   «         ¦  «        }|s‚ d‰›�}| j                             |d ¬
¦  «        }Y d Š‹nd Š‹ww xY w| j                              |¦  «         t+          j        |¦  «        ƒ d {V —† �Œ°)Nr   TzAttempt r   z out of éÿÿÿÿrO   )r8   r9   zRetrying after response code: )ÚattemptrQ   c              3  ó8   •K  — | ]}t          ‰|¦  «        V — Œd S r#   )Ú
isinstance)Ú.0ÚexcÚes     €r'   ú	<genexpr>z._RequestContext._do_request.<locals>.<genexpr>�   s-   øè è € Ð"`Ð"`¸#¥:¨a°Ñ#5Ô#5Ð"`Ð"`Ð"`Ð"`Ð"`Ð"`r*   zRetrying after exception: )rJ   r(   rK   rS   rI   Ú
IndexErrorrH   r5   r7   r8   r9   r   rV   r[   rL   rD   rM   Úget_timeoutÚ	ExceptionÚanyÚ
exceptionsÚasyncioÚsleep)	r&   rO   ÚparamsrQ   Údebug_messageÚ
skip_retryÚ
retry_waitÚis_exc_validrc   s	           @r'   Ú_do_requestz_RequestContext._do_requestj   s{  øè è € Øˆð+	,ØŒL×ÒÐc¨/¸!Ñ*;ÐcÐcÀTÔEXÔEaÐcÐcÑdÔdÐdà˜qÑ ˆOð$eð3Ø!Ô.¨ÀÑ/BÔC�F�FøÝ!ð 3ð 3ð 3Ø!Ô.¨rÔ2�F�F�Fð3øøøð 2D°Ô1CØ”MØ”Jð	2ð #œNà)¨?ð'à!Ô3Ð9°rð'ð		2ð 	2ð ”}Ð*¨ð	2ð 	2ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,�ð !SÀÄÐ RÐ R�Ø#'×#6Ò#6°ÈÑ#QÔ#QÐQÐQÐQÐQÐQÐQ�
àð *ØÔ-ð 4Ø ×1Ò1Ñ3Ô3Ð3Ø%-�D”NØœ>Ð)Ø!Ô0×<Ò<À_Ð_gÐ<ÑhÔh�
�
øåð 	eð 	eð 	eØ" dÔ&9Ô&BÒBÐBØå"Ð"`Ð"`Ð"`Ð"`ÀÔATÔA_Ð"`Ñ"`Ô"`Ñ`Ô`�Ø#ð Øà B¸QÐ BÐ B�Ø!Ô0×<Ò<À_Ð_cÐ<ÑdÔd�
�
�
�
�
�
øøøøð	eøøøð ŒL×Ò˜}Ñ-Ô-Ð-Ý”- 
Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ñW+	,s=   »A ÁD ÁA&Á#D Á%A&Á&BD Ã3D Ä
E>ÄAE9Å9E>ú$Generator[Any, None, ClientResponse]c                óN   — |                       ¦   «                              ¦   «         S r#   )Ú
__aenter__Ú	__await__©r&   s    r'   ru   z_RequestContext.__await__š   s   € Ø�ŠÑ Ô ×*Ò*Ñ,Ô,Ð,r*   c              ƒ  ó:   K  — |                       ¦   «         ƒ d {V —†S r#   )rq   rv   s    r'   rt   z_RequestContext.__aenter__�   s*   è è € Ø×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'r*   Úexc_typeútype[BaseException] | NoneÚexc_valúBaseException | NoneÚexc_tbúTracebackType | Nonec              ƒ  ój   K  — | j         �'| j         j        s| j                              ¦   «          d S d S d S r#   )rM   ÚclosedÚclose©r&   rx   rz   r|   s       r'   Ú	__aexit__z_RequestContext.__aexit__    sB   è è € ð Œ>Ð%¨d¬nÔ.CÐ%ØŒN× Ò Ñ"Ô"Ð"Ð"Ð"ð &Ð%Ð%Ð%r*   N)F)r=   r>   r?   r@   rA   rB   rC   r   rD   rE   r    r!   )rO   rP   rQ   r   r    rE   )r    r   )r    rr   ©rx   ry   rz   r{   r|   r}   r    r!   )	r/   r0   r1   rN   r[   rq   ru   rt   r‚   r$   r*   r'   r<   r<   E   s›   € € € € € ð "'ð5ð 5ð 5ð 5ð 5ð$Nð Nð Nð Nð$.,ð .,ð .,ð .,ð`-ð -ð -ð -ð(ð (ð (ð (ð#ð #ð #ð #ð #ð #r*   r<   r7   Ú	_URL_TYPEr    útuple[StrOrURL, ...]c                ó(  — t          | t          t          f¦  «        r| fS t          | t          ¦  «        rt	          | ¦  «        }n)t          | t          ¦  «        r| }nd}t          |¦  «        ‚t          |¦  «        dk    rd}t          |¦  «        ‚|S )Nz*you can pass url only by str or list/tupler   z>you can pass url by str or list/tuple with attempts count size)r`   r   ÚYARL_URLÚlistÚtupleÚ
ValueErrorrG   )r7   Úurlsr   s      r'   Ú_url_to_urlsrŒ   ª   s�   € Ý�#��X�Ñ'Ô'ð Øˆvˆå�#•tÑÔð Ý�S‰zŒzˆˆÝ	�C�Ñ	Ô	ð Øˆˆà:ˆÝ˜‰oŒoÐå
ˆ4�y„y�A‚~€~ØNˆÝ˜‰oŒoÐà€Kr*   c                  óò   — e Zd Z	 	 	 	 d1d2d„Zed3d„¦   «         Z	 	 d4d5d„Z	 	 d4d6d„Z	 	 d4d7d„Z	 	 d4d7d„Z		 	 d4d7d „Z
	 	 d4d7d!„Z	 	 d4d7d"„Z	 	 d4d7d#„Z	 	 d4d7d$„Zd8d%„Z	 	 d4d9d&„Z	 	 d4d5d'„Zd:d(„Zd;d/„Zd8d0„ZdS )<ÚRetryClientNFÚclient_sessionúClientSession | NonerA   ú_LoggerType | NonerC   úRetryOptionsBase | NonerD   rE   r   r   r   r    r!   c                óº   — |�|}d }nt          |i |¤Ž}d}|| _        || _        |pt          j        d¦  «        | _        |pt          ¦   «         | _        || _        d S )NFÚaiohttp_retry)	r   Ú_clientÚ_closedÚloggingÚ	getLoggerrJ   r   rK   rL   )	r&   r�   rA   rC   rD   r   r   Úclientr   s	            r'   rN   zRetryClient.__init__¾   st   € ð Ð%Ø#ˆFØˆFˆFå" DÐ3¨FÐ3Ð3ˆFØˆFàˆŒØˆŒà$*Ð$P­gÔ.?ÀÑ.PÔ.PˆŒØ0=Ð0SÕAQÑASÔASˆÔØ!1ˆÔÐÐr*   r   c                ó   — | j         S r#   )rK   rv   s    r'   rC   zRetryClient.retry_optionsÕ   s   € àÔ"Ð"r*   r?   r@   úbool | Noner<   c                ó2   — |                       |||¬¦  «        S )N©r?   rC   rD   )Ú_make_requests©r&   r?   rC   rD   s       r'   ÚrequestszRetryClient.requestsÙ   s*   € ð ×"Ò"Ø#Ø'Ø-ð #ñ 
ô 
ð 	
r*   r5   r   r7   r   c                ó&   —  | j         d||||dœ|¤ŽS ©N)r5   r7   rC   rD   r$   )Ú_make_request)r&   r5   r7   rC   rD   r   s         r'   ÚrequestzRetryClient.requestå   s;   € ð "ˆtÔ!ð 
ØØØ'Ø-ð	
ð 
ð
 ð
ð 
ð 	
r*   r„   c                ó:   —  | j         dt          j        |||dœ|¤ŽS r¢   )r£   r   ÚMETH_GET©r&   r7   rC   rD   r   s        r'   ÚgetzRetryClient.getõ   ó=   € ð "ˆtÔ!ð 
Ý”=ØØ'Ø-ð	
ð 
ð
 ð
ð 
ð 	
r*   c                ó:   —  | j         dt          j        |||dœ|¤ŽS r¢   )r£   r   ÚMETH_OPTIONSr§   s        r'   ÚoptionszRetryClient.options  s>   € ð "ˆtÔ!ð 
ÝÔ$ØØ'Ø-ð	
ð 
ð
 ð
ð 
ð 	
r*   c                ó:   —  | j         dt          j        |||dœ|¤ŽS r¢   )r£   r   Ú	METH_HEADr§   s        r'   ÚheadzRetryClient.head  ó=   € ð "ˆtÔ!ð 
Ý”>ØØ'Ø-ð	
ð 
ð
 ð
ð 
ð 	
r*   c                ó:   —  | j         dt          j        |||dœ|¤ŽS r¢   )r£   r   Ú	METH_POSTr§   s        r'   ÚpostzRetryClient.post"  r°   r*   c                ó:   —  | j         dt          j        |||dœ|¤ŽS r¢   )r£   r   ÚMETH_PUTr§   s        r'   ÚputzRetryClient.put1  r©   r*   c                ó:   —  | j         dt          j        |||dœ|¤ŽS r¢   )r£   r   Ú
METH_PATCHr§   s        r'   ÚpatchzRetryClient.patch@  s=   € ð "ˆtÔ!ð 
Ý”?ØØ'Ø-ð	
ð 
ð
 ð
ð 
ð 	
r*   c                ó:   —  | j         dt          j        |||dœ|¤ŽS r¢   )r£   r   ÚMETH_DELETEr§   s        r'   ÚdeletezRetryClient.deleteO  s>   € ð "ˆtÔ!ð 
ÝÔ#ØØ'Ø-ð	
ð 
ð
 ð
ð 
ð 	
r*   c              ƒ  óV   K  — | j                              ¦   «         ƒ d {V —† d| _        d S )NT)r•   r€   r–   rv   s    r'   r€   zRetryClient.close^  s7   è è € ØŒl× Ò Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"ØˆŒˆˆr*   c                ór   ‡‡— t          |¦  «        }ˆˆfd„|D ¦   «         }|                      |||¬¦  «        S )Nc                óˆ   •— g | ]>}t          ‰|‰                     d i ¦  «        ‰                     dd¦  «        ‰¬¦  «        ‘Œ?S )r8   r9   N)r5   r7   r8   r9   r   )r4   Úpop)ra   r7   r   r5   s     €€r'   ú
<listcomp>z-RetryClient._make_request.<locals>.<listcomp>k  sf   ø€ ð 	
ð 	
ð 	
ð õ ØØØŸ
š
 9¨bÑ1Ô1Ø"(§*¢*Ð-@À$Ñ"GÔ"GØðñ ô ð	
ð 	
ð 	
r*   r�   )rŒ   rž   )r&   r5   r7   rC   rD   r   Úurl_listr?   s    `   `  r'   r£   zRetryClient._make_requestb  sj   øø€ õ   Ñ$Ô$ˆð	
ð 	
ð 	
ð 	
ð 	
ð  ð	
ñ 	
ô 	
ˆð ×"Ò"Ø#Ø'Ø-ð #ñ 
ô 
ð 	
r*   c                ól   — |€| j         }|€| j        }t          | j        j        || j        ||¬¦  «        S )N)r=   r?   rA   rC   rD   )rK   rL   r<   r•   r¤   rJ   rŸ   s       r'   rž   zRetryClient._make_requests|  sN   € ð Ð Ø Ô/ˆMØÐ#Ø#Ô5ÐÝØœÔ-Ø#Ø”<Ø'Ø-ð
ñ 
ô 
ð 	
r*   c              ƒ  ó
   K  — | S r#   r$   rv   s    r'   rt   zRetryClient.__aenter__Ž  s   è è € Øˆr*   rx   ry   rz   r{   r|   r}   c              ƒ  ó>   K  — |                       ¦   «         ƒ d {V —† d S r#   )r€   r�   s       r'   r‚   zRetryClient.__aexit__‘  s.   è è € ð �jŠj‰lŒlÐÐÐÐÐÐÐÐÐr*   c                ór   — t          | dd ¦  «        €d S | j        s| j                             d¦  «         d S d S )Nr–   z#Aiohttp retry client was not closed)Úgetattrr–   rJ   r,   rv   s    r'   Ú__del__zRetryClient.__del__™  sM   € Ý�4˜ DÑ)Ô)Ð1àˆFàŒ|ð 	HØŒL× Ò Ð!FÑGÔGÐGÐGÐGð	Hð 	Hr*   )NNNF)r�   r�   rA   r‘   rC   r’   rD   rE   r   r   r   r   r    r!   )r    r   )NN)r?   r@   rC   r’   rD   r›   r    r<   )r5   r   r7   r   rC   r’   rD   r›   r   r   r    r<   )
r7   r„   rC   r’   rD   r›   r   r   r    r<   )r    r!   )r5   r   r7   r„   rC   r’   rD   r›   r   r   r    r<   )r    rŽ   rƒ   )r/   r0   r1   rN   ÚpropertyrC   r    r¤   r¨   r¬   r¯   r³   r¶   r¹   r¼   r€   r£   rž   rt   r‚   rÈ   r$   r*   r'   rŽ   rŽ   ½   s  € € € € € ð 04Ø%)Ø15Ø!&ð2ð 2ð 2ð 2ð 2ð. ð#ð #ð #ñ „Xð#ð 26Ø(,ð	

ð 

ð 

ð 

ð 

ð  26Ø(,ð
ð 
ð 
ð 
ð 
ð& 26Ø(,ð	
ð 
ð 
ð 
ð 
ð$ 26Ø(,ð	
ð 
ð 
ð 
ð 
ð$ 26Ø(,ð	
ð 
ð 
ð 
ð 
ð$ 26Ø(,ð	
ð 
ð 
ð 
ð 
ð$ 26Ø(,ð	
ð 
ð 
ð 
ð 
ð$ 26Ø(,ð	
ð 
ð 
ð 
ð 
ð$ 26Ø(,ð	
ð 
ð 
ð 
ð 
ðð ð ð ð 26Ø(,ð
ð 
ð 
ð 
ð 
ð: 26Ø(,ð	
ð 
ð 
ð 
ð 
ð$ð ð ð ðð ð ð ðHð Hð Hð Hð Hð Hr*   rŽ   )r7   r„   r    r…   ).Ú
__future__r   rj   r—   ÚsysÚabcr   Údataclassesr   Útypingr   r   r   r	   r
   r   r   r   Úaiohttpr   r   r   Úaiohttp.typedefsr   Úyarlr   r‡   rC   r   r   rW   Útypesr   Úversion_infor   Útyping_extensionsr   r6   r„   ÚLoggerrB   r>   r4   r<   rŒ   rŽ   r$   r*   r'   ú<module>rÖ      sª  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 8Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø %Ð %Ð %Ð %Ð %Ð %Ø  Ð  Ð  Ð  Ð  Ð  à =Ð =Ð =Ð =Ð =Ð =Ð =Ð =àÐ àð $Ø#Ð#Ð#Ð#Ð#Ð#àÔ�vÒÐØÐÐÐÐÐÐà*Ð*Ð*Ð*Ð*Ð*ðð ð ð ð ˆhñ ô ð ð" �h Ð(Ô)€Ø�-  mÔ!4°e¸MÈ3Ð<NÔ6OÐOÔP€	Ø�G˜Wœ^Ð+Ô,€à�s˜I nÔ5Ð5Ô6€ð ð)ð )ð )ð )ð )ñ )ô )ñ „ð)ðb#ð b#ð b#ð b#ð b#ñ b#ô b#ð b#ðJð ð ð ð&bHð bHð bHð bHð bHñ bHô bHð bHð bHð bHr*   