
    bf0                        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 d dl	m
Z
mZ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 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e%deedf         fdZ+ G d d          Z,dS )    N)abstractmethod)	dataclass)TracebackType)
Any	AwaitableCallableDict	GeneratorListOptionalTupleTypeUnion)ClientResponseClientSessionhdrs)StrOrURL)URL   )ExponentialRetryRetryOptionsBase)      )Protocolc            	           e Zd ZdZededededdfd            Zededededdfd            Zededededdfd	            Z	dS )
_LoggerzA
    _Logger defines which methods logger object should have
    msgargskwargsreturnNc                     d S N selfr   r   r   s       N/var/www/html/Alfredo/env/lib/python3.11/site-packages/aiohttp_retry/client.pydebugz_Logger.debug%   s    BF$    c                     d S r"   r#   r$   s       r&   warningz_Logger.warning(   s    DHDr(   c                     d S r"   r#   r$   s       r&   	exceptionz_Logger.exception+   s    FJdr(   )
__name__
__module____qualname____doc__r   strr   r'   r*   r,   r#   r(   r&   r   r       s          FFSFCFDFFF ^FH3HsHcHdHHH ^HJSJJJJJJ ^JJJr(   r   .c                       e Zd ZU eed<   eed<   dZeeee	f                  ed<   dZ
eeee	f                  ed<   dZeeee	f                  ed<   dS )RequestParamsmethodurlNheaderstrace_request_ctxr   )r-   r.   r/   r1   __annotations___RAW_URL_TYPEr6   r   r	   r   r7   r   r#   r(   r&   r3   r3   7   s         KKK	(,GXd38n%,,,26xS#X/666'+FHT#s(^$+++++r(   r3   c                       e Zd Z	 ddedee         dedededdfd	Z	d
e
defdZdefdZdeedef         fdZdefdZdeee                  dee         dee         ddfdZdS )_RequestContextFrequest_funcparams_listloggerretry_optionsraise_for_statusr    Nc                     t          |          dk    sJ || _        || _        || _        || _        || _        d | _        d S )Nr   )len_request_func_params_list_logger_retry_options_raise_for_status	_response)r%   r<   r=   r>   r?   r@   s         r&   __init__z_RequestContext.__init__A   sO     ;!####)'+!137r(   codec                 F    |dk    r| j         j        rdS || j         j        vS )Ni  F)rF   retry_all_server_errorsstatuses)r%   rJ   s     r&   _is_status_code_okz"_RequestContext._is_status_code_okS   s+    3;;4.F;54.777r(   c                   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 }|                     |j                  s|| j        j        k    r| j        r|                                 | j        j        N	 | j                            |           d {V }n.# t"          $ r | j                             d	           d
}Y nw xY wd}|s|| j        j        k    r	|| _        |S | j                             d           n"| j                             d|j                    | j                            ||          }n# t"          $ r|| j        j        k    rt+          fd| j        j        D                       }|s| j                             dt/                                | j                            |d           }Y d nd ww xY wt1          j        |           d {V  e)Nr   TzAttempt r   z out of current_attempt)r6   r7   z/while evaluating response an exception occurredFz/Retrying after evaluate response callback checkzRetrying after response code: )attemptresponsec                 0    g | ]}t          |          S r#   )
isinstance).0exces     r&   
<listcomp>z/_RequestContext._do_request.<locals>.<listcomp>   s#    #a#a#a3Jq#$6$6#a#a#ar(   zRetrying after exception: )rE   r'   rF   attemptsrD   
IndexErrorrC   r4   r5   r6   r7   r   rN   statusrG   r@   evaluate_response_callback	Exceptionr,   rH   get_timeoutany
exceptionsreprasynciosleep)r%   rQ   paramsrS   is_response_correct
retry_waitis_exc_validrX   s          @r&   _do_requestz_RequestContext._do_requestX   sA     5	,Lc/!*;ccTEXEaccdddq O/e3!./BCFF! 3 3 3!.r2FFF3 2D1CMJ	2 #N)?'!39r'		2 	2 }*	2 	2 	, 	, 	, 	, 	, 	, **8?;; [RVReRn?n?n- 4 11333*EQ88<8K8f8fgo8p8p2p2p2p2p2p2p//( 8 8 8 L223deee27///8 /3+* _oATA].].])1'**+]^^^^L&&'Y'Y'YZZZ!0<<__g<hh

 	e 	e 	e"d&9&BBBG"#a#a#a#a$BUB`#a#a#abb# G""#IQ#I#IJJJ!0<<__c<dd





	e -
+++++++++k5	,sb   A F8 A&#F8 %A&&BF8 4 D F8 &D>;F8 =D>>F8 AF8 8
IBIIc                 N    |                                                                  S r"   )
__aenter__	__await__r%   s    r&   rl   z_RequestContext.__await__   s      **,,,r(   c                 :   K   |                                   d {V S r"   )ri   rm   s    r&   rk   z_RequestContext.__aenter__   s*      %%'''''''''r(   exc_typeexc_valexc_tbc                 j   K   | j         '| j         j        s| j                                          d S d S d S r"   )rH   closedcloser%   ro   rp   rq   s       r&   	__aexit__z_RequestContext.__aexit__   sI       >%>( '$$&&&&& &%' 'r(   )F)r-   r.   r/   RequestFuncr   r3   _LoggerTyper   boolrI   intrN   r   ri   r
   r   rl   rk   r   r   BaseExceptionr   rv   r#   r(   r&   r;   r;   @   s?        "'8 8!8 -(8 	8
 (8 8 
8 8 8 8$8s 8t 8 8 8 8
7,> 7, 7, 7, 7,r-9S$%>? - - - -(. ( ( ( ('4./' -(' '	'
 
' ' ' ' ' 'r(   r;   r5   r    c                 <   t          | t                    st          | t                    r| fS t          | t                    rt	          |           }n't          | t                    r| }nt          d          t          |          dk    rt          d          |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)rU   r1   YARL_URLlisttuple
ValueErrorrB   )r5   urlss     r&   _url_to_urlsr      s    #s z#x88 v#t GSzz	C		 GEFFF
4yyA~~YZZZKr(   c                   r   e Zd Z	 	 	 	 d!dee         dee         dee         dededed	dfd
Z	e
d	efd            Z	 	 d"dee         dee         dee         d	efdZ	 	 d"dededee         dee         ded	efdZ	 	 d"dedee         dee         ded	ef
dZ	 	 d"dedee         dee         ded	ef
dZ	 	 d"dedee         dee         ded	ef
dZ	 	 d"dedee         dee         ded	ef
dZ	 	 d"dedee         dee         ded	ef
dZ	 	 d"dedee         dee         ded	ef
dZ	 	 d"dedee         dee         ded	ef
dZd#dZ	 	 d"dededee         dee         ded	efdZ	 	 d"dee         dee         dee         d	efdZd$dZdeee                   dee          dee!         d	dfdZ"d#d Z#dS )%RetryClientNFclient_sessionr>   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	getLoggerrE   r   rF   rG   )	r%   r   r>   r?   r@   r   r   clientrs   s	            r&   rI   zRetryClient.__init__   st     %#FFF"D3F33FF$*$Pg.?.P.P0=0SAQASAS!1r(   c                     | j         S r"   )rF   rm   s    r&   r?   zRetryClient.retry_options   s    ""r(   r=   c                 2    |                      |||          S )Nr=   r?   r@   )_make_requestsr%   r=   r?   r@   s       r&   requestszRetryClient.requests   s*     ""#'- # 
 
 	
r(   r4   r5   c                 &     | j         d||||d|S N)r4   r5   r?   r@   r#   )_make_request)r%   r4   r5   r?   r@   r   s         r&   requestzRetryClient.request   s;     "t! 
'-	
 

 
 
 	
r(   c                 :     | j         dt          j        |||d|S r   )r   r   METH_GETr%   r5   r?   r@   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	  s=     "t! 
>'-	
 

 
 
 	
r(   c                 :     | j         dt          j        |||d|S r   )r   r   	METH_POSTr   s        r&   postzRetryClient.post  s=     "t! 
>'-	
 

 
 
 	
r(   c                 :     | j         dt          j        |||d|S r   )r   r   METH_PUTr   s        r&   putzRetryClient.put&  r   r(   c                 :     | j         dt          j        |||d|S r   )r   r   
METH_PATCHr   s        r&   patchzRetryClient.patch5  s=     "t! 
?'-	
 

 
 
 	
r(   c                 :     | j         dt          j        |||d|S r   )r   r   METH_DELETEr   s        r&   deletezRetryClient.deleteD  s>     "t! 
#'-	
 

 
 
 	
r(   c                 V   K   | j                                          d {V  d| _        d S )NT)r   rt   r   rm   s    r&   rt   zRetryClient.closeS  s7      l  """""""""r(   c                 r    t          |          }fd|D             }|                     |||          S )Nc                     g | ]>}t          |                    d i                               dd                    ?S )r6   r7   N)r4   r5   r6   r7   r   )r3   pop)rV   r5   r   r4   s     r&   rY   z-RetryClient._make_request.<locals>.<listcomp>`  sf         %JJy"--$jj)<dCC
 
 
   r(   r   )r   r   )r%   r4   r5   r?   r@   r   url_listr=   s    `   `  r&   r   zRetryClient._make_requestW  sj      $$        ""#'- # 
 
 	
r(   c                 l    || j         }|| j        }t          | j        j        || j        ||          S )N)r<   r=   r>   r?   r@   )rF   rG   r;   r   r   rE   r   s       r&   r   zRetryClient._make_requestsn  sN       /M##5-#<'-
 
 
 	
r(   c                 
   K   | S r"   r#   rm   s    r&   rk   zRetryClient.__aenter__  s      r(   ro   rp   rq   c                 >   K   |                                   d {V  d S r"   )rt   ru   s       r&   rv   zRetryClient.__aexit__  s.       jjll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   rE   r*   rm   s    r&   __del__zRetryClient.__del__  sM    4D))1F| 	HL  !FGGGGG	H 	Hr(   )NNNF)NN)r    N)r    r   )$r-   r.   r/   r   r   rx   r   ry   r   rI   propertyr?   r   r3   r;   r   r1   r   r   	_URL_TYPEr   r   r   r   r   r   r   rt   r   r   rk   r   r{   r   rv   r   r#   r(   r&   r   r      s:        37(,48!&2 2 /2 %2   01	2
 2 2 2 
2 2 2 2. #/ # # # X# 59+/	

 

-(

   01

 #4.	


 


 

 

 

  59+/
 

 
   01	

 #4.
 
 

 
 
 
& 59+/	
 

   01
 #4.	

 
 

 
 
 
$ 59+/	
 

   01
 #4.	

 
 

 
 
 
$ 59+/	
 

   01
 #4.	
 <?	

 

 
 
 
" 59+/	
 

   01
 #4.	

 
 

 
 
 
$ 59+/	
 

   01
 #4.	

 
 

 
 
 
$ 59+/	
 

   01
 #4.	

 
 

 
 
 
$ 59+/	
 

   01
 #4.	

 
 

 
 
 
    59+/
 

 
   01	

 #4.
 
 

 
 
 
4 59+/	
 
-(
   01
 #4.	

 

 
 
 
$   4./ -( '	
 
   H H H H H Hr(   r   )-rc   r   sysabcr   dataclassesr   typesr   typingr   r   r   r	   r
   r   r   r   r   r   aiohttpr   r   r   aiohttp.typedefsr   yarlr   r}   r?   r   r   version_infor   typing_extensionsr   r9   r   Loggerrx   rw   r3   r;   r   r   r#   r(   r&   <module>r      s     



       ! ! ! ! ! !                              8 7 7 7 7 7 7 7 7 7 % % % % % %             = = = = = = = =v******K K K K Kh K K K  h()-m!4eM3<N6OOP	GW^+,sIn556 , , , , , , , ,_' _' _' _' _' _' _' _'Di E(C-$8    "^H ^H ^H ^H ^H ^H ^H ^H ^H ^Hr(   