o
    mi                     @   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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max_headers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   L/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/aiohttp/client.pyrp      s8   
  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                C       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 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,d,e-e. d-e"e&de%f d.df@d/d0Z/d1ed  d.dfd2d3Z0e1rd4ed5e2d.df fd6d7Z3e4fd8e2d.dfd9d:Z5e6j7d;kre8rd<ed=ed>e9e: d.d?fd@dAZ;nd<ed=ed>e2d.d?fdBdAZ;dCed.e<fdDdEZ=dddddddddFdddddddeddddddddddddddGd<edCedHe>dIe2dJe2dee dee deee  dee dKe!dLe+dMe"ee!df dNee! dOe!de"de!e#ege$d f f dPe!dee dee d"e"e(e&f dQee! dRee? dSee@ dTe"e@e!eAf dUee dVee dWeeBee2f  d'ee+ d#ee! d(ee+ d)ee+ d*ee+ d,ee-e.  d.efBdXdYZCeDjEdedddddddddddddddddZd[d\d=ed<ed]ee d"e"eFe&f d^ee% d_e!d`e!daee% dee dbee dHe>dee dee dee dTe"e@e!eAf dQee! dRee? dSee@ dUee dVee dMe+dce+d.ddf.dedfZGeDjEdedddddddddddddddddZd[d\d=ed<ed]ee d"e"eFe&f d^ee% d_e!d`e!daee% dee dbee dHe>dee dee dee dTe"e@e!eAf dQee! dRee? dSee@ dUee dVee dMe+dce+d.ef.dgdhZHdee d.difdjdkZIdled.ee fdmdnZJe6j7d;kr e8r d=ed>e9e: d.d?fdodpZKd=ed>e9e: d.d?fdqdrZLd=ed>e9e: d.d?fdsdtZMd=ed>e9e: d.d?fdudvZNd=ed>e9e: d.d?fdwdxZOd=ed>e9e: d.d?fdydzZPd=ed>e9e: d.d?fd{d|ZQnkdd}d=edKe!d>e2d.d?fd~dpZKdd}d=edKe!d>e2d.d?fddrZLdd}d=edKe!d>e2d.d?fddtZMddd=edIe2d>e2d.d?fddvZNddd=edIe2d>e2d.d?fddxZOddd=edIe2d>e2d.d?fddzZPd=ed>e2d.d?fdd|ZQdddZReSd.e!fddZTeSd.ee fddZUeSd.e fddZVeSd.eWe+e+f fddZXeSd.e!fddZYeYjZd5e!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_max_headers_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>5  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   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   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/t0dd |D | _1nt0 | _1|| _2|| _3|| _4|p@g | _5| j5D ]}!|!6  qE|| _7|| _8|| _9d| _:|| _;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   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   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   r   rq   rr   rs   rx   ry   rz   r{   r|   r~   r#  r$  r%  r   r   r   r   c          <         sp	  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$d u rj%	fd
dj&D 

D ]})|)'||$(||I d H  q|') zc j*o1|t+v }*	 t,|$\}$}+|$j-sH|!rBt.nt},|,|$|"sU|	rU|+rUtd|	d u sb|"rd|+d urd|+}	|	d u r|j/r|j0ryj1|$2 kr|j/}	|	d u rj3r|$j4d urj5d j6|$j4I d H }	|d ur|	d urt7j8|v rtdj9:|$}-|d urt;j9j<d}.|.=| |.:|$}/|/r|->|/ d }0|d urt|}0n$j3r t?t@ tABtC|$I d H \}0}W d    n	1 sw   Y  jD||$fi d|d|d|&d|d|-d|	d|#d|d|d|djdjEd|0d|ddd |d ur@|ndd!|d"|d#
d$jF}1d%tGd&tHf 
f
d'd(}2| d u rmjIn| }3|3rxtJ|2|3}4n|2}4z	|4|1I d H }5W nG tKtLtMtNfy     tOtPfy   |*rd)}*Y q2  tQy     tRy }6 z|6jSd u rt|6tAjTr tO|6jU |6d }6~6ww |5jVr؈j9W|5jV|5jX |5jYd*v r|
r
D ]})|)Z||$(|||5I d H  q|!d+7 }!|"[|5 |r"|!|kr"|1j\d ur|1j\] I d H  |5]  t^|"d j_t`|"|5jYd,kr/|5jat7jbks<|5jYd-v rO|5jat7jckrOt7jd}d }|et7jfrN|gt7jf n|1j\}|5jhet7jip`|5jhet7jj}7|7d u rgn|5k  z
t|7jl d.}8W n% ty }% z|1j\d ur|1j\] I d H  |5]  t.|7d/|%d }%~%ww |8j}9|9tmvr|1j\d ur|1j\] I d H  |5]  tn|7|9s|$o|8}8z|82 }:W n% ty }; z|1j\d ur|1j\] I d H  |5]  t.|8d0|;d };~;ww |$2 |:krd }	|gt7j8d  |gt7jpd  |gt7jqd  |8}$i }|5k  q2	 W d    n	1 s!w   Y  |1j\d ur4|1j\] I d H  |d u r<jr}|d u rBnts|rO||5I d H  n|rV|5t  |(d urm|5jud uri|5juv|(jw n|(w  t`|"|5_x
D ]})|)y||$(|||5I d H  qt|5W S  tzy }% z"|']  |(r|(w  d }(
D ]})|){||$(|||%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>7  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>j  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yk   |   w  tyw   |   w )N)r-  r   zConnection timeout to host )
r+  skip_payloadr~   r   r   r   timeout_ceil_thresholdr   r   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   r~   real_timeoutr   r+  r-  r   r   _connect_and_send_request  sP   
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)|r  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   r6  r   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errnor1  args_raw_cookie_headersupdate_cookies_from_headersr  statussend_request_redirectappend_bodyr8  r=   request_infotupler  	METH_HEAD	METH_POSTMETH_GETgetCONTENT_LENGTHpopru   LOCATIONURIreleaser   rJ   r6   r   COOKIEPROXY_AUTHORIZATIONr   callabler}   
connectionadd_callbackcancel_historysend_request_endr7  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   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handlerr;  r:  r_urlparsed_redirect_urlrD  redirect_originorigin_val_errr   )r   r   r   r   r   r~   r<  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  rW  ru    zInvalid upgrade headerupgradezInvalid connection headerzInvalid challenge responsec                 S   s   g | ]}|  qS r   )strip)r   protor   r   r   r)  y  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   rW  r?   r[  rp  ru   r`  lowerSEC_WEBSOCKET_ACCEPThashlibsha1rZ   digestsplitr`   r^   rT  ri  r2  r  r   max	transportr!   r   
set_parserr\   r]   r7  r8  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extstrr;  r_keymatchr2  resp_protocolsr  r  compress_hdrsr:  r9  
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   rC    s   
zClientSession._prepare_headersrJ  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   rP  )r   rJ  	netrc_objr   r   r   rL    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   r]  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  3  r  c                K   r  )zPerform HTTP PATCH request.rr   )r  r  r   
METH_PATCHr  r   r   r   r  ;  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  C  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   r8  r   r   r   r   r8  I  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  S  s   zClientSession.closedc                 C      | j S )z(Connector instance used for the session.r   r  r   r   r   r   [     zClientSession.connectorc                 C   r  )zThe session cookies.)r   r  r   r   r   r   `  r  zClientSession.cookie_jarc                 C   r  )z"The session HTTP protocol version.)r   r  r   r   r   r   e  r  zClientSession.versionc                 C   r  ))Do URL requoting on redirection handling.)r   r  r   r   r   r   j  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   o  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   y  s   zClientSession.loopc                 C   r  )zTimeout for the session.)r   r  r   r   r   r     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   )r8  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  rC  rL  r`  r  r  r  r  r  r  r8  propertyr  r   r   r   r   r   setterr   r   ru   r
   r   rv   rw   r   r   r}   r   r   r   r  r  r7  r   r  r  r  __classcell__r   r   r  r   rh      s:  
 $	

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


 !"#
$%
   P
	

:
	

 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  r5  )r   r  r   r   r   r5    s   z_BaseRequestContextManager.sendrT  r  c                 O   s   | j j|i |S r   )r  throw)r   rT  r  r   r   r   r    s   z _BaseRequestContextManager.throwc                 C   s
   | j  S r   )r  r8  r  r   r   r   r8    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  r:  tbc                    s   | j |||I d H  d S r   )r  r  r   r  r:  r  r   r   r   r    s   z$_BaseRequestContextManager.__aexit__)r  Nr   r  r  )r   r   r   	__slots__r   r   r  r5  r   r  r8  r   r  r  r  r   r   r7  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  r7  r  r8  r  r   r   r   r    s   z(_SessionRequestContextManager.__aenter__r  r:  r  c                    s.   | j d usJ | j   | j I d H  d S r   )r  r8  r  r  r   r   r   r    s   
z'_SessionRequestContextManager.__aexit__)r   r   r   r  r   rC   rh   r  r  r   r   r7  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   rb  rX   r   r  )r  r  r   r   r   r  r   r,  r   r   r   rj   0  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   rH  r   r  r   r  rh   r  r  r  r   r  r  rj   r   r   r   r   <module>   s    X|03          x$!