Ë
    [üàg(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jB                  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jN                  f   Z(edee   f   Z)e G d„ d«      «       Z* G d„ d«      Z+dd„Z, G d„ d«      Z-y)é    )ÚannotationsN)Úabstractmethod)Ú	dataclass)ÚTYPE_CHECKINGÚAnyÚ	AwaitableÚCallableÚ	GeneratorÚListÚTupleÚUnion)ÚClientResponseÚClientSessionÚhdrs)ÚStrOrURL)ÚURLé   )ÚExponentialRetryÚRetryOptionsBaseiô  )ÚTracebackType)é   é   )ÚProtocolc                  óF   — e Zd ZdZedd„«       Zedd„«       Zedd„«       Zy)Ú_Loggerz8_Logger defines which methods logger object should have.c                 ó   — y ©N© ©ÚselfÚmsgÚargsÚkwargss       úR/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/aiohttp_retry/client.pyÚdebugz_Logger.debug'   ó   € àó    c                 ó   — y r   r   r   s       r$   Úwarningz_Logger.warning+   r&   r'   c                 ó   — y r   r   r   s       r$   Ú	exceptionz_Logger.exception/   r&   r'   N)r!   Ústrr"   r   r#   r   ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r%   r)   r+   r   r'   r$   r   r   $   s?   „ ÙBàòó ðð òó ðð òó ñr'   r   .c                  óL   — 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	<   y)
Ú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Ø	ÓØ%)€GÐ"Ó)Ø/3ÐÐ,Ó3Ø$(€FÐ!Ô(r'   r4   c                  óf   — e Zd Z	 d	 	 	 	 	 	 	 	 	 	 	 d	d„Zd
d„Zdd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)Ú_RequestContextc                óx   — t        |«      dkD  sJ ‚|| _        || _        || _        || _        || _        d | _        y )Nr   )ÚlenÚ_request_funcÚ_params_listÚ_loggerÚ_retry_optionsÚ_raise_for_statusÚ	_response)r    Úrequest_funcÚparams_listÚloggerÚretry_optionsÚraise_for_statuss         r$   Ú__init__z_RequestContext.__init__F   sE   € ô �;Ó !Ò#Ð#Ð#à)ˆÔØ'ˆÔØˆŒØ+ˆÔØ!1ˆÔà04ˆ�r'   c              ƒ  ó²  K  — || j                   j                  k(  ry|j                  j                  «       | j                   j                  vry|j
                  t        k\  r| j                   j                  ry|j
                  | j                   j                  v ry| j                   j                  €y| j                   j                  |«      ƒ d {  –—† S 7 Œ­w)NTF)
rB   Úattemptsr5   ÚupperÚmethodsÚstatusÚ_MIN_SERVER_ERROR_STATUSÚretry_all_server_errorsÚstatusesÚevaluate_response_callback)r    Úcurrent_attemptÚresponses      r$   Ú_is_skip_retryz_RequestContext._is_skip_retryX   s¬   è ø€ Ø˜d×1Ñ1×:Ñ:Ò:Øà�?‰?× Ñ Ó"¨$×*=Ñ*=×*EÑ*EÑEØà�?‰?Ô6Ò6¸4×;NÑ;N×;fÒ;fØà�?‰?˜d×1Ñ1×:Ñ:Ñ:Øà×Ñ×9Ñ9ÐAØà×(Ñ(×CÑCÀHÓM×MÐMÐMús   ‚CCÃCÃCc              ƒ  ó  ‡K  — d}	 | j                   j                  d|dz   › d| j                  j                  › �«       |dz  }	 	 | j                  |dz
     } | j                  |j                  |j                  f|j                  d|i|j                  xs i ¥dœ|j                  xs i ¤Žƒ d {  –—† }d|j                  › �}| j                  ||«      ƒ d {  –—† }|r/| j                  r|j                  «        || _        | j                   S | j                  j#                  ||¬	«      }| j                   j                  |«       t+        j,                  |«      ƒ d {  –—†  �Œ_# t
        $ r | j                  d   }Y �Œ)w xY w7 ŒÔ7 Œ­# t$        $ rqŠ|| j                  j                  k\  r‚ t'        ˆfd
„| j                  j(                  D «       «      }|s‚ d‰›�}| j                  j#                  |d ¬	«      }Y d Š‹ŒÒd Š‹ww xY w7 Œ¦­w)Nr   zAttempt r   z out of éÿÿÿÿrT   )r8   r9   zRetrying after response code: )ÚattemptrU   c              3  ó6   •K  — | ]  }t        ‰|«      –— Œ y ­wr   )Ú
isinstance)Ú.0ÚexcÚes     €r$   ú	<genexpr>z._RequestContext._do_request.<locals>.<genexpr>�   s   øè ø€ Ò"`¸#¤:¨a°×#5Ñ"`ùs   ƒzRetrying after exception: )rA   r%   rB   rL   r@   Ú
IndexErrorr?   r5   r7   r8   r9   r#   rO   rV   rC   rI   rD   Úget_timeoutÚ	ExceptionÚanyÚ
exceptionsÚasyncioÚsleep)	r    rT   ÚparamsrU   Údebug_messageÚ
skip_retryÚ
retry_waitÚis_exc_validr^   s	           @r$   Ú_do_requestz_RequestContext._do_requestj   s  øè ø€ ØˆàØ�L‰L×Ñ ¨/¸!Ñ*;Ð)<¸HÀT×EXÑEX×EaÑEaÐDbÐcÔdà˜qÑ ˆOð$eð3Ø!×.Ñ.¨ÀÑ/BÑC�Fð 2D°×1CÑ1CØ—M‘MØ—J‘Jð	2ð #ŸN™Nà)¨?ð'à!×3Ñ3Ò9°rð'ñ		2ð —}‘}Ò*¨ñ	2÷ 	,�ð #AÀÇÁÐ@QÐ R�Ø#'×#6Ñ#6°ÈÓ#Q×Q�
áØ×-Ò-Ø ×1Ñ1Ô3Ø%-�D”NØŸ>™>Ð)Ø!×0Ñ0×<Ñ<À_Ð_gÐ<Óh�
ð �L‰L×Ñ˜}Ô-Ü—-‘- 
Ó+×+Ð+ñW øô "ò 3Ø!×.Ñ.¨rÑ2“Fð3úð	,øð Rùô ò 	eØ" d×&9Ñ&9×&BÑ&BÒBØä"Ó"`À×ATÑAT×A_ÑA_Ô"`Ó`�Ù#Øà"<¸Q¸EÐ B�Ø!×0Ñ0×<Ñ<À_Ð_cÐ<Ód•
ûð	eúð ,ús†   ƒAHÁE& ÁAF	 Â0FÂ1(F	 ÃFÃ4F	 ÄHÄF	 Ä,3HÅHÅ HÅ&FÅ>F	 ÆFÆF	 ÆF	 Æ		HÆA'G>Ç9HÇ>HÈHc                ó>   — | j                  «       j                  «       S r   )Ú
__aenter__Ú	__await__©r    s    r$   ro   z_RequestContext.__await__š   s   € Ø�‰Ó ×*Ñ*Ó,Ð,r'   c              ƒ  ó>   K  — | j                  «       ƒ d {  –—† S 7 Œ­wr   )rl   rp   s    r$   rn   z_RequestContext.__aenter__�   s   è ø€ Ø×%Ñ%Ó'×'Ð'Ð'ús   ‚–—c              ƒ  óˆ   K  — | j                   �2| j                   j                  s| j                   j                  «        y y y ­wr   )rD   ÚclosedÚclose©r    Úexc_typeÚexc_valÚexc_tbs       r$   Ú	__aexit__z_RequestContext.__aexit__    s7   è ø€ ð �>‰>Ð%¨d¯n©n×.CÒ.CØ�N‰N× Ñ Õ"ð /DÐ%ùs   ‚A AN)F)rE   ÚRequestFuncrF   úlist[RequestParams]rG   Ú_LoggerTyperH   r   rI   Úboolr-   r.   )rT   ÚintrU   r   r-   r}   )r-   r   )r-   z$Generator[Any, None, ClientResponse]©rv   ztype[BaseException] | Nonerw   zBaseException | Nonerx   zTracebackType | Noner-   r.   )	r/   r0   r1   rJ   rV   rl   ro   rn   ry   r   r'   r$   r<   r<   E   s‡   „ ð "'ð5à!ð5ð )ð5ð ð	5ð
 (ð5ð ð5ð 
ó5ó$Nó$.,ó`-ó(ð#à,ð#ð &ð#ð %ð	#ð
 
ô#r'   r<   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Ú
ValueErrorr>   )r7   Úurlsr!   s      r$   Ú_url_to_urlsr†   ª   sg   € Ü�#œœX�Ô'Øˆvˆä�#”tÔÜ�S‹z‰Ü	�CœÔ	Ø‰à:ˆÜ˜‹oÐä
ˆ4ƒy�A‚~ØNˆÜ˜‹oÐà€Kr'   c                  óÚ  — e Zd Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zedd„«       Z	 	 d	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 	 	 	 	 dd„Z		 	 d	 	 	 	 	 	 	 	 	 dd„Z
	 	 d	 	 	 	 	 	 	 	 	 dd	„Z	 	 d	 	 	 	 	 	 	 	 	 dd
„Z	 	 d	 	 	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zdd„Zy)ÚRetryClientNc                ó¸   — |�|}d }nt        |i |¤Ž}d}|| _        || _        |xs t        j                  d«      | _        |xs
 t        «       | _        || _        y )NFÚaiohttp_retry)	r   Ú_clientÚ_closedÚloggingÚ	getLoggerrA   r   rB   rC   )	r    Úclient_sessionrG   rH   rI   r"   r#   Úclientrs   s	            r$   rJ   zRetryClient.__init__¾   sf   € ð Ð%Ø#ˆFØ‰Fä" DÐ3¨FÑ3ˆFØˆFàˆŒØˆŒà$*Ò$P¬g×.?Ñ.?ÀÓ.PˆŒØ0=Ò0SÔAQÓASˆÔØ!1ˆÕr'   c                ó   — | j                   S r   )rB   rp   s    r$   rH   zRetryClient.retry_optionsÕ   s   € à×"Ñ"Ð"r'   c                ó*   — | j                  |||¬«      S )N©rF   rH   rI   )Ú_make_requests©r    rF   rH   rI   s       r$   ÚrequestszRetryClient.requestsÙ   s%   € ð ×"Ñ"Ø#Ø'Ø-ð #ó 
ð 	
r'   c                ó0   —  | j                   d||||dœ|¤ŽS ©N)r5   r7   rH   rI   r   )Ú_make_request)r    r5   r7   rH   rI   r#   s         r$   ÚrequestzRetryClient.requestå   s4   € ð "ˆt×!Ñ!ð 
ØØØ'Ø-ñ	
ð
 ñ
ð 	
r'   c                óL   —  | j                   dt        j                  |||dœ|¤ŽS r˜   )r™   r   ÚMETH_GET©r    r7   rH   rI   r#   s        r$   ÚgetzRetryClient.getõ   ó8   € ð "ˆt×!Ñ!ð 
Ü—=‘=ØØ'Ø-ñ	
ð
 ñ
ð 	
r'   c                óL   —  | j                   dt        j                  |||dœ|¤ŽS r˜   )r™   r   ÚMETH_OPTIONSr�   s        r$   ÚoptionszRetryClient.options  s:   € ð "ˆt×!Ñ!ð 
Ü×$Ñ$ØØ'Ø-ñ	
ð
 ñ
ð 	
r'   c                óL   —  | j                   dt        j                  |||dœ|¤ŽS r˜   )r™   r   Ú	METH_HEADr�   s        r$   ÚheadzRetryClient.head  ó8   € ð "ˆt×!Ñ!ð 
Ü—>‘>ØØ'Ø-ñ	
ð
 ñ
ð 	
r'   c                óL   —  | j                   dt        j                  |||dœ|¤ŽS r˜   )r™   r   Ú	METH_POSTr�   s        r$   ÚpostzRetryClient.post"  r¦   r'   c                óL   —  | j                   dt        j                  |||dœ|¤ŽS r˜   )r™   r   ÚMETH_PUTr�   s        r$   ÚputzRetryClient.put1  rŸ   r'   c                óL   —  | j                   dt        j                  |||dœ|¤ŽS r˜   )r™   r   Ú
METH_PATCHr�   s        r$   ÚpatchzRetryClient.patch@  s8   € ð "ˆt×!Ñ!ð 
Ü—?‘?ØØ'Ø-ñ	
ð
 ñ
ð 	
r'   c                óL   —  | j                   dt        j                  |||dœ|¤ŽS r˜   )r™   r   ÚMETH_DELETEr�   s        r$   ÚdeletezRetryClient.deleteO  s:   € ð "ˆt×!Ñ!ð 
Ü×#Ñ#ØØ'Ø-ñ	
ð
 ñ
ð 	
r'   c              ƒ  ób   K  — | j                   j                  «       ƒ d {  –—†  d| _        y 7 Œ­w)NT)r‹   rt   rŒ   rp   s    r$   rt   zRetryClient.close^  s(   è ø€ Ø�l‰l× Ñ Ó"×"Ð"Øˆ�ð 	#ús   ‚/ -¡/c                óÄ   — t        |«      }|D �cg c]2  }t        |||j                  di «      |j                  dd «      |¬«      ‘Œ4 }}| j                  |||¬«      S c c}w )Nr8   r9   )r5   r7   r8   r9   r#   r“   )r†   r4   Úpopr”   )r    r5   r7   rH   rI   r#   Úurl_listrF   s           r$   r™   zRetryClient._make_requestb  s‚   € ô   Ó$ˆð  ö	
ð ô ØØØŸ
™
 9¨bÓ1Ø"(§*¡*Ð-@À$Ó"GØöð	
ˆð 	
ð ×"Ñ"Ø#Ø'Ø-ð #ó 
ð 	
ùò	
s   �7Ac                ó–   — |€| j                   }|€| j                  }t        | j                  j                  || j
                  ||¬«      S )N)rE   rF   rG   rH   rI   )rB   rC   r<   r‹   rš   rA   r•   s       r$   r”   zRetryClient._make_requests|  sQ   € ð Ð Ø ×/Ñ/ˆMØÐ#Ø#×5Ñ5ÐÜØŸ™×-Ñ-Ø#Ø—<‘<Ø'Ø-ô
ð 	
r'   c              ƒ  ó   K  — | S ­wr   r   rp   s    r$   rn   zRetryClient.__aenter__Ž  s   è ø€ Øˆùs   ‚c              ƒ  ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wr   )rt   ru   s       r$   ry   zRetryClient.__aexit__‘  s   è ø€ ð �j‰j‹l×Òús   ‚–—c                óp   — t        | dd «      €y | j                  s| j                  j                  d«       y y )NrŒ   z#Aiohttp retry client was not closed)ÚgetattrrŒ   rA   r)   rp   s    r$   Ú__del__zRetryClient.__del__™  s3   € Ü�4˜ DÓ)Ð1àà�|Š|Ø�L‰L× Ñ Ð!FÕGð r'   )NNNF)r�   zClientSession | NonerG   z_LoggerType | NonerH   úRetryOptionsBase | NonerI   r}   r"   r   r#   r   r-   r.   )r-   r   )NN)rF   r{   rH   r½   rI   úbool | Noner-   r<   )r5   r,   r7   r   rH   r½   rI   r¾   r#   r   r-   r<   )
r7   Ú	_URL_TYPErH   r½   rI   r¾   r#   r   r-   r<   )r-   r.   )r5   r,   r7   r¿   rH   r½   rI   r¾   r#   r   r-   r<   )r-   rˆ   r   )r/   r0   r1   rJ   ÚpropertyrH   r–   rš   rž   r¢   r¥   r©   r¬   r¯   r²   rt   r™   r”   rn   ry   r¼   r   r'   r$   rˆ   rˆ   ½   sG  „ ð 04Ø%)Ø15Ø!&ð2à,ð2ð #ð2ð /ð	2ð
 ð2ð ð2ð ð2ð 
ó2ð. ò#ó ð#ð 26Ø(,ð	

à(ð

ð /ð

ð &ð	

ð
 
ó

ð  26Ø(,ð
àð
ð ð
ð /ð	
ð
 &ð
ð ð
ð 
ó
ð& 26Ø(,ð	
àð
ð /ð
ð &ð	
ð
 ð
ð 
ó
ð$ 26Ø(,ð	
àð
ð /ð
ð &ð	
ð
 ð
ð 
ó
ð$ 26Ø(,ð	
àð
ð /ð
ð &ð	
ð
 ð
ð 
ó
ð$ 26Ø(,ð	
àð
ð /ð
ð &ð	
ð
 ð
ð 
ó
ð$ 26Ø(,ð	
àð
ð /ð
ð &ð	
ð
 ð
ð 
ó
ð$ 26Ø(,ð	
àð
ð /ð
ð &ð	
ð
 ð
ð 
ó
ð$ 26Ø(,ð	
àð
ð /ð
ð &ð	
ð
 ð
ð 
ó
óð 26Ø(,ð
àð
ð ð
ð /ð	
ð
 &ð
ð ð
ð 
ó
ð: 26Ø(,ð	
à(ð
ð /ð
ð &ð	
ð
 
ó
ó$ðà,ðð &ðð %ð	ð
 
óôHr'   rˆ   )r7   r¿   r-   ztuple[StrOrURL, ...]).Ú
__future__r   re   r�   ÚsysÚabcr   Údataclassesr   Útypingr   r   r   r	   r
   r   r   r   Úaiohttpr   r   r   Úaiohttp.typedefsr   Úyarlr   r�   rH   r   r   rP   Útypesr   Úversion_infor   Útyping_extensionsr   r6   r¿   ÚLoggerr|   rz   r4   r<   r†   rˆ   r   r'   r$   ú<module>rÍ      sô   ðÝ "ã Û Û 
Ý Ý !÷	÷ 	ó 	÷ 8Ñ 7Ý %Ý  ç =àÐ áÝ#à×Ñ�vÒÞå*ôˆhô ð" �h Ð(Ñ)€Ø�-  mÑ!4°e¸MÈ3Ð<NÑ6OÐOÑP€	Ø�G˜WŸ^™^Ð+Ñ,€à�s˜I nÑ5Ð5Ñ6€ð ÷)ð )ó ð)÷b#ñ b#óJ÷&bHò bHr'   