o
    LDi                     @   s  U d Z ddlZddlZddlZddlZddl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mZmZmZmZmZmZmZmZmZmZm Z m!Z! ddl"Z"ddl#m$Z$m%Z%m&Z&m'Z' ddl(m)Z) dd	l*m+Z+m,Z,m-Z- dd
l.m/Z/ ddl0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZO ddlPmQZQmRZR ddlSmTZTmUZUmVZVmWZWmXZX ddlYmZZZm[Z[m\Z\ ddl]m^Z^m_Z_m`Z`maZambZb ddlcmdZd ddlemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZo ddl,mpZpmqZqmrZrmsZs ddltmuZumvZvmwZw ddlxmyZymzZz ddl{m|Z|m}Z}m~Z~mZmZ dZerIddlmZ ndZejdkrZerZddlmZ G dd deddZe"jdddd G d!d" d"Zed#d$d%Zee ed&< eh d'Ze d(eUe[ZeeUegef ZG d)d* d*ZG d+d, d,eeeef ee ZeeU Zee[ ZG d-d. d.Zejdkrere,jddd/d0ed1ed2eqd3ee_ d4eej d5ee d6efd7d8ZdS e,jddd/d0ed1ed2eqd3ee_ d4eej d5ed6efd9d8ZdS ):zHTTP Client for asyncio.    N)suppress)TracebackType)TYPE_CHECKINGAny	AwaitableCallable	CoroutineFinal	FrozenSet	GeneratorGenericIterableListMappingOptionalSequenceSetTupleType	TypedDictTypeVarUnion)CIMultiDict	MultiDictMultiDictProxyistr)URL   )hdrshttppayload)WebSocketDataQueue)AbstractCookieJar)ClientConnectionErrorClientConnectionResetErrorClientConnectorCertificateErrorClientConnectorDNSErrorClientConnectorErrorClientConnectorSSLErrorClientErrorClientHttpProxyErrorClientOSErrorClientPayloadErrorClientProxyConnectionErrorClientResponseErrorClientSSLErrorConnectionTimeoutErrorContentTypeError
InvalidURLInvalidUrlClientErrorInvalidUrlRedirectClientErrorNonHttpUrlClientErrorNonHttpUrlRedirectClientErrorRedirectClientErrorServerConnectionErrorServerDisconnectedErrorServerFingerprintMismatchServerTimeoutErrorSocketTimeoutErrorTooManyRedirectsWSMessageTypeErrorWSServerHandshakeError)ClientMiddlewareTypebuild_client_middlewares)ClientRequestClientResponseFingerprintRequestInfo_merge_ssl_params)DEFAULT_WS_CLIENT_TIMEOUTClientWebSocketResponseClientWSTimeout)HTTP_AND_EMPTY_SCHEMA_SETBaseConnectorNamedPipeConnectorTCPConnectorUnixConnector)	CookieJar)
	_SENTINELDEBUGEMPTY_BODY_METHODS	BasicAuthTimeoutHandlebasicauth_from_netrcget_env_proxy_for_urlnetrc_from_envsentinelstrip_auth_from_url)WS_KEYHttpVersionWebSocketReaderWebSocketWriter)WSHandshakeError
ws_ext_genws_ext_parse)TraceTraceConfig)JSONEncoderLooseCookiesLooseHeadersQueryStrOrURL)*r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r7   r5   r4   r6   r8   r9   r:   r;   r<   r=   r?   rB   rC   rD   rE   rK   rM   rN   rL   rH   ClientSessionClientTimeoutrI   requestr>   )
SSLContext      )Unpackc                   @   s  e Zd ZU eed< eed< eed< eedf ed< eedf ed< ee	e
 df ed< eedf ed< eed	< eed
< ee
edf ed< eedf ed< eed< edeeeged f f ed< eed< eedf ed< eedf ed< ded< eeeef ed< ee
df ed< eedf ed< eee
ef df ed< eedf ed< eedf ed< eedf ed< eedf ed< eee  ed< dS )_RequestOptionsparamsdatajsonNcookiesheadersskip_auto_headersauthallow_redirectsmax_redirectscompresschunked	expect100raise_for_statusread_until_eofproxy
proxy_authz%Union[ClientTimeout, _SENTINEL, None]timeoutsslserver_hostnameproxy_headerstrace_request_ctxread_bufsizeauto_decompressmax_line_sizemax_field_sizemiddlewares)__name__
__module____qualname__rf   __annotations__r   r   rd   re   r   strrS   boolintr   rC   r   rg   rk   rD   r   r   r   r@    r   r   Z/var/www/www-root/data/www/77.83.87.30/venv/lib/python3.10/site-packages/aiohttp/client.pyrp      s6   
  rp   FtotalT)auto_attribsfrozenslotsc                   @   sZ   e Zd ZU dZee ed< dZee ed< dZee ed< dZ	ee ed< dZ
eed< dS )ri   Nr   connect	sock_readsock_connect   ceil_threshold)r   r   r   r   r   floatr   r   r   r   r   r   r   r   r   ri      s   
 ri   i,     )r   r   DEFAULT_TIMEOUT>   GETPUTHEADTRACEDELETEOPTIONS_RetTypec                A       s  e Zd ZU dZeg dZdZeej	 e
d< dZee e
d< 	dddddddddejeeeejdddededddddd	d	d
d deddee dee deej dee dee dee dee deee  dee dedee dee dee dedee  de!de"e!e#ege$d f f de"e%e&f d ee% d!e"e'e(f d"e!d#e!d$e!d%ee)e*  d&e+d'e+d(e+d)e,d*e-e. d+e"e&de%f d,df>d-d.Z/d/ed  d,dfd0d1Z0e1rd2ed3e2d,df fd4d5Z3e4fd6e2d,dfd7d8Z5e6j7d9kre8rd:ed;ed<e9e: d,d=fd>d?Z;nd:ed;ed<e2d,d=fd@d?Z;dAed,e<fdBdCZ=dddddddddDdddddddedddddddddddddEd:edAedFe>dGe2dHe2dee dee deee  dee dIe!dJe+dKe"ee!df dLee! dMe!de"de!e#ege$d f f dNe!dee dee d!e"e(e&f dOee! dPee? dQee@ dRe"e@e!eAf dSee dTee dUeeBee2f  d&ee+ d"ee! d'ee+ d(ee+ d*ee-e.  d,ef@dVdWZCeDjEdedddddddddddddddddXdYdZd;ed:ed[ee d!e"eFe&f d\ee% d]e!d^e!d_ee% dee d`ee dFe>dee dee dee dRe"e@e!eAf dOee! dPee? dQee@ dSee dTee dKe+dae+d,dbf.dcddZGeDjEdedddddddddddddddddXdYdZd;ed:ed[ee d!e"eFe&f d\ee% d]e!d^e!d_ee% dee d`ee dFe>dee dee dee dRe"e@e!eAf dOee! dPee? dQee@ dSee dTee dKe+dae+d,ef.dedfZHdee d,dgfdhdiZIdjed,ee fdkdlZJe6j7d9kre8rd;ed<e9e: d,d=fdmdnZKd;ed<e9e: d,d=fdodpZLd;ed<e9e: d,d=fdqdrZMd;ed<e9e: d,d=fdsdtZNd;ed<e9e: d,d=fdudvZOd;ed<e9e: d,d=fdwdxZPd;ed<e9e: d,d=fdydzZQnkdd{d;edIe!d<e2d,d=fd|dnZKdd{d;edIe!d<e2d,d=fd}dpZLdd{d;edIe!d<e2d,d=fd~drZMddd;edGe2d<e2d,d=fddtZNddd;edGe2d<e2d,d=fddvZOddd;edGe2d<e2d,d=fddxZPd;ed<e2d,d=fddzZQdddZReSd,e!fddZTeSd,ee fddZUeSd,e fddZVeSd,eWe+e+f fddZXeSd,e!fddZYeYjZd3e!d,dfddZYeSd,ejfddZ[eSd,e(fddZ\eSdddZ]eSd,e^e_ fddZ`eSd,ee fddZaeSd,efddZbeSd,e!fddZceSd,e"e!e#ege$d f f fddZdeSd,e!fddZeeSd,e!fddZfeSd,e)e* fddZgdddZhdddZideeej  deej deek d,dfddZldddZmdeeej  deej deek d,dfddZn  ZoS )rh   z/First-class interface for making HTTP requests.)	_base_url_base_url_origin_source_traceback
_connector_loop_cookie_jar_connector_owner_default_auth_version_json_serialize_requote_redirect_url_timeout_raise_for_status_auto_decompress
_trust_env_default_headers_skip_auto_headers_request_class_response_class_ws_response_class_trace_configs_read_bufsize_max_line_size_max_field_size_resolve_charset_default_proxy_default_proxy_auth_retry_connection_middlewaresrequote_redirect_urlNr   r   TF   i  c                 C   s   dS )Nzutf-8r   )rbr   r   r   <lambda>2  s    zClientSession.<lambda>r   )	connectorlooprt   ru   r   r   rv   rw   json_serializerequest_classresponse_classws_response_classversion
cookie_jarconnector_ownerr}   read_timeoutconn_timeoutr   r   	trust_envr   trace_configsr   r   r   fallback_charset_resolverr   ssl_shutdown_timeoutbase_urlr   r   rt   ru   r   r   rv   rw   r   r   r   r   r   r   r   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   returnc          !      C   s  d | _ |d u r|d ur|j}|pt }|d u st|tr,|| _|d u r&d n| | _nt|| _| j | _| jj	s?J d| jd urO| jj
dsOtd|tu sW|d u rt| _|turotjdtdd tj| j|d| _|d urtj| j|d| _tjd	tdd n"t|tstd
t| d|| _|turtd|d urtd|turtjdtdd |d u rt||d}|j|urtd|| _| rttd| _|d u rt|d}|| _ |r| j !| || _ || _"|	| _#|| _$|
| _%|| _&|| _'|| _(|| _)|| _*|| _+|| _,|rt-|}nt- }|| _.|d ur,t/dd |D | _0nt/ | _0|| _1|| _2|| _3|p=g | _4| j4D ]} | 5  qB|| _6|| _7|| _8d| _9|| _:d S )Nz Only absolute URLs are supported/z!base_url must have a trailing '/'z8read_timeout is deprecated, use timeout argument instead   
stacklevelr   )r   z8conn_timeout is deprecated, use timeout argument insteadztimeout parameter cannot be of z. type, please use 'timeout=ClientTimeout(...)'zGread_timeout and timeout parameters conflict, please setup timeout.readzJconn_timeout and timeout parameters conflict, please setup timeout.connectzSThe ssl_shutdown_timeout parameter is deprecated and will be removed in aiohttp 4.0)r   r   z0Session and connector has to use same event loopr   r   c                 s   s    | ]}t |V  qd S Nr   .0ir   r   r   	<genexpr>  s    z)ClientSession.__init__.<locals>.<genexpr>T);r   r   asyncioget_running_loop
isinstancer   r   originr   absolutepathendswith
ValueErrorrX   r   r   warningswarnDeprecationWarningattrevolveri   typerM   RuntimeError	get_debug	tracebackextract_stacksys	_getframer   rO   r   update_cookiesr   r   r   r   r   r   r   r   r   r   r   r   r   	frozensetr   r   r   r   r   freezer   r   r   r   r   )!selfr   r   r   rt   ru   r   r   rv   rw   r   r   r   r   r   r   r   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   real_headerstrace_configr   r   r   __init__  s   &







zClientSession.__init__clsc                 C   s   t jd| jtdd d S )Nz6Inheritance class {} from ClientSession is discouragedr   r   )r   r   formatr   r   )r  r   r   r   __init_subclass__  s   
zClientSession.__init_subclass__namevalc                    s2   || j vrtjd|tdd t || d S )Nz8Setting custom ClientSession.{} attribute is discouragedr   r   )ATTRSr   r   r  r   super__setattr__)r   r  r  	__class__r   r   r    s   
zClientSession.__setattr__	_warningsc                 C   sZ   | j s+d| i}|jd| tfi | | dd}| jd ur#| j|d< | j| d S d S )NsourcezUnclosed client session zUnclosed client session)client_sessionmessagesource_traceback)closedr   ResourceWarningr   r   call_exception_handler)r   r  kwargscontextr   r   r   __del__  s   



zClientSession.__del__rl   methodurlr  _RequestContextManagerc                 K      d S r   r   r   r  r  r  r   r   r   rj     s   zClientSession.requestc                 K   s   t | j||fi |S )zPerform HTTP request.)r  _requestr  r   r   r   rj     s   
str_or_urlc                 C   s$   t |}| jr|js| j|S |S r   )r   r   r   join)r   r  r  r   r   r   
_build_url  s   zClientSession._build_url
   )rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   
verify_sslfingerprintssl_contextr   r   r   r   r   r   r   r   r   rq   rr   rs   rx   ry   rz   r{   r|   r~   r   r!  r"  r   r   r   r   c          ;         sB	  j rtdt||||}|d ur|d urtd|d ur'tj|jd}t|ts6|d ur6t	
dt d} g }!j}"|p@i }|}z|}#W n ty^ }$ zt||$d }$~$ww jd usfJ |#jjjvrqt|#|d urdd |D jB }%n	jrj}%nd }%|d u rj}|d u rj}|d u rd }n|}zt|}W n ty }$ zt||$d }$~$ww |tu rÈjnt|tst|dn|tjjjd	}&|&  }'d u rj! d u rj" d u rj#d u rj$fd
dj%D 		D ]}(|(&||#'||I d H  q|&( zT j)o)|t*v })	 t+|#\}#}*|#j,s@| r:t-nt}+|+|#|!sM|	rM|*rMtd|	d u sZ|!r\|*d ur\|*}	|	d u rtj.rtj/rqj0|#1 krtj.}	|	d u rj2r|#j3d urj4d j5|#j3I d H }	|d ur|	d urt6j7|v rtdj89|#},|d urt:j8j;d}-|-<| |-9|#}.|.r|,=|. d }/|d urt|}/n$j2rt>t? t@AtB|#I d H \}/}W d    n	1 sw   Y  jC||#fi d|d|d|%d|d|,d|	d|"d|d|d|djdjDd|/d|ddd |d ur8|ndd!|d"|d#	d$jE}0d%tFd&tGf 	f	d'd(}1|d u rdjHn|}2|2rotI|1|2}3n|1}3z	|3|0I d H }4W nG tJtKtLtMfy     tNtOfy   |)rd)})Y q*  tPy     tQy }5 z|5jRd u rt|5t@jSr tN|5jT |5d }5~5ww |4jUrψj8V|4jU|4jW |4jXd*v r|
r	D ]}(|(Y||#'|||4I d H  q| d+7 } |!Z|4 |r| |kr|0j[d ur|0j[\ I d H  |4\  t]|!d j^t_|!|4jXd,kr&|4j`t6jaks3|4jXd-v rF|4j`t6jbkrFt6jc}d }|dt6jerE|ft6je n|0j[}|4jgdt6jhpW|4jgdt6ji}6|6d u r^n|4j  z
t|6jk d.}7W n% ty }$ z|0j[d ur|0j[\ I d H  |4\  t-|6d/|$d }$~$ww |7j}8|8tlvr|0j[d ur|0j[\ I d H  |4\  tm|6|8s|#n|7}7z|71 }9W n% ty }: z|0j[d ur|0j[\ I d H  |4\  t-|7d0|:d }:~:ww |#1 |9krd }	|ft6j7d  |7}#i }|4j  q*	 W d    n	1 s
w   Y  |0j[d ur|0j[\ I d H  |d u r%jo}|d u r+ntp|r8||4I d H  n|r?|4q  |'d urV|4jrd urR|4jrs|'jt n|'t  t_|!|4_u	D ]}(|(v||#'|||4I d H  q]|4W S  twy }$ z"|&\  |'r|'t  d }'	D ]}(|(x||#'|||$I d H  q d }$~$ww )1NzSession is closedz9data and json parameters can not be used at the same time)dumpszChunk size is deprecated #1615r   c                 S   s   h | ]}t |qS r   r   r   r   r   r   	<setcomp>2  s    z)ClientSession._request.<locals>.<setcomp>r   )r   c                    s    g | ]}t  ||jd qS ))r   )ra   trace_config_ctx)r   r   )r   r   r   r   
<listcomp>b  s    
z*ClientSession._request.<locals>.<listcomp>Tz<Cannot combine AUTH argument with credentials encoded in URLzTCannot combine AUTHORIZATION header with AUTH argument or credentials encoded in URL)quote_cookierq   ru   rv   rr   rt   rw   r   rz   r{   r|   r   r   r   r   timersessionr   r   r   tracesr   reqr   c                    s   j d usJ zj j| dI d H }W n tjy, } z	td| j |d }~ww |jd us4J |jj| jt	v  j
j jd	 z!| |I d H }z||I d H  W W |S  tyj   |   w  tyv   |   w )N)r*  r   zConnection timeout to host )	r(  skip_payloadr~   r   r   r   timeout_ceil_thresholdr   r   )r   r   r   TimeoutErrorr0   r  protocolset_response_paramsr  rR   r   _timeout_ceil_thresholdsendstartBaseExceptionclose)r+  connexcresp)	r   r   r   r   r~   real_timeoutr   r(  r*  r   r   _connect_and_send_request  sN   
z9ClientSession._request.<locals>._connect_and_send_requestF)-  .  /  i3  i4  r   r=  )r;  r<  )encodedzHServer attempted redirecting to a location that does not look like a URLzInvalid redirect URL origin)yr  r   rF   r   r    JsonPayloadr   r   r   r   r   r   r   _prepare_headersr  r3   r   schemeallowed_protocol_schema_setr5   r   r   r   r   r2   rX   r   ri   rT   r   r   r   r3  r   r   r   r   r   send_request_startupdate_queryr(  r   IDEMPOTENT_METHODSrY   raw_hostr4   r   r   r   r   r   hostrun_in_executor_get_netrc_authr   AUTHORIZATIONr   filter_cookiesrO   r'  r   loadr   LookupErrorr   	to_threadrV   r   r   r   rB   rC   r   rA   r0   r'   r%   r(   r+   r9   r)   OSErrorerrnor.  args_raw_cookie_headersupdate_cookies_from_headersr  statussend_request_redirectappend_bodyr5  r=   request_infotupler  	METH_HEAD	METH_POSTMETH_GETgetCONTENT_LENGTHpopru   LOCATIONURIreleaser   rJ   r6   r  r   callabler}   
connectionadd_callbackcancel_historysend_request_endr4  send_request_exception);r   r  r  rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r!  r"  r   r   r   r   r   r   r   r   r   	redirectshistoryr   r  eskip_headerstmhandletraceretry_persistent_connectionauth_from_urlerr_exc_clsall_cookiestmp_cookie_jarreq_cookiesproxy_r+  r:  effective_middlewareshandlerr8  r7  r_urlparsed_redirect_urlrA  redirect_originorigin_val_errr   )
r   r   r   r   r~   r9  r   r(  r   r*  r   r    s  *




	











	
(


	

	    




zClientSession._requestr   i  @ )r  	protocolsr   receive_timeout	autocloseautoping	heartbeatrw   r   rq   ru   r   r   r   r   r!  r"  r   r   rz   max_msg_sizer~  r  r  r  r  r   r  _WSRequestContextManagerc                C   s   t | j|fi d|d|d|d|d|d|d|d|	d	|
d
|d|d|d|d|d|d|d|d|d|d|d|S )zInitiate websocket connection.r  r~  r   r  r  r  r  rw   r   rq   ru   r   r   r   r   r!  r"  r   r   rz   r  )r  _ws_connect)r   r  r  r~  r   r  r  r  r  rw   r   rq   ru   r   r   r   r   r!  r"  r   r   rz   r  r   r   r   
ws_connect  s^   	
zClientSession.ws_connectc          ,         s  |t urt|tr|}ntjdtdd t|d}nt}|d ur0tjdtdd tj||d}|d u r8t	 }nt	|}t
jdt
jdt
jd	i}| D ]
\}}||| qKttd
}| |t
j< |rod||t
j< |
d urx|
|t
j< |rt|d}||t
j< |d u rtjdtdd d}t||||}| j||||d|	|||||dI d H }z!|jdkrt|j|j d|j|j!d|j!"t
jd# dkrt|j|j d|j|j!d|j!"t
jd# dkrt|j|j d|j|j!d|j!"t
j$d}tt%&|t' (  } || krt|j|j d|j|j!dd }!|rCt
j|j!v rCdd |j!t
j )dD }"|"D ]}#|#|v rA|#}! nq6d}$|r}|j!"t
j}%|%ryzt*|%\}}$W n" t+yx }& zt|j|j |&j,d |j|j!d|&d }&~&ww d}d}$|j-}'|'d usJ |'j.}(|(d usJ |j/d u rd |(_0n|(j0d urt1|j/|(j0|(_0|'j2})|)d usJ t3|(d| j4d}*|(5t6|*||* t7|(|)d||$d}+W n t8y   |9   w | j:|*|+|!||||| j4|||$dS ) Nzeparameter 'timeout' of type 'float' is deprecated, please use 'timeout=ClientWSTimeout(ws_close=...)'r   r   )ws_closezofloat parameter 'receive_timeout' is deprecated, please use parameter 'timeout=ClientWSTimeout(ws_receive=...)')
ws_receive	websocketUpgrade13   ,)rz   z+ssl=None is deprecated, please use ssl=TrueTF)	rq   ru   r~   rw   r   r   r   r   r   e   zInvalid response status)r  rT  ru    zInvalid upgrade headerupgradezInvalid connection headerzInvalid challenge responsec                 S   s   g | ]}|  qS r   )strip)r   protor   r   r   r&  n  s    z-ClientSession._ws_connect.<locals>.<listcomp>r   r   r   )use_maskrz   
notakeover)r  rz   client_notakeover);rX   r   rI   r   r   r   rG   r   r   r   r   UPGRADE
CONNECTIONSEC_WEBSOCKET_VERSIONitems
setdefaultbase64	b64encodeosurandomdecodeSEC_WEBSOCKET_KEYr  SEC_WEBSOCKET_PROTOCOLORIGINr_   SEC_WEBSOCKET_EXTENSIONSrF   rj   rT  r?   rX  rk  ru   r]  lowerSEC_WEBSOCKET_ACCEPThashlibsha1rZ   digestsplitr`   r^   rQ  rd  r/  r  r   max	transportr!   r   
set_parserr\   r]   r4  r5  r   ),r   r  r  r~  r   r  r  r  r  rw   r   rq   ru   r   r   r   r   r!  r"  r   r   rz   r  
ws_timeoutr   default_headerskeyvaluesec_keyextstrr8  r_keymatchr/  resp_protocolsr  r  compress_hdrsr7  r6  
conn_protor  readerwriterr   r   r   r    s@  




	
	
	
zClientSession._ws_connectCIMultiDict[str]c                 C   sh   t | j}|r2t|ttfst |}t }| D ]\}}||v r(||| q|||< || q|S )z3Add default headers and transform it to CIMultiDict)r   r   r   r   r   setr  add)r   ru   resultadded_namesr  r  r   r   r   r@    s   
zClientSession._prepare_headersrG  c                 C   s(   t  }zt||W S  ty   Y dS w )z
        Get auth from netrc for the given host.

        This method is designed to be called in an executor to avoid
        blocking I/O in the event loop.
        N)rW   rU   rM  )r   rG  	netrc_objr   r   r   rI    s   zClientSession._get_netrc_authc                 K   r  r   r   r   r  r  r   r   r   r]       zClientSession.getc                 K   r  r   r   r  r   r   r   options  r  zClientSession.optionsc                 K   r  r   r   r  r   r   r   head  r  zClientSession.headc                 K   r  r   r   r  r   r   r   post  r  zClientSession.postc                 K   r  r   r   r  r   r   r   put  r  zClientSession.putc                 K   r  r   r   r  r   r   r   patch  r  zClientSession.patchc                 K   r  r   r   r  r   r   r   delete  r  zClientSession.delete)rx   c                K      t | jtj|fd|i|S )zPerform HTTP GET request.rx   )r  r  r   r\  r   r  rx   r  r   r   r   r]       c                K   r  )zPerform HTTP OPTIONS request.rx   )r  r  r   METH_OPTIONSr  r   r   r   r    r  c                K   r  )zPerform HTTP HEAD request.rx   )r  r  r   rZ  r  r   r   r   r    r  )rr   c                K   r  )zPerform HTTP POST request.rr   )r  r  r   r[  r   r  rr   r  r   r   r   r        c                K   r  )zPerform HTTP PUT request.rr   )r  r  r   METH_PUTr  r   r   r   r  (  r  c                K   r  )zPerform HTTP PATCH request.rr   )r  r  r   
METH_PATCHr  r   r   r   r  0  r  c                 K   s   t | jtj|fi |S )zPerform HTTP DELETE request.)r  r  r   METH_DELETEr  r   r   r   r  8  s   c                    s6   | j s| jdur| jr| j I dH  d| _dS dS )zMClose underlying connector.

        Release all acquired resources.
        N)r  r   r   r5  r   r   r   r   r5  >  s   
zClientSession.closec                 C   s   | j du p| j jS )z@Is client session closed.

        A readonly property.
        N)r   r  r  r   r   r   r  H  s   zClientSession.closedc                 C      | j S )z(Connector instance used for the session.r   r  r   r   r   r   P     zClientSession.connectorc                 C   r  )zThe session cookies.)r   r  r   r   r   r   U  r  zClientSession.cookie_jarc                 C   r  )z"The session HTTP protocol version.)r   r  r   r   r   r   Z  r  zClientSession.versionc                 C   r  ))Do URL requoting on redirection handling.)r   r  r   r   r   r   _  r  z"ClientSession.requote_redirect_urlc                 C   s   t jdtdd || _dS )r  z=session.requote_redirect_url modification is deprecated #2778r   r   N)r   r   r   r   )r   r  r   r   r   r   d  s   
c                 C   s   t jdtdd | jS )zSession's loop.z"client.loop property is deprecatedr   r   )r   r   r   r   r  r   r   r   r   n  s   zClientSession.loopc                 C   r  )zTimeout for the session.)r   r  r   r   r   r   v  r  zClientSession.timeoutc                 C   r  )z*The default headers of the client session.)r   r  r   r   r   ru   {  r  zClientSession.headersc                 C   r  )z2Headers for which autogeneration should be skipped)r   r  r   r   r   rv     r  zClientSession.skip_auto_headersc                 C   r  )z2An object that represents HTTP Basic Authorization)r   r  r   r   r   rw     r  zClientSession.authc                 C   r  )zJson serializer callable)r   r  r   r   r   r     r  zClientSession.json_serializec                 C   r  )z-Should connector be closed on session closing)r   r  r   r   r   r     r  zClientSession.connector_ownerc                 C   r  )zGShould `ClientResponse.raise_for_status()` be called for each response.)r   r  r   r   r   r}     s   zClientSession.raise_for_statusc                 C   r  )z7Should the body response be automatically decompressed.)r   r  r   r   r   r     r  zClientSession.auto_decompressc                 C   r  )z
        Should proxies information from environment or netrc be trusted.

        Information is from HTTP_PROXY / HTTPS_PROXY environment variables
        or ~/.netrc file if present.
        )r   r  r   r   r   r     s   zClientSession.trust_envc                 C   r  )z7A list of TraceConfig instances used for client tracing)r   r  r   r   r   r     r  zClientSession.trace_configsc                 C   s
   d| _ dS )zwDetach connector from session without closing the former.

        Session is switched to closed state anyway.
        Nr  r  r   r   r   detach  s   
zClientSession.detachc                 C   s   t d)NzUse async with instead)	TypeErrorr  r   r   r   	__enter__     zClientSession.__enter__exc_typeexc_valexc_tbc                 C   r  r   r   r   r  r  r  r   r   r   __exit__  s   zClientSession.__exit__c                    s   | S r   r   r  r   r   r   
__aenter__  s   zClientSession.__aenter__c                    s   |   I d H  d S r   )r5  r  r   r   r   	__aexit__  s   zClientSession.__aexit__r   r   N)r   r  )r   rh   )pr   r   r   __doc__r   r  r   r   r   StackSummaryr   r   rK   rs   r#  rB   rC   rH   r   HttpVersion11rX   rg   r   AbstractEventLooprd   re   rS   r   r   rc   r   r[   r"   r   r   r   r   r   rP   objectri   r   rb   r   _CharsetResolverr   r@   r   r  rQ   r   r  r   r  r   version_infor   ro   rp   rj   r   r  rf   bytesrk   rD   r   r  r   r\  rI   r  r  r@  rI  r]  r  r  r  r  r  r  r5  propertyr  r   r   r   r   r   setterr   r   ru   r
   r   rv   rw   r   r   r}   r   r   r   r  r  r4  r   r  r  r  __classcell__r   r   r	  r   rh      s.  
 #	




 !"#
 
	
	


 !"
#$
   I
	

:
	

 Z





	



	
	


		




	
rh   c                   @   s   e Zd ZdZdeddef ddfddZdd	d
ZdededdfddZ	dddZ
deedef fddZdeedef fddZdefddZdeee  dee dee ddfddZdS )_BaseRequestContextManager)_coro_respcoroasyncio.Future[Any]Nr   c                 C   s
   || _ d S r   )r  )r   r  r   r   r   r        
z#_BaseRequestContextManager.__init__argc                 C   s   | j |S r   )r  r2  )r   r  r   r   r   r2    s   z_BaseRequestContextManager.sendrQ  r  c                 O   s   | j j|i |S r   )r  throw)r   rQ  r  r   r   r   r    s   z _BaseRequestContextManager.throwc                 C   s
   | j  S r   )r  r5  r  r   r   r   r5    r  z _BaseRequestContextManager.closec                 C   s   | j  }|S r   )r  	__await__)r   retr   r   r   r    s   
z$_BaseRequestContextManager.__await__c                 C   s   |   S r   )r  r  r   r   r   __iter__  r  z#_BaseRequestContextManager.__iter__c                    s    | j I d H | _| j I d H S r   )r  r  r  r  r   r   r   r    s   z%_BaseRequestContextManager.__aenter__r  r7  tbc                    s   | j |||I d H  d S r   )r  r  r   r  r7  r  r   r   r   r    s   z$_BaseRequestContextManager.__aexit__)r  Nr   r  r  )r   r   r   	__slots__r   r   r   r2  r   r  r5  r   r  r  r  r   r   r4  r   r  r   r   r   r   r    s$    


r  c                   @   sh   e Zd ZdZdeddef deddfddZdefd	d
Zde	e
e  de	e de	e ddfddZdS )_SessionRequestContextManagerr  r  _sessionr  r  Nr)  r   c                 C   s   || _ d | _|| _d S r   r  )r   r  r)  r   r   r   r     s   
z&_SessionRequestContextManager.__init__c                    s:   z| j I d H | _W | jS  ty   | j I d H   w r   )r  r  r4  r  r5  r  r   r   r   r    s   z(_SessionRequestContextManager.__aenter__r  r7  r  c                    s.   | j d usJ | j   | j I d H  d S r   )r  r5  r  r  r   r   r   r    s   
z'_SessionRequestContextManager.__aexit__)r   r   r   r  r   rC   rh   r   r  r   r   r4  r   r  r   r   r   r   r    s&    
		
r  )r   r   r   r  r  r   r   r   r  r   c                K   r  r   r   )r  r  r   r   r   r  r   r   r   rj     s   rj   c                K   sZ   d}|du rd}t |dd}t||dd||dt||d}t|j| |fi ||S )aB  Constructs and sends a request.

        Returns response object.
        method - HTTP method
        url - request url
        params - (optional) Dictionary or bytes to be sent in the query
        string of the new request
        data - (optional) Dictionary, bytes, or file-like object to
        send in the body of the request
        json - (optional) Any json compatible python object
        headers - (optional) Dictionary of HTTP Headers to send with
        the request
        cookies - (optional) Dict object to send with the request
        auth - (optional) BasicAuth named tuple represent HTTP Basic Auth
        auth - aiohttp.helpers.BasicAuth
        allow_redirects - (optional) If set to False, do not follow
        redirects
        version - Request HTTP version.
        compress - Set to True if request has to be compressed
        with deflate encoding.
        chunked - Set to chunk size for chunked transfer encoding.
        expect100 - Expect 100-continue response from server.
        connector - BaseConnector sub-class instance to support
        connection pooling.
        read_until_eof - Read response until eof if response
        does not have Content-Length header.
        loop - Optional event loop.
        timeout - Optional ClientTimeout settings structure, 5min
        total timeout by default.
        Usage::
        >>> import aiohttp
        >>> async with aiohttp.request('GET', 'http://python.org/') as resp:
        ...    print(resp)
        ...    data = await resp.read()
        <ClientResponse(https://www.python.org/) [200 OK]>
        FNT)r   force_closert   r   )r   rt   r   r   r   r   )rM   rh   r_  rX   r  r  )r  r  r   r   r   r  r   r)  r   r   r   rj   %  s    -

	)r  r   r  r  rs   r  r   r   r   
contextlibr   typesr   typingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	multidictr   r   r   r   yarlr   r  r   r   r    _websocket.readerr!   abcr"   client_exceptionsr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   client_middlewaresr@   rA   client_reqreprB   rC   rD   rE   rF   	client_wsrG   rH   rI   r   rJ   rK   rL   rM   rN   	cookiejarrO   helpersrP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   http_websocketr^   r_   r`   tracingra   rb   typedefsrc   rd   re   rf   rg   __all__r   rk   r  ro   rp   sri   r   r   r   rE  r   r  r   r  rh   r  r  r  r  r  r  rj   r   r   r   r   <module>   s    X|03          n$!