o
    Rh                  5   @   sL  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  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l/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI ddlJmKZKmLZLmMZMmNZNmOZO ddlPmQZQ ddlRmSZSmTZTmUZUmVZVmWZW ddlXmYZY ddlZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZc ddl+mdZdmeZemfZfmgZg ddlhmiZimjZjmkZkmlZl ddlmmnZn ddlompZpmqZq ddlrmsZsmtZtmuZumvZv dZwer3ddlxmyZy ndZyejzdkrDerDddlm{Z{ G dd deddZ|e!j}ddddG d d! d!Z~e~d"dZee~ ed#< eh d$Zed%ZeeLegef ZG d&d' d'ZG d(d) d)eeeef ee ZG d*d+ d+eeL ZG d,d- d-eeQ ZG d.d/ d/Zdddddddd0dddddddebde+jdddd1d1d2d3ed4evd5eeeef  d6ed7ed8eeu d9eee  d:ee] d;ed<ed=ee d>ee d?ed@ee dAedBeev dCee] dDe e~ef dEeet dFeedGeeT dHee dIeej dJedKedLef4dMdNZdS )OzHTTP Client for asyncio.    N)suppress)TracebackType)TYPE_CHECKINGAny	AwaitableCallable	CoroutineFinal	FrozenSet	GeneratorGenericIterableListMappingOptionalSetTupleType	TypedDictTypeVarUnion)CIMultiDict	MultiDictMultiDictProxyistr)URL   )hdrshttppayload)AbstractCookieJar)ClientConnectionErrorClientConnectorCertificateErrorClientConnectorErrorClientConnectorSSLErrorClientErrorClientHttpProxyErrorClientOSErrorClientPayloadErrorClientProxyConnectionErrorClientResponseErrorClientSSLErrorConnectionTimeoutErrorContentTypeError
InvalidURLInvalidUrlClientErrorInvalidUrlRedirectClientErrorNonHttpUrlClientErrorNonHttpUrlRedirectClientErrorRedirectClientErrorServerConnectionErrorServerDisconnectedErrorServerFingerprintMismatchServerTimeoutErrorSocketTimeoutErrorTooManyRedirectsWSServerHandshakeError)ClientRequestClientResponseFingerprintRequestInfo_merge_ssl_params)ClientWebSocketResponse)HTTP_AND_EMPTY_SCHEMA_SETBaseConnectorNamedPipeConnectorTCPConnectorUnixConnector)	CookieJar)		_SENTINELDEBUG	BasicAuthTimeoutHandleceil_timeoutget_env_proxy_for_urlmethod_must_be_empty_bodysentinelstrip_auth_from_url)WS_KEYHttpVersionWebSocketReaderWebSocketWriter)WSHandshakeError	WSMessage
ws_ext_genws_ext_parse)FlowControlDataQueue)TraceTraceConfig)JSONEncoderLooseCookiesLooseHeadersStrOrURL)&r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r3   r1   r0   r2   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   rB   rD   rE   rC   r@   ClientSessionClientTimeoutrequest)
SSLContext      )Unpackc                   @   s  e Zd ZU eeeeeef f edf 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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< dS )_RequestOptionsNparamsdatajson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)__name__
__module____qualname__r   r   strint__annotations__r   r\   r]   r   rI   boolr   r<   r   r^   rb   r=    r   r   P/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/aiohttp/client.pyrg      s4   
 " rg   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 )r`   Nr   connect	sock_readsock_connect   ceil_threshold)r   r   r   r   r   floatr   r   r   r   r   r   r   r   r   r`      s   
 r`   i,  DEFAULT_TIMEOUT>   GETPUTHEADTRACEDELETEOPTIONS_RetTypec                ?       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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e dee deej 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'df6d(d)Z-d*ed  d'dfd+d,Z.e/rd-ed.e0d'df fd/d0Z1e2fd1e0d'dfd2d3Z3e4j5d4kre6rd5ed6ed7e7e8 d'd8fd9d:Z9nd5ed6ed7e0d'd8fd;d:Z9d<ed'e:fd=d>Z;ddddddddd?dddddddedddddddddddd@d5ed<edAee<eef  dBe0dCe0dee dee deee  dee dDe!dEe+dFee dGee! dHe!de"de!e#ege$d f f dIe!dJee dKee de"e(e&f dLee! dMee= dNee> dOe"e>e!e?f dPee dQee dRee<eef  d#ee+ dee! d$ee+ d%ee+ d'ef>dSdTZ@eAjBdUdVddddddddddddddddWdXdYd6ed5edZee de%d[ee% d\e!d]e!d^ee% dee d_ee dAee<eef  dee dJee dKee dOe"e>e!e?f dLee! dMee= dNee> dQee dFe+d`e+d'daf,dbdcZCeAjBdUdVddddddddddddddddWdXdYd6ed5edZee de%d[ee% d\e!d]e!d^ee% dee d_ee dAee<eef  dee dJee dKee dOe"e>e!e?f dLee! dMee= dNee> dQee dFe+d`e+d'ef,dddeZDdee d'dffdgdhZEe4j5d4kre6rd6ed7e7e8 d'd8fdidjZFd6ed7e7e8 d'd8fdkdlZGd6ed7e7e8 d'd8fdmdnZHd6ed7e7e8 d'd8fdodpZId6ed7e7e8 d'd8fdqdrZJd6ed7e7e8 d'd8fdsdtZKd6ed7e7e8 d'd8fdudvZLnkddwd6edDe!d7e0d'd8fdxdjZFddwd6edDe!d7e0d'd8fdydlZGddwd6edDe!d7e0d'd8fdzdnZHdd{d6edBe0d7e0d'd8fd|dpZIdd{d6edBe0d7e0d'd8fd}drZJdd{d6edBe0d7e0d'd8fd~dtZKd6ed7e0d'd8fddvZLdddZMeNd'e!fddZOeNd'ee fddZPeNd'e fddZQeNd'eRe+e+f fddZSeNd'e!fddZTeTjUd.e!d'dfddZTeNd'ejfddZVeNd'e(fddZWeNdddZXeNd'eYeZ fddZ[eNd'ee fddZ\eNd'efddZ]eNd'e!fddZ^eNd'e"e!e#ege$d f f fddZ_eNd'e!fddZ`eNd'e!fddZaeNd'e)e* fddZbdddZcdddZddeeee  deee deef d'dfddZgdddZhdeeee  deee deef d'dfddZi  ZjS )r_   z/First-class interface for making HTTP requests.)	_base_url_source_traceback
_connectorrequote_redirect_url_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_charsetNr   r   TF     c                 C   s   dS )Nzutf-8r   )rbr   r   r   <lambda>  s    zClientSession.<lambda>)	connectorlooprk   rl   rm   rn   json_serializerequest_classresponse_classws_response_classversion
cookie_jarconnector_ownerrt   read_timeoutconn_timeoutrx   r~   	trust_envr   trace_configsr}   r   r   fallback_charset_resolverbase_urlr   r   rk   rl   rm   rn   r   r   r   r   r   r   r   rt   r   r   rx   r~   r   r   r   r}   r   r   r   returnc                C   sL  d | _ |d u r|d ur|j}|pt }|d u st|tr!|| _nt|| _| j | jks2J d|tu s:|d u rht	| _
|turRtjdtdd tj| j
|d| _
|d urgtj| j
|d| _
tjdtdd n"t|tswtdt| d	|| _
|turtd
|d urtd|d u rt|d}|j|urtd|| _| rttd| _|d u rt|d}|| _|d ur| j| || _ || _|| _|| _ || _!|| _"|| _#|| _$|| _%|| _&|| _'|| _(|rt)|}nt) }|| _*|d urt+dd |D | _,nt+ | _,|	| _-|
| _.|| _/|pg | _0| j0D ]}|1  q|| _2d S )Nz2Only absolute URLs without path part are supportedz8read_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.connectr   z0Session and connector has to use same event loopr   c                 s   s    | ]}t |V  qd S N)r   ).0ir   r   r   	<genexpr>z  s    z)ClientSession.__init__.<locals>.<genexpr>)3r   r   asyncioget_running_loop
isinstancer   r   originrN   r   r   warningswarnDeprecationWarningattrevolver`   
ValueErrortyperD   RuntimeError	get_debug	tracebackextract_stacksys	_getframer   rF   r   update_cookiesr   r   r   r   r   r   r   r   r   r   r   r   r   	frozensetr   r   r   r   r   freezer   )selfr   r   r   rk   rl   rm   rn   r   r   r   r   r   r   r   rt   r   r   rx   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__rc   methodurlr   _RequestContextManagerc                 K      d S r   r   r   r   r  r   r   r   r   ra     s   zClientSession.requestc                 K   s   t | j||fi |S )zPerform HTTP request.)r  _requestr  r   r   r   ra     s   
str_or_urlc                 C   s:   t |}| jd u r|S | s|jdsJ | j|S )N/)r   r   is_absolutepath
startswithjoin)r   r  r  r   r   r   
_build_url  s
   
zClientSession._build_url
   )rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   
verify_sslfingerprintssl_contextry   rz   r{   r|   r}   r~   r   r   rh   ri   rj   ro   rp   rq   rr   rs   ru   rv   rw   r  r  r  ry   rz   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yc }# zt||#d }#~#ww  jd uskJ |"j jjvrvt|"t j}$|d ur|D ]	}%|$t|% q|d urz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|') }+z|+ |t*v },	 t+|"\}"}-|"j,s'|r!t-nt}.|.|"|	r1|-r1td|	d u r8|-}	|	d u r@ j.}	|d urT|	d urTt/j0|v rTtd j12|"}/|d urtt3 }0|04| |02|"}1|1rt|/5|1 |d ur~t|}n j6rt7t8 t9|"\}}W d    n	1 sw   Y   j:||"fi d|d|d|$d|d|/d|	d|!d|d|d|d jd j;d|d|d|+d d|d ur|nd
d|d|d |)d! j<}2z1t=|&j>|&j d4 I d H   jj>|2|)|&d"I d H }3W d   I d H  n1 I d H sw   Y  W n t?j@y5 }4 ztAd#|" |4d }4~4ww |3jBd us>J |3jCd usFJ |3jCjD|+tE||||&jF| jjG||d$	 z2z"|2H|3I d H }5z
|5!|3I d H  W n tIy{   |5J   w W n tIy   |3J   w W n; tKtLfy   |,rd%},Y q  tMy     tNy }4 z|4jOd u rt|4t?j@r tK|4jP |4d }4~4ww  j14|5jQ|5jR |5jSd&v r|
r|)D ]}*|*T||"(|||5I d H  q|d'7 }| U|5 |r||kr|5J  tV| d jWtX| |5jSd(kr|5jYt/jZks'|5jSd)v r9|5jYt/j[kr9t/j\}d }|]t/j^r9|_t/j^ |5j`]t/japG|5j`]t/jb}6|6d u rNno|5c  z
t|6 jd d*}7W n tyo }# zt-|6d+|#d }#~#ww |7j}8|8tevr|5J  tf|6|8s|"g|7}7z|7h }9W n ty }: zt-|7d,|:d }:~:ww |"h |9krd }	|_t/j0d  |7}"i }|5c  q	 W d    n	1 sw   Y  |d u rՈ ji}|d u rntj|r||5I d H  n|r|5k  |(d ur|5jld ur|5jlm|(jn n|(n  tX| |5_o|)D ]}*|*p||"(|||5I d H  q|5W S  tIyP }# z"|'J  |(r7|(n  d }(|)D ]}*|*q||"(|||#I d H  q9 d }#~#ww )-NzSession is closedz9data and json parameters can not be used at the same time)dumpszChunk size is deprecated #1615r   r   )r   c                    s    g | ]}t  ||jd qS ))r|   )rY   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 URLrh   rl   rm   ri   rk   rn   r   rq   rr   rs   r   r   rv   rw   timersessionry   rz   r{   tracesr   )r  rx   zConnection timeout to host )	r  skip_payloadru   r~   r   r}   timeout_ceil_thresholdr   r   F)-  .  /  i3  i4  r   r  )r  r  )encodedzHServer attempted redirecting to a location that does not look like a URLzInvalid redirect URL origin)rr   r   r?   r   r   JsonPayloadr   r   r   r   r   r   r   _prepare_headersr  r/   r   schemeallowed_protocol_schema_setr1   setr   addr   r   r.   rN   r   r`   rJ   r   r   r   startr   r   r   r   r   send_request_startupdate_queryr  IDEMPOTENT_METHODSrO   raw_hostr0   r   r   AUTHORIZATIONr   filter_cookiesrF   r   loadr   r   LookupErrorrL   r   r   r   rK   r   r   TimeoutErrorr,   	transportprotocolset_response_paramsrM   r   _timeout_ceil_thresholdsendBaseExceptioncloser'   r5   r%   OSErrorerrnoargsrk   r  statussend_request_redirectappendr9   request_infotupler   	METH_HEAD	METH_POSTMETH_GETgetCONTENT_LENGTHpoprl   LOCATIONURIreleaser   rA   r2   r  r   r   callablert   
connectionadd_callbackcancel_historysend_request_endsend_request_exception);r   r   r  rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   r  r  r  ry   rz   r{   r|   r}   r~   r   r   	redirectshistoryr   r  eskip_headersr   real_timeouttmhandler  tracer  retry_persistent_connectionauth_from_urlerr_exc_clsall_cookiestmp_cookie_jarreq_cookiesreqconnexcrespr_urlparsed_redirect_urlr   redirect_originorigin_val_errr   r  r   r    s\  )





	










	
*




  
O



zClientSession._requestr   g      $@r   i  @ )r   	protocolsrx   receive_timeout	autocloseautoping	heartbeatrn   r   rh   rl   rv   rw   ry   r  r  r  r{   rq   max_msg_sizerc  rd  re  rf  rg  r   rh  _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|S )zInitiate websocket connection.r   rc  rx   rd  re  rf  rg  rn   r   rh   rl   rv   rw   ry   r  r  r  r{   rq   rh  )ri  _ws_connect)r   r  r   rc  rx   rd  re  rf  rg  rn   r   rh   rl   rv   rw   ry   r  r  r  r{   rq   rh  r   r   r   
ws_connect1  sZ   	
zClientSession.ws_connectc          *         sv  |d u r	t  }nt |}tjdtjdtjdi}| D ]
\}}||| qtt	
d}| |tj< |r@d||tj< |
d urI|
|tj< |rUt|d}||tj< |d u rct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rt|j|jd|j|jdd }|rtj|jv rdd |jtj #dD } | D ]}!|!|v r|!} nqd}"|rL|jtj}#|#rHzt$|#\}}"W n" t%yG }$ zt|j|j|$j&d |j|jd|$d }$~$ww d}d}"|j'}%|%d usVJ |%j(}&|&d us`J |d u ri||&_)n|&j)d urvt*||&j)|&_)|%j+}'|'d usJ t,|&d| j-d}(|&.t/|(||( t0|&|'d
||"d})W n t1y   |2   w | j3|(|)|||||| j-||||"dS )N	websocketUpgrade13   ,)rq   z+ssl=None is deprecated, please use ssl=Truer   r   TF)rh   rl   ru   rn   rv   rw   ry   r{   e   zInvalid response status)r   r8  rl    zInvalid upgrade headerupgradezInvalid connection headerzInvalid challenge responsec                 S   s   g | ]}|  qS r   )strip)r   protor   r   r   r    s    z-ClientSession._ws_connect.<locals>.<listcomp>r   r   r   )use_maskrq   
notakeover)rd  rg  rq   client_notakeover)4r   r   UPGRADE
CONNECTIONSEC_WEBSOCKET_VERSIONitems
setdefaultbase64	b64encodeosurandomdecodeSEC_WEBSOCKET_KEYr  SEC_WEBSOCKET_PROTOCOLORIGINrV   SEC_WEBSOCKET_EXTENSIONSr   r   r   r?   ra   r8  r:   r;  rN  rl   r@  lowerSEC_WEBSOCKET_ACCEPThashlibsha1rP   digestsplitrW   rT   r7  rG  r/  r   maxr.  rX   r   
set_parserrR   rS   r3  r4  r   )*r   r  r   rc  rx   rd  re  rf  rg  rn   r   rh   rl   rv   rw   ry   r  r  r  r{   rq   rh  r   default_headerskeyvaluesec_keyextstrr^  r_keymatchr/  resp_protocolsru  rw  compress_hdrsr]  r\  
conn_protor.  readerwriterr   r   r   rj  e  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   r"  r|  r#  )r   rl   resultadded_namesr  r  r   r   r   r  '  s   
zClientSession._prepare_headersc                 K   r  r   r   r   r  r   r   r   r   r@  9     zClientSession.getc                 K   r  r   r   r  r   r   r   options?  r  zClientSession.optionsc                 K   r  r   r   r  r   r   r   headE  r  zClientSession.headc                 K   r  r   r   r  r   r   r   postK  r  zClientSession.postc                 K   r  r   r   r  r   r   r   putQ  r  zClientSession.putc                 K   r  r   r   r  r   r   r   patchW  r  zClientSession.patchc                 K   r  r   r   r  r   r   r   delete]  r  zClientSession.delete)ro   c                K      t | jtj|fd|i|S )zPerform HTTP GET request.ro   )r  r  r   r?  r   r  ro   r   r   r   r   r@  e     c                K   r  )zPerform HTTP OPTIONS request.ro   )r  r  r   METH_OPTIONSr  r   r   r   r  o  r  c                K   r  )zPerform HTTP HEAD request.ro   )r  r  r   r=  r  r   r   r   r  y  r  )ri   c                K   r  )zPerform HTTP POST request.ri   )r  r  r   r>  r   r  ri   r   r   r   r   r       c                K   r  )zPerform HTTP PUT request.ri   )r  r  r   METH_PUTr  r   r   r   r    r  c                K   r  )zPerform HTTP PATCH request.ri   )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   r4  r   r   r   r   r4    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   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     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     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     s   zClientSession.loopc                 C   r  )zTimeout for the session.)r   r  r   r   r   rx     r  zClientSession.timeoutc                 C   r  )z*The default headers of the client session.)r   r  r   r   r   rl     r  zClientSession.headersc                 C   r  )z2Headers for which autogeneration should be skipped)r   r  r   r   r   rm     r  zClientSession.skip_auto_headersc                 C   r  )z2An object that represents HTTP Basic Authorization)r   r  r   r   r   rn     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   rt     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   )r4  r  r   r   r   	__aexit__(  s   zClientSession.__aexit__r   r   N)r   r  )r   r_   )kr   r   r   __doc__r   r   r   r   r   StackSummaryr   r   rB   rj   r  r;   r<   r@   r   HttpVersion11rN   r^   r   AbstractEventLoopr\   r]   r   r   rI   r[   r   rQ   r    r   r   r   r   r   rG   objectr`   r   rZ   r   _CharsetResolverr   r   rH   r   r   r   r   r   version_infor   rf   rg   ra   r   r  r   bytesrb   r=   r  r   r?  rk  rj  r  r@  r  r  r  r  r  r  r4  propertyr   r   r   r   r   r   setterr   rx   rl   r
   r   rm   rn   r   r   rt   r~   r   r   r  r  r3  r   r  r  r  __classcell__r   r   r   r   r_      s   
 
	




 
	
	

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

	
r_   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S )_BaseRequestContextManager_coro_respcoroasyncio.Future[Any]Nr   c                 C   s
   || _ d S r   )r  )r   r  r   r   r   r   5     
z#_BaseRequestContextManager.__init__argc                 C   s   | j |S r   )r  r2  )r   r  r   r   r   r2  8  s   z_BaseRequestContextManager.sendr7  r   c                 O   s   | j j|i |S r   )r  throw)r   r7  r   r   r   r   r  ;  s   z _BaseRequestContextManager.throwc                 C   s
   | j  S r   )r  r4  r  r   r   r   r4  >  r  z _BaseRequestContextManager.closec                 C   s   | j  }|S r   )r  	__await__)r   retr   r   r   r  A  s   
z$_BaseRequestContextManager.__await__c                 C   s   |   S r   )r  r  r   r   r   __iter__E  r  z#_BaseRequestContextManager.__iter__c                    s   | j I d H | _| jS r   r  r  r   r   r   r  H  s   z%_BaseRequestContextManager.__aenter__)r  Nr   r  r  )r   r   r   	__slots__r   r   r   r2  r   r  r4  r   r  r  r  r   r   r   r   r  1  s    

r  c                   @   :   e Zd ZdZdeee  dee dee ddfddZdS )	r  r   r  r]  tbr   Nc                    s    | j   | j  I d H  d S r   )r  rE  wait_for_closer   r  r]  r  r   r   r   r  P  s   
z _RequestContextManager.__aexit__	r   r   r   r  r   r   r3  r   r  r   r   r   r   r  M      
r  c                   @   r  )	ri  r   r  r]  r  r   Nc                    s   | j  I d H  d S r   )r  r4  r  r   r   r   r  b  s   z"_WSRequestContextManager.__aexit__r  r   r   r   r   ri  _  r  ri  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   o  s   
z&_SessionRequestContextManager.__init__c                    s:   z| j I d H | _W | jS  ty   | j I d H   w r   )r  r  r3  r  r4  r  r   r   r   r  x  s   z(_SessionRequestContextManager.__aenter__r  r]  r  c                    s.   | j d usJ | j   | j I d H  d S r   )r  r4  r  r  r   r   r   r    s   
z'_SessionRequestContextManager.__aexit__)r   r   r   r  r   r<   r_   r   r  r   r   r3  r   r  r   r   r   r   r  k  s&    
		
r  r  r   )rh   ri   rj   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   rk   r   r   r}   r   r   r   r   r  rh   ri   rj   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   rk   r   r   r}   r   r   r   r   c                C   s   d}|du rd}t |dd}t||||||d}t|j| |fi d|d|d|d	|d
|d|d|d|	d|
d|d|d|d|d|d|d|d|d||S )a  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
      >>> resp = await aiohttp.request('GET', 'http://python.org/')
      >>> resp
      <ClientResponse(python.org/) [200]>
      >>> data = await resp.read()
    FNT)r   force_close)r   rk   r   rx   r   r   rh   ri   rj   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   r}   r   r   )rD   r_   r  r  )r   r  rh   ri   rj   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   rk   r   r   r}   r   r   r   r   r  r   r   r   ra     sn   @		
ra   )r  r   r~  r  rj   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   	multidictr   r   r   r   yarlr   rr  r   r   r   abcr    client_exceptionsr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   client_reqrepr;   r<   r=   r>   r?   	client_wsr@   r   rA   rB   rC   rD   rE   	cookiejarrF   helpersrG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   http_websocketrT   rU   rV   rW   streamsrX   tracingrY   rZ   typedefsr[   r\   r]   r^   __all__ry   rb   r  rf   rg   sr`   r   r   r   r'  r   r  r   r  r_   r  r  ri  r  r  r   r   r  r  ra   r   r   r   r   <module>   s   Tp,/         _%
	

