a
    Rf                     @   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  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rfddlxmyZy ndZyejzdkrerd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eeveeeef  eeeeu eee  ee] eeee ee eee eeev ee] e e~ef eet eeeeT ee eej eeed3d4d5ZdS )6z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   G/var/www/ai-form-bot/venv/lib/python3.9/site-packages/aiohttp/client.pyrg      s2   
" rg   FtotalT)Z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>   DELETEGETPUTHEADOPTIONSTRACE_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ee ee eej ee ee eee  ee eee ee ee eee  e!e"e!e#ege$d f f e"e%e&f ee% e"e'e(f e!e!e!ee)e*  e+e+e+e,ddddZ-ed  ddddZ.e/rRee0dd fddZ1e2fe0ddddZ3e4j5dkre6reee7e8 ddddZ9neee0ddddZ9ee:d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#eeee<eef  e0e0ee ee eee  ee e!e+ee ee! e!e"de!e#ege$d f f e!ee ee e"e(e&f ee! ee= ee> e"e>e!e?f ee ee ee<eef  ee+ ee! ee+ ee+ ed$d%d&Z@eAjBd'd(dddddddddddddddd)d*d+eeee e%ee% e!e!ee% ee ee ee<eef  ee ee ee e"e>e!e?f ee! ee= ee> ee e+e+d,d-d.d/ZCeAjBd'd(dddddddddddddddd)d*d+eeee e%ee% e!e!ee% ee ee ee<eef  ee ee ee e"e>e!e?f ee! ee= ee> ee e+e+ed-d0d1ZDee d2d3d4d5ZEe4j5dkre6ree7e8 dd6d7d8ZFee7e8 dd6d9d:ZGee7e8 dd6d;d<ZHee7e8 dd6d=d>ZIee7e8 dd6d?d@ZJee7e8 dd6dAdBZKee7e8 dd6dCdDZLnddEee!e0ddFdGd8ZFddEee!e0ddFdHd:ZGddEee!e0ddFdId<ZHddJee0e0ddKdLd>ZIddJee0e0ddKdMd@ZJddJee0e0ddKdNdBZKee0dd6dOdDZLddPdQdRZMeNe!dPdSdTZOeNee dPdUdVZPeNe dPdWdXZQeNeRe+e+f dPdYdZZSeNe!dPd[d\ZTeTjUe!dd]d^d\ZTeNejdPd_d`ZVeNe(dPdadbZWeNd2dPdcddZXeNeYeZ dPdedfZ[eNee dPdgdhZ\eNedPdidjZ]eNe!dPdkdlZ^eNe"e!e#ege$d f f dPdmdnZ_eNe!dPdodpZ`eNe!dPdqdrZaeNe)e* dPdsdtZbddPdudvZcddPdwdxZdeeee  eee eef ddydzd{Zgd dPd|d}Zheeee  eee eef ddyd~d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>      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   s\  d | _ |d u r|d ur|j}|p&t }|d u s:t|trB|| _n"t|| _| j | jksdJ d|tu st|d u rt	| _
|turtjdtdd tj| j
|d| _
|d urtj| j
|d| _
tjdtdd nHt|tstdt| d	|| _
|turtd
|d urtd|d u r,t|d}|j|ur@td|| _| rbttd| _|d u rvt|d}|| _|d ur| j| || _ || _|| _|| _ || _!|| _"|| _#|| _$|| _%|| _&|| _'|| _(|rt)|}nt) }|| _*|d urt+dd |D | _,nt+ | _,|	| _-|
| _.|| _/|p8g | _0| j0D ]}|1  qB|| _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  r   z)ClientSession.__init__.<locals>.<genexpr>)3r   r   asyncioZget_running_loop
isinstancer   r   originrN   r   r   warningswarnDeprecationWarningattrZevolver`   
ValueErrortyperD   RuntimeErrorZ	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__)clsr   c                 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valr   c                    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__)	_warningsr   c                 C   sV   | j sRd| i}|jd| tfi | | dd}| jd urF| j|d< | j| d S )NsourcezUnclosed client session zUnclosed client session)Zclient_sessionmessageZsource_traceback)closedr   ResourceWarningr   r   Zcall_exception_handler)r   r   kwargscontextr   r   r   __del__  s    



zClientSession.__del__rc   _RequestContextManager)methodurlr   r   c                 K   s   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_urlr   c                 C   s>   t |}| jd u r|S | s*|jds.J | j|S d 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   )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   r   c          ;         s   j rtdt||||}|d ur6|d ur6tdn|d urNtj| jd}t|tsl|d urlt	
dt d}g }  j}!|pi } |} |}z |}"W n. ty }# zt||#W Y d }#~#n
d }#~#0 0  jd usJ |"j jjvrt|"t j}$|d ur&|D ]}%|$t|% q|d urnzt|}W n0 tyl }# zt||#W Y d }#~#n
d }#~#0 0 |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(|+f |t*v },t+|"\}"}-|"j,sz|rnt-nt}.|.|"|	r|-rtd
|	d u r|-}	|	d u r j.}	|d ur|	d urt/j0|v rtd j12|"}/|d urt3 }0|04| |02|"}1|1r|/5|1 |d ur(t|}n> j6rft7t8 t9|"\}}W d    n1 s\0    Y   j:||"|||$||/|	|!||| j j;|||+ |d ur|nd|||) j<d}2zdt=|&j>|&j d4 I d H 0  jj>|2|)|&dI d H }3W d   I d H  q1 I d H s
0    Y  W n8 t?j@yN }4 ztAd|" |4W Y d }4~4n
d }4~40 0 |3jBd us`J |3jCd uspJ |3jCjD|+tE||||&jF| jjG||d	 zlzH|2H|3I d H }5z|5!|3I d H  W n tIy   |5J   Y n0 W n tIy    |3J   Y n0 W n tKtLfy.   |,r(d},Y qP Y nb tMyB    Y nN tNy }4 z4|4jOd u rnt|4t?j@rn tK|4jP |4W Y d }4~4n
d }4~40 0  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r4|5jYt/jZksN|5jSdv rr|5jYt/j[krrt/j\}d }|]t/j^rr|_t/j^ |5j`]t/jap|5j`]t/jb}6|6d u rqn|5c  zt|6 jd d}7W n2 ty }# zt-|6d|#W Y d }#~#n
d }#~#0 0 |7j}8|8tevr|5J  tf|6n|8s"|"g|7}7z|7h }9W n2 ty` }: zt-|7d|:W Y d }:~:n
d }:~:0 0 |"h |9krd }	|_t/j0d  |7}"i }|5c  qPqqPW d    n1 s0    Y  |d u rΈ ji}|d u rn(tj|r||5I d H  n|r|5k  |(d ur0|5jld ur(|5jlm|(jn n|(n  tX| |5_o|)D ]"}*|*p||"(|||5I d H  q>|5W S  tIy }# zP|'J  |(r|(n  d }(|)D ]"}*|*q||"(|||#I d H  q W Y d }#~#n
d }#~#0 0 d S )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   Ztrace_config_ctx)r   r   r   r|   r   r   
<listcomp>/  s   
z*ClientSession._request.<locals>.<listcomp>z<Cannot combine AUTH argument with credentials encoded in URLzTCannot combine AUTHORIZATION header with AUTH argument or credentials encoded in URLT)rh   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  Zskip_payloadru   r~   r   r}   Z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   ZJsonPayloadr   r   r   r   r   r   r   _prepare_headersr  r/   r   schemeZallowed_protocol_schema_setr1   setr   addr   r   r.   rN   r   r`   rJ   r   r   r   startr   r   r   r   r   Zsend_request_startZupdate_queryr  IDEMPOTENT_METHODSrO   Zraw_hostr0   r   r   ZAUTHORIZATIONr   Zfilter_cookiesrF   r   loadr   r   LookupErrorrL   r   r   r   rK   r   r   TimeoutErrorr,   	transportprotocolZset_response_paramsrM   r   Z_timeout_ceil_thresholdsendBaseExceptioncloser'   r5   r%   OSErrorerrnoargsrk   r   statusZsend_request_redirectappendr9   request_infotupler   	METH_HEAD	METH_POSTMETH_GETgetZCONTENT_LENGTHpoprl   ZLOCATIONURIreleaser   rA   r2   r  r   r   callablert   
connectionZadd_callbackcancelZ_historyZsend_request_endZ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   Z	redirectshistoryr   r   eZskip_headersr   Zreal_timeouttmhandler  tracer  Zretry_persistent_connectionZauth_from_urlZerr_exc_clsZall_cookiesZtmp_cookie_jarZreq_cookiesreqconnexcrespZr_urlZparsed_redirect_urlr  Zredirect_originZorigin_val_errr   r  r   r     s   )

 


 




	








,>"






(




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_size_WSRequestContextManager)r   r   r=  rx   r>  r?  r@  rA  rn   r   rh   rl   rv   rw   ry   r  r  r	  r{   rq   rB  r   c                C   s8   t | j|||||||||	|
|||||||||||dS )zInitiate websocket connection.r<  )rC  _ws_connect)r   r   r   r=  rx   r>  r?  r@  rA  rn   r   rh   rl   rv   rw   ry   r  r  r	  r{   rq   rB  r   r   r   
ws_connect1  s2    zClientSession.ws_connectc          *         s  |d u rt  }nt |}tjdtjdtjdi}| D ]\}}||| q6tt	
d}| |tj< |r~d||tj< |
d ur|
|tj< |rt|d}||tj< |d u rtjdtdd	 d
}t||||}| j||||d|	||||d
I d H }zT|jdkr t|j|jd|j|jd|jtjd dkrTt|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|!} q,qd}"|r|jtj}#|#rzt$|#\}}"W nH t%y }$ z.t|j|j|$j&d |j|jd|$W Y d }$~$n
d }$~$0 0 nd}d}"|j'}%|%d usJ |%j(}&|&d usJ |d u r||&_)n|&j)d urt*||&j)|&_)|%j+}'|'d usJ t,|&d| j-d}(|&.t/|(||( t0|&|'d
||"d})W n t1yj   |2   Y n&0 | j3|(|)|||||| j-||||"dS d S )NZ	websocketZUpgradeZ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   r%  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   )Zuse_maskrq   
notakeover)r>  rA  rq   Zclient_notakeover)4r   r   UPGRADEZ
CONNECTIONZSEC_WEBSOCKET_VERSIONitems
setdefaultbase64	b64encodeosurandomdecodeZSEC_WEBSOCKET_KEYr  ZSEC_WEBSOCKET_PROTOCOLZORIGINrV   ZSEC_WEBSOCKET_EXTENSIONSr   r   r   r?   ra   r%  r:   r'  r3  rl   r,  lowerZSEC_WEBSOCKET_ACCEPThashlibsha1rP   digestsplitrW   rT   r$  r1  r  r   maxr  rX   r   
set_parserrR   rS   r   r!  r   )*r   r   r   r=  rx   r>  r?  r@  rA  rn   r   rh   rl   rv   rw   ry   r  r  r	  r{   rq   rB  r   default_headerskeyvalueZsec_keyZextstrr;  Zr_keymatchr  Zresp_protocolsrL  rM  Zcompress_hdrsr:  r9  Z
conn_protor  readerwriterr   r   r   rD  e  s   


	
	



zClientSession._ws_connectzCIMultiDict[str])rl   r   c                 C   sh   t | j}|rdt|ttfs$t |}t }| D ]0\}}||v rP||| q2|||< || q2|S )z3Add default headers and transform it to CIMultiDict)r   r   r   r   r   r  rO  r  )r   rl   resultZadded_namesr^  r_  r   r   r   r  '  s    
zClientSession._prepare_headers)r   r   r   c                 K   s   d S r   r   r   r   r   r   r   r   r,  9  s    zClientSession.getc                 K   s   d S r   r   rd  r   r   r   options?  s    zClientSession.optionsc                 K   s   d S r   r   rd  r   r   r   headE  s    zClientSession.headc                 K   s   d S r   r   rd  r   r   r   postK  s    zClientSession.postc                 K   s   d S r   r   rd  r   r   r   putQ  s    zClientSession.putc                 K   s   d S r   r   rd  r   r   r   patchW  s    zClientSession.patchc                 K   s   d S r   r   rd  r   r   r   delete]  s    zClientSession.delete)ro   )r   ro   r   r   c                K   s   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  s    c                K   s   t | jtj|fd|i|S )zPerform HTTP OPTIONS request.ro   )r   r   r   ZMETH_OPTIONSrk  r   r   r   re  o  s    c                K   s   t | jtj|fd|i|S )zPerform HTTP HEAD request.ro   )r   r   r   r)  rk  r   r   r   rf  y  s    )ri   )r   ri   r   r   c                K   s   t | jtj|fd|i|S )zPerform HTTP POST request.ri   )r   r   r   r*  r   r   ri   r   r   r   r   rg    s    c                K   s   t | jtj|fd|i|S )zPerform HTTP PUT request.ri   )r   r   r   ZMETH_PUTrl  r   r   r   rh    s    c                K   s   t | jtj|fd|i|S )zPerform HTTP PATCH request.ri   )r   r   r   Z
METH_PATCHrl  r   r   r   ri    s    c                 K   s   t | jtj|fi |S )zPerform HTTP DELETE request.)r   r   r   ZMETH_DELETErd  r   r   r   rj    s    r   c                    s0   | j s,| jdur&| jr&| j I dH  d| _dS )zMClose underlying connector.

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

        A readonly property.
        N)r   r   rn  r   r   r   r     s    zClientSession.closedc                 C   s   | j S )z(Connector instance used for the session.r   rn  r   r   r   r     s    zClientSession.connectorc                 C   s   | j S )zThe session cookies.)r   rn  r   r   r   r     s    zClientSession.cookie_jarc                 C   s   | j S )z"The session HTTP protocol version.)r   rn  r   r   r   r     s    zClientSession.versionc                 C   s   | j S ))Do URL requoting on redirection handling.)r   rn  r   r   r   r     s    z"ClientSession.requote_redirect_url)r   r   c                 C   s   t jdtdd || _dS )rp  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   rn  r   r   r   r     s    zClientSession.loopc                 C   s   | j S )zTimeout for the session.)r   rn  r   r   r   rx     s    zClientSession.timeoutc                 C   s   | j S )z*The default headers of the client session.)r   rn  r   r   r   rl     s    zClientSession.headersc                 C   s   | j S )z2Headers for which autogeneration should be skipped)r   rn  r   r   r   rm     s    zClientSession.skip_auto_headersc                 C   s   | j S )z2An object that represents HTTP Basic Authorization)r   rn  r   r   r   rn     s    zClientSession.authc                 C   s   | j S )zJson serializer callable)r   rn  r   r   r   r     s    zClientSession.json_serializec                 C   s   | j S )z-Should connector be closed on session closing)r   rn  r   r   r   r     s    zClientSession.connector_ownerc                 C   s   | j S )zGShould `ClientResponse.raise_for_status()` be called for each response.)r   rn  r   r   r   rt     s    zClientSession.raise_for_statusc                 C   s   | j S )z7Should the body response be automatically decompressed.)r   rn  r   r   r   r~     s    zClientSession.auto_decompressc                 C   s   | j S )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   rn  r   r   r   r     s    zClientSession.trust_envc                 C   s   | j S )z7A list of TraceConfig instances used for client tracing)r   rn  r   r   r   r     s    zClientSession.trace_configsc                 C   s
   d| _ dS )zwDetach connector from session without closing the former.

        Session is switched to closed state anyway.
        Nro  rn  r   r   r   detach  s    zClientSession.detachc                 C   s   t dd S )NzUse async with instead)	TypeErrorrn  r   r   r   	__enter__  s    zClientSession.__enter__)exc_typeexc_valexc_tbr   c                 C   s   d S r   r   r   rt  ru  rv  r   r   r   __exit__  s    zClientSession.__exit__c                    s   | S r   r   rn  r   r   r   
__aenter__%  s    zClientSession.__aenter__c                    s   |   I d H  d S r   )r!  rw  r   r   r   	__aexit__(  s    zClientSession.__aexit__)N)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+  rE  rD  r  r,  re  rf  rg  rh  ri  rj  r!  propertyr   r   r   r   r   r   setterr   rx   rl   r
   r   rm   rn   r   r   rt   r~   r   r   rq  rs  r   r   rx  ry  rz  __classcell__r   r   r   r   r_      s  
 



 



  w8 C			
		
	
r_   c                   @   s   e Zd ZdZeddef ddddZddddd	Zeedd
ddZ	ddddZ
eedef dddZeedef dddZedddZdS )_BaseRequestContextManager_coro_respasyncio.Future[Any]N)coror   c                 C   s
   || _ d S r   )r  )r   r  r   r   r   r   5  s    z#_BaseRequestContextManager.__init__)argr   c                 C   s   | j |S r   )r  r  )r   r  r   r   r   r  8  s    z_BaseRequestContextManager.send)r$  r   r   c                 O   s   | j j|i |S r   )r  throw)r   r$  r   r   r   r   r  ;  s    z _BaseRequestContextManager.throwrm  c                 C   s
   | j  S r   )r  r!  rn  r   r   r   r!  >  s    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  rn  r   r   r   __iter__E  s    z#_BaseRequestContextManager.__iter__c                    s   | j I d H | _| jS r   r  rn  r   r   r   ry  H  s    z%_BaseRequestContextManager.__aenter__)r   r   r   	__slots__r   r   r   r  r   r  r!  r   r  r  ry  r   r   r   r   r  1  s   r  c                   @   s4   e Zd ZdZeee  ee ee ddddZdS )r   r   Nrt  r:  tbr   c                    s   | j   | j  I d H  d S r   )r  r/  Zwait_for_closer   rt  r:  r  r   r   r   rz  P  s    
z _RequestContextManager.__aexit__	r   r   r   r  r   r   r   r   rz  r   r   r   r   r   M  s   
r   c                   @   s4   e Zd ZdZeee  ee ee ddddZdS )rC  r   Nr  c                    s   | j  I d H  d S r   )r  r!  r  r   r   r   rz  b  s    z"_WSRequestContextManager.__aexit__r  r   r   r   r   rC  _  s   
rC  c                   @   s^   e Zd ZdZeddef eddddZeddd	Ze	e
e  e	e e	e dd
ddZdS )_SessionRequestContextManagerr  r  _sessionr  N)r  r  r   c                 C   s   || _ d | _|| _d S r   r  )r   r  r  r   r   r   r   o  s    z&_SessionRequestContextManager.__init__rm  c                    sB   z| j I d H | _W n$ ty6   | j I d H   Y n0 | jS d S r   )r  r  r   r  r!  rn  r   r   r   ry  x  s    z(_SessionRequestContextManager.__aenter__r  c                    s,   | j d usJ | j   | j I d H  d S r   )r  r!  r  r  r   r   r   rz    s    
z'_SessionRequestContextManager.__aexit__)r   r   r   r  r   r<   r_   r   ry  r   r   r   r   rz  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   sh   d}|du rd}t |dd}t||||||d}t|j| |||||||||	|
|||||||||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   Z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     sJ    @	ra   )r{  r   rQ  rW  rj   rS  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   Z	multidictr   r   r   r   Zyarlr   rI  r   r   r   abcr    Z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:   Zclient_reqrepr;   r<   r=   r>   r?   Z	client_wsr@   r   rA   rB   rC   rD   rE   	cookiejarrF   ZhelpersrG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   Zhttp_websocketrT   rU   rV   rW   ZstreamsrX   tracingrY   rZ   Ztypedefsr[   r\   r]   r^   __all__ry   rb   r  rf   rg   sr`   r   r   r   r  r   r  r   r  r_   r  r   rC  r  r}  r   r   r  r~  ra   r   r   r   r   <module>   s   Tp,/        _ %

