o
    Fh                     @   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lemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZm ddl,mnZnmoZompZpmqZq ddlrmsZsmtZtmuZu ddlvmwZwmxZx ddlymzZzm{Z{m|Z|m}Z}m~Z~ dZerEddlmZ ndZejdkrVerVd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/d0ed1e~d2eod3ee_ d4eej d5ee d6efd7d8ZdS e,jddd/d0ed1e~d2eod3e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get_env_proxy_for_url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__rd   __annotations__r   r   rb   rc   r   strrS   boolintr   rC   r   re   ri   rD   r   r   r   r@    r   r   A/var/www/html/venv/lib/python3.10/site-packages/aiohttp/client.pyrn      s6   
  rn   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 )rg   Nr   connect	sock_readsock_connect   ceil_threshold)r   r   r   r   r   floatr   r   r   r   r   r   r   r   r   rg      s   
 rg   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ZIe6j7d9kre8rd;ed<e9e: d,d=fdjdkZJd;ed<e9e: d,d=fdldmZKd;ed<e9e: d,d=fdndoZLd;ed<e9e: d,d=fdpdqZMd;ed<e9e: d,d=fdrdsZNd;ed<e9e: d,d=fdtduZOd;ed<e9e: d,d=fdvdwZPnkddxd;edIe!d<e2d,d=fdydkZJddxd;edIe!d<e2d,d=fdzdmZKddxd;edIe!d<e2d,d=fd{doZLdd|d;edGe2d<e2d,d=fd}dqZMdd|d;edGe2d<e2d,d=fd~dsZNdd|d;edGe2d<e2d,d=fdduZOd;ed<e2d,d=fddwZPdddZQeRd,e!fddZSeRd,ee fddZTeRd,e fddZUeRd,eVe+e+f fddZWeRd,e!fddZXeXjYd3e!d,dfddZXeRd,ejfddZZeRd,e(fddZ[eRdddZ\eRd,e]e^ fddZ_eRd,ee fddZ`eRd,efddZaeRd,e!fddZbeRd,e"e!e#ege$d f f fddZceRd,e!fddZdeRd,e!fddZeeRd,e)e* fddZfdddZgdddZhdeeei  deei deej d,dfddZkdddZldeeei  deei deej d,dfddZm  ZnS )rf   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>0  s    zClientSession.<lambda>r   )	connectorlooprr   rs   r}   r~   rt   ru   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   rr   rs   r}   r~   rt   ru   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
ValueErrorrV   r   r   warningswarnDeprecationWarningattrevolverg   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   rr   rs   r}   r~   rt   ru   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__rj   methodurlr  _RequestContextManagerc                 K      d S r   r   r   r  r  r  r   r   r   rh     s   zClientSession.requestc                 K   s   t | j||fi |S )zPerform HTTP request.)r  _requestr  r   r   r   rh     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
   )ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   
verify_sslfingerprintssl_contextr   r   r   r   r   r   r   r   r   ro   rp   rq   rv   rw   rx   ry   rz   r|   r  r  r   r   r   r   r   c          ;         s
	  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|&( z8 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|	d urt2j3|v rtdj45|#},|d urt6j4j7d}-|-8| |-5|#}.|.r|,9|. d }/|d urt|}/n$j:rt;t< t=>t?|#I d H \}/}W d    n	1 sw   Y  j@||#fi d|d|d|%d|d|,d|	d|"d|d|d|djdjAd|/d|ddd |d ur|ndd!|d"|d#	d$jB}0d%tCd&tDf 	f	d'd(}1|d u rHjEn|}2|2rStF|1|2}3n|1}3z	|3|0I d H }4W nG tGtHtItJfyk     tKtLfy}   |)r|d)})Y q*  tMy     tNy }5 z|5jOd u rt|5t=jPr tK|5jQ |5d }5~5ww |4jRrj4S|4jR|4jT |4jUd*v r|
r	D ]}(|(V||#'|||4I d H  q| d+7 } |!W|4 |r| |kr|0jXd ur|0jXY I d H  |4Y  tZ|!d j[t\|!|4jUd,kr
|4j]t2j^ks|4jUd-v r*|4j]t2j_kr*t2j`}d }|at2jbr)|ct2jb n|0jX}|4jdat2jep;|4jdat2jf}6|6d u rBn|4g  z
t|6jh d.}7W n% tyu }$ z|0jXd urg|0jXY I d H  |4Y  t-|6d/|$d }$~$ww |7j}8|8tivr|0jXd ur|0jXY I d H  |4Y  tj|6|8s|#k|7}7z|71 }9W n% ty }: z|0jXd ur|0jXY I d H  |4Y  t-|7d0|:d }:~:ww |#1 |9krd }	|ct2j3d  |7}#i }|4g  q*	 W d    n	1 sw   Y  |0jXd ur|0jXY I d H  |d u r	jl}|d u rntm|r||4I d H  n|r#|4n  |'d ur:|4jod ur6|4jop|'jq n|'q  t\|!|4_r	D ]}(|(s||#'|||4I d H  qA|4W S  tty }$ z"|&Y  |'rk|'q  d }'	D ]}(|(u||#'|||$I d H  qm 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>0  s    z)ClientSession._request.<locals>.<setcomp>r   )r   c                    s    g | ]}t  ||jd qS ))r   )r_   trace_config_ctx)r   r   )r   r   r   r   
<listcomp>`  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_cookiero   rs   rt   rp   rr   ru   r   rx   ry   rz   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;  )r9  r:  )encodedzHServer attempted redirecting to a location that does not look like a URLzInvalid redirect URL origin)vr  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   rV   r   rg   rT   r   r   r   r1  r   r   r   r   r   send_request_startupdate_queryr&  r   IDEMPOTENT_METHODSrW   raw_hostr4   r   r   r   r   r   AUTHORIZATIONr   filter_cookiesrO   r%  r   loadr   r   LookupErrorr   	to_threadrU   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_bodyr3  r=   request_infotupler  	METH_HEAD	METH_POSTMETH_GETgetCONTENT_LENGTHpoprs   LOCATIONURIreleaser   rJ   r6   r  r   callabler{   
connectionadd_callbackcancel_historysend_request_endr2  send_request_exception);r   r  r  ro   rp   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   	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)  r8  effective_middlewareshandlerr6  r5  r_urlparsed_redirect_urlr?  redirect_originorigin_val_errr   )
r   r   r   r   r|   r7  r   r&  r   r(  r   r    sz  *




	









	
(


	

	    





zClientSession._requestr   i  @ )r  	protocolsr   receive_timeout	autocloseautoping	heartbeatru   r   ro   rs   r}   r~   r   r  r  r   r   r   rx   max_msg_sizery  rz  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  ry  r   rz  r{  r|  r}  ru   r   ro   rs   r}   r~   r   r  r  r   r   r   rx   r~  )r  _ws_connect)r   r  r  ry  r   rz  r{  r|  r}  ru   r   ro   rs   r}   r~   r   r  r  r   r   r   rx   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   ,)rx   z+ssl=None is deprecated, please use ssl=TrueTF)	ro   rs   r|   ru   r}   r~   r   r   r   e   zInvalid response status)r  rO  rs    zInvalid upgrade headerupgradezInvalid connection headerzInvalid challenge responsec                 S   s   g | ]}|  qS r   )strip)r   protor   r   r   r$  e  s    z-ClientSession._ws_connect.<locals>.<listcomp>r   r   r   )use_maskrx   
notakeover)r}  rx   client_notakeover);rV   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   rh   rO  r?   rS  rf  rs   rX  lowerSEC_WEBSOCKET_ACCEPThashlibsha1rX   digestsplitr^   r\   rL  r_  r-  r  r   max	transportr!   r   
set_parserrZ   r[   r2  r3  r   ),r   r  r  ry  r   rz  r{  r|  r}  ru   r   ro   rs   r}   r~   r   r  r  r   r   r   rx   r~  
ws_timeoutr   default_headerskeyvaluesec_keyextstrr6  r_keymatchr-  resp_protocolsr  r  compress_hdrsr5  r4  
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   rs   resultadded_namesr  r  r   r   r   r>    s   
zClientSession._prepare_headersc                 K   r  r   r   r   r  r  r   r   r   rX       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)rv   c                K      t | jtj|fd|i|S )zPerform HTTP GET request.rv   )r  r  r   rW  r   r  rv   r  r   r   r   rX       c                K   r  )zPerform HTTP OPTIONS request.rv   )r  r  r   METH_OPTIONSr  r   r   r   r    r  c                K   r  )zPerform HTTP HEAD request.rv   )r  r  r   rU  r  r   r   r   r     r  )rp   c                K   r  )zPerform HTTP POST request.rp   )r  r  r   rV  r   r  rp   r  r   r   r   r  
     c                K   r  )zPerform HTTP PUT request.rp   )r  r  r   METH_PUTr  r   r   r   r    r  c                K   r  )zPerform HTTP PATCH request.rp   )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  "  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   r3  r   r   r   r   r3  (  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  2  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   D  r  zClientSession.versionc                 C   r  ))Do URL requoting on redirection handling.)r   r  r   r   r   r   I  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   N  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   X  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   rs   e  r  zClientSession.headersc                 C   r  )z2Headers for which autogeneration should be skipped)r   r  r   r   r   rt   j  r  zClientSession.skip_auto_headersc                 C   r  )z2An object that represents HTTP Basic Authorization)r   r  r   r   r   ru   o  r  zClientSession.authc                 C   r  )zJson serializer callable)r   r  r   r   r   r   t  r  zClientSession.json_serializec                 C   r  )z-Should connector be closed on session closing)r   r  r   r   r   r   y  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   )r3  r  r   r   r   	__aexit__  s   zClientSession.__aexit__r   r   N)r   r  )r   rf   )or   r   r   __doc__r   r  r   r   r   StackSummaryr   r   rK   rq   r!  rB   rC   rH   r   HttpVersion11rV   re   r   AbstractEventLooprb   rc   rS   r   r   ra   r   rY   r"   r   r   r   r   r   rP   objectrg   r   r`   r   _CharsetResolverr   r@   r   r  rQ   r   r  r   r  r   version_infor   rm   rn   rh   r   r  rd   bytesri   rD   r   r  r   rW  rI   r  r  r>  rX  r  r  r  r  r  r  r3  propertyr  r   r   r   r   r   setterr   r   rs   r
   r   rt   ru   r   r   r{   r   r   r   r  r  r2  r   r  r  r  __classcell__r   r   r  r   rf      s,  
 #	

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

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

	
rf   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  r0  )r   r  r   r   r   r0    s   z_BaseRequestContextManager.sendrL  r  c                 O   s   | j j|i |S r   )r  throw)r   rL  r  r   r   r   r    s   z _BaseRequestContextManager.throwc                 C   s
   | j  S r   )r  r3  r  r   r   r   r3    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  r5  tbc                    s   | j |||I d H  d S r   )r  r  r   r  r5  r  r   r   r   r    s   z$_BaseRequestContextManager.__aexit__)r  Nr   r  r  )r   r   r   	__slots__r   r   r   r0  r   r  r3  r   r  r  r  r   r   r2  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  r2  r  r3  r  r   r   r   r    s   z(_SessionRequestContextManager.__aenter__r  r5  r  c                    s.   | j d usJ | j   | j I d H  d S r   )r  r3  r  r  r   r   r   r    s   
z'_SessionRequestContextManager.__aexit__)r   r   r   r  r   rC   rf   r   r  r   r   r2  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   rh     s   rh   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_closerr   r   )r   rr   r   r   r   r   )rM   rf   rZ  rV   r  r  )r  r  r   r   r   r  r   r'  r   r   r   rh     s    -

	)r  r   r  r  rq   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[   http_websocketr\   r]   r^   tracingr_   r`   typedefsra   rb   rc   rd   re   __all__r   ri   r  rm   rn   srg   r   r   r   rC  r   r  r   r  rf   r  r  r  r  r  r  rh   r   r   r   r   <module>   s    X|(
3          Z$!