U
    ;gR                     @   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@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZK ddlLmMZMmNZNmOZOmPZPmQZQ ddlRmSZS ddlTmUZUmVZVmWZWmXZXmYZY ddlZm[Z[ ddl\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZd ddl+meZemfZfmgZgmhZh ddlimjZjmkZkmlZlmmZm ddlnmoZo ddlpmqZqmrZr ddlsmtZtmuZumvZvmwZwmxZx dZyernddlzm{Z{ ndZ{ej|d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!Zed"d#d$Zee ed%< ed&d'd(d)d*d+hZed,eNeSZeeNegef ZG d-d. d.ZG d/d0 d0eeeef ee ZeeN ZeeS ZG d1d2 d2Zdddddddd3dddddddecde+jdddd4d4d5eexeweeeev eee  ee_ eeee ee eee eeex ee_ e eef eeu efeeV ee eej eeed6d7d8ZdS )9z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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WSServerHandshakeError)ClientRequestClientResponseFingerprintRequestInfo_merge_ssl_params)ClientWebSocketResponse)HTTP_AND_EMPTY_SCHEMA_SETBaseConnectorNamedPipeConnectorTCPConnectorUnixConnector)	CookieJar)	_SENTINELDEBUG	BasicAuthTimeoutHandle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QueryStrOrURL)(r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r5   r3   r2   r4   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rD   rF   rG   rE   rB   ClientSessionClientTimeoutrequest)
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< 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)__name__
__module____qualname__r_   __annotations__r   r   r]   r^   r   strrK   boolintr   r>   r   r`   rd   r?   r    r   r   N/opt/bot/vods_filmes/script/venv/lib/python3.8/site-packages/aiohttp/client.pyri      s2   
 ri   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 )rb   Nr   connect	sock_readsock_connect   ceil_threshold)r   r   r   r   r   floatr   r   r   r   r   r   r   r   r   rb      s
   
rb   i,     )r   r   DEFAULT_TIMEOUTGETHEADOPTIONSTRACEPUTDELETE_RetTypec                !       s  e Zd ZU dZedddddddd	d
ddddddddddddddddg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/ree0dd) fd*d+Z1e2fe0dd,d-d.Z3e4j5d/kre6reee7e8 d0d1d2d3Z9neee0d0d1d4d3Z9ee:d5d6d7Z;ddddddddd8dddddddedddddddddddd9eee<e0e0ee ee eee  ee e!e+e"ee!df 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e0f  ee+ ee! ee+ ee+ ed:d;d<ZAeBjCd=d>dddddddddddddddd?d@dAeeee e%ee% 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+dBdCdDdEZDeBjCd=d>dddddddddddddddd?d@dAeeee e%ee% 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+edCdFdGZEee dHdIdJdKZFe4j5d/kre6ree7e8 d0dLdMdNZGee7e8 d0dLdOdPZHee7e8 d0dLdQdRZIee7e8 d0dLdSdTZJee7e8 d0dLdUdVZKee7e8 d0dLdWdXZLee7e8 d0dLdYdZZMndd[ee!e0d0d\d]dNZGdd[ee!e0d0d\d^dPZHdd[ee!e0d0d\d_dRZIdd`ee0e0d0dadbdTZJdd`ee0e0d0dadcdVZKdd`ee0e0d0dadddXZLee0d0dLdedZZMddfdgdhZNeOe!dfdidjZPeOee dfdkdlZQeOe dfdmdnZReOeSe+e+f dfdodpZTeOe!dfdqdrZUeUjVe!ddsdtdrZUeOejdfdudvZWeOe(dfdwdxZXeOdHdfdydzZYeOeZe[ dfd{d|Z\eOee dfd}d~Z]eOedfddZ^eOe!dfddZ_eOe"e!e#ege$d f f dfddZ`eOe!dfddZaeOe!dfddZbeOe)e* dfddZcddfddZdddfddZeeeef  eef eeg ddddZhd dfddZieeef  eef eeg ddddZj  ZkS )ra   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_charsetNTF     c                 C   s   dS )Nzutf-8r   )rbr   r   r   <lambda>      zClientSession.<lambda>)	connectorlooprm   rn   ro   rp   json_serializerequest_classresponse_classws_response_classversion
cookie_jarconnector_ownerrv   read_timeoutconn_timeoutrz   r   	trust_envr   trace_configsr   r   r   fallback_charset_resolver)base_urlr   r   rm   rn   ro   rp   r   r   r   r   r   r   r   rv   r   r   rz   r   r   r   r   r   r   r   r   returnc                C   sX  d | _ |d kr|d k	r|j}|p&t }|d ks:t|trB|| _n"t|| _| j | jksdtd|t	kst|d krt
| _|t	k	rtjdtdd tj| j|d| _|d k	rtj| j|d| _tjdtdd nHt|tstdt| d	|| _|t	k	rtd
|d k	rtd|d kr,t|d}|j|k	r@td|| _| rbttd| _|d krvt|d}|| _|r| j| || _ || _|| _ || _!|| _"|| _#|| _$|| _%|| _&|| _'|| _(|| _)|rt*|}nt* }|| _+|d k	rt,dd |D | _-nt, | _-|	| _.|
| _/|| _0|p4g | _1| j1D ]}|2  q>|| _3d 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>}  s     z)ClientSession.__init__.<locals>.<genexpr>)4r   r   asyncioZget_running_loop
isinstancer   r   originAssertionErrorrO   r   r   warningswarnDeprecationWarningattrZevolverb   
ValueErrortyperF   RuntimeErrorZ	get_debug	tracebackextract_stacksys	_getframer   rH   r   update_cookiesr   r   r   r   r   r   r   r   r   r   r   r   r   	frozensetr   r   r   r   r   freezer   )selfr   r   r   rm   rn   ro   rp   r   r   r   r   r   r   r   rv   r   r   rz   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 k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   sR   | j sNd| i}|jd| tf| | dd}| jd k	rB| 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__re   _RequestContextManager)methodurlr   r   c                 K   s   d S r   r   r   r   r   r   r   r   r   rc     s    zClientSession.requestc                 K   s   t | j||f|S )zPerform HTTP request.)r   _requestr  r   r   r   rc     s    )
str_or_urlr   c                 C   s<   t |}| jd kr|S |js(|jds,t| j|S d S )N/)r   r   absolutepath
startswithr   join)r   r  r   r   r   r   
_build_url  s
    
zClientSession._build_url
   )rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   
verify_sslfingerprintssl_contextr{   r|   r}   r~   r   r   r   r   )r   r  rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r  r  r  r{   r|   r}   r~   r   r   r   r   r   c          ;         s   j rtdt||||}|d k	r6|d k	r6tdn|d k	rNtj| jd}t|tsl|d k	rlt	
dt d}g }  j}!|pi } |}z |}"W n, tk
r }# zt||#W 5 d }#~#X Y nX  jd k	st|"j jjkrt|"t j}$|d k	r|D ]}%|$t|% q|d kr*d }nF |}zt|}W n. tk
rn }# zt||#W 5 d }#~#X Y nX |tkr j}&nt|tst|d}&n|}&t j|&j |&j!d}'|'" }(|d krʈ j#}|d krڈ j$}|d kr j%}|d kr j&} fdd	 j'D })|)D ] }*|*(||")||I d H  q|'* }+z|+( |t+k},t,|"\}"}-|"j-s||rpt.nt}.|.|"| s|	r|-rtd
|	d ks| r|-d k	r|-}	|	d krĈ j/}	|d k	r|	d k	rt0j1|krtd j23|"}/|d k	r,t4 }0|05| |03|"}1|1r,|/6|1 |d k	r@t|}n( j7rht8t9 t:|"\}}W 5 Q R X  j;||"|||$r~|$nd ||/|	|!||| j j<|||+ |d k	r|nd|||) j=d}2z jj>|2|)|&dI d H }3W n6 t?j@k
r }4 ztAd|" |4W 5 d }4~4X Y nX |3jBd k	s"t|3jCd k	s2t|3jCjD|+tE||||&jF| jjG||d	 zpzJ|2H|3I d H }5z|5"|3I d H  W n  tIk
r   |5J   Y nX W n  tIk
r   |3J   Y nX W n tKtLfk
r   |,rd},Y qR Y nb tMk
r    Y nL tNk
rV }4 z,|4jOd kr:t|4t?j@r: tK|4jP |4W 5 d }4~4X Y nX |5jQ }rt j25||5jR |5jSdkrl|
rl|)D ]"}*|*T||")|||5I d H  q|d7 }| U|5 |r||kr|5J  tV| d jWtX| |5jSdkr|5jYt0jZks |5jSdkrD|5jYt0j[krDt0j\}d }|]t0j^rD|_t0j^ |5j`]t0jap`|5j`]t0jb}6|6d krrqln|5c  zt|6 jd d}7W n0 tk
r }# zt.|6d|#W 5 d }#~#X Y nX |7j}8|8tekr|5J  tf|6n|8s|"g|7}7z|7h }9W n0 tk
r. }: zt.|7d|:W 5 d }:~:X Y nX |"h |9krPd }	|_t0j1d  |7}"i }|5c  qRqlqRW 5 Q R X |d kr ji}|d krn(tj|r||5I d H  n|r|5k  |(d k	r|5jld k	r|5jlm|(jn n|(n  tX| |5_o|)D ]"}*|*p||")|||5I d H  q|5W S  tIk
r }# zH|'J  |(rL|(n  d }(|)D ]"}*|*q||")|||#I d H  qP W 5 d }#~#X Y nX 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~   )rZ   Ztrace_config_ctx)r   r   r   r~   r   r   
<listcomp>4  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)rj   rn   ro   rk   rm   rp   r   rs   rt   ru   r   r   rx   ry   timersessionr{   r|   r}   tracesr   )r  rz   zConnection timeout to host )	r  Zskip_payloadrw   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   rA   r   r   ZJsonPayloadr   r   r   r   r   r   r   _prepare_headersr	  r1   r   r   schemeZallowed_protocol_schema_setr3   setr   addr   r   r0   rO   r   rb   rL   r   r   r   startr   r   r   r   r   Zsend_request_startZupdate_queryr  IDEMPOTENT_METHODSrP   Zraw_hostr2   r   r   ZAUTHORIZATIONr   Zfilter_cookiesrH   r   loadr   r   LookupErrorrM   r   r   r   r   r   TimeoutErrorr.   	transportprotocolZset_response_paramsrN   r   Z_timeout_ceil_thresholdsendBaseExceptioncloser)   r7   r'   OSErrorerrnoargsrm   r   statusZsend_request_redirectappendr;   request_infotupler   	METH_HEAD	METH_POSTMETH_GETgetZCONTENT_LENGTHpoprn   ZLOCATIONURIreleaser   rC   r4   r  r   r   callablerv   
connectionZadd_callbackcancelZ_historyZsend_request_endZsend_request_exception);r   r   r  rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r  r  r  r{   r|   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   	protocolsrz   receive_timeout	autocloseautoping	heartbeatrp   r   rj   rn   rx   ry   r{   r  r  r  r}   rs   max_msg_size_WSRequestContextManager)r   r   rA  rz   rB  rC  rD  rE  rp   r   rj   rn   rx   ry   r{   r  r  r  r}   rs   rF  r   c                C   s8   t | j|||||||||	|
|||||||||||dS )zInitiate websocket connection.r@  )rG  _ws_connect)r   r   r   rA  rz   rB  rC  rD  rE  rp   r   rj   rn   rx   ry   r{   r  r  r  r}   rs   rF  r   r   r   
ws_connect8  s2    zClientSession.ws_connectc          *         s  |d k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 k	r|
|tj< |rt|d}||tj< |d krtjdtdd	 d
}t||||}| j||||d|	||||d
I d H }zR|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kr,dd |jtj #dD } | D ]}!|!|kr|!} q,qd}"|r|jtj}#|#rzt$|#\}}"W nF t%k
r }$ z&t|j|j|$j&d |j|jd|$W 5 d }$~$X Y nX nd}d}"|j'}%|%d k	st(|%j)}&|&d k	st(|d kr||&_*n|&j*d k	r t+||&j*|&_*|%j,}'|'d k	st(t-|&d| j.d}(|&/t0|(||( t1|&|'d
||"d})W n  t2k
rj   |3   Y n&X | j4|(|)|||||| j.||||"dS d S )NZ	websocketZUpgradeZ13   ,)rs   z+ssl=None is deprecated, please use ssl=Truer   r   TF)rj   rn   rw   rp   rx   ry   r{   r}   e   zInvalid response status)r   r)  rn    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_maskrs   
notakeover)rB  rE  rs   Zclient_notakeover)5r   r   UPGRADEZ
CONNECTIONZSEC_WEBSOCKET_VERSIONitems
setdefaultbase64	b64encodeosurandomdecodeZSEC_WEBSOCKET_KEYr  ZSEC_WEBSOCKET_PROTOCOLZORIGINrW   ZSEC_WEBSOCKET_EXTENSIONSr   r   r   rA   rc   r)  r<   r+  r7  rn   r0  lowerZSEC_WEBSOCKET_ACCEPThashlibsha1rQ   digestsplitrX   rU   r(  r5  r   r"  r   maxr!  rY   r   
set_parserrS   rT   r$  r%  r   )*r   r   r   rA  rz   rB  rC  rD  rE  rp   r   rj   rn   rx   ry   r{   r  r  r  r}   rs   rF  r   default_headerskeyvalueZsec_keyZextstrr?  Zr_keymatchr"  Zresp_protocolsrP  rQ  Zcompress_hdrsr>  r=  Z
conn_protor!  readerwriterr   r   r   rH  l  s      


	
	


  
zClientSession._ws_connectzCIMultiDict[str])rn   r   c                 C   sh   t | j}|rdt|ttfs$t |}t }| D ]0\}}||krP||| q2|||< || q2|S )z3Add default headers and transform it to CIMultiDict)r   r   r   r   r   r  rS  r  )r   rn   resultZadded_namesrb  rc  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   r0  @  s    zClientSession.getc                 K   s   d S r   r   rh  r   r   r   optionsF  s    zClientSession.optionsc                 K   s   d S r   r   rh  r   r   r   headL  s    zClientSession.headc                 K   s   d S r   r   rh  r   r   r   postR  s    zClientSession.postc                 K   s   d S r   r   rh  r   r   r   putX  s    zClientSession.putc                 K   s   d S r   r   rh  r   r   r   patch^  s    zClientSession.patchc                 K   s   d S r   r   rh  r   r   r   deleted  s    zClientSession.delete)rq   )r   rq   r   r   c                K   s   t | jtj|fd|i|S )zPerform HTTP GET request.rq   )r   r  r   r/  r   r   rq   r   r   r   r   r0  l  s     c                K   s   t | jtj|fd|i|S )zPerform HTTP OPTIONS request.rq   )r   r  r   ZMETH_OPTIONSro  r   r   r   ri  v  s     c                K   s   t | jtj|fd|i|S )zPerform HTTP HEAD request.rq   )r   r  r   r-  ro  r   r   r   rj    s     )rk   )r   rk   r   r   c                K   s   t | jtj|fd|i|S )zPerform HTTP POST request.rk   )r   r  r   r.  r   r   rk   r   r   r   r   rk    s    c                K   s   t | jtj|fd|i|S )zPerform HTTP PUT request.rk   )r   r  r   ZMETH_PUTrp  r   r   r   rl    s    c                K   s   t | jtj|fd|i|S )zPerform HTTP PATCH request.rk   )r   r  r   Z
METH_PATCHrp  r   r   r   rm    s    c                 K   s   t | jtj|f|S )zPerform HTTP DELETE request.)r   r  r   ZMETH_DELETErh  r   r   r   rn    s    r   c                    s0   | j s,| jdk	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kp| j jS )z@Is client session closed.

        A readonly property.
        N)r   r   rr  r   r   r   r     s    zClientSession.closedc                 C   s   | j S )z(Connector instance used for the session.r   rr  r   r   r   r     s    zClientSession.connectorc                 C   s   | j S )zThe session cookies.)r   rr  r   r   r   r     s    zClientSession.cookie_jarc                 C   s   | j S )z"The session HTTP protocol version.)r   rr  r   r   r   r     s    zClientSession.versionc                 C   s   | j S ))Do URL requoting on redirection handling.)r   rr  r   r   r   r     s    z"ClientSession.requote_redirect_url)r   r   c                 C   s   t jdtdd || _dS )rt  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   rr  r   r   r   r     s      zClientSession.loopc                 C   s   | j S )zTimeout for the session.)r   rr  r   r   r   rz     s    zClientSession.timeoutc                 C   s   | j S )z*The default headers of the client session.)r   rr  r   r   r   rn     s    zClientSession.headersc                 C   s   | j S )z2Headers for which autogeneration should be skipped)r   rr  r   r   r   ro     s    zClientSession.skip_auto_headersc                 C   s   | j S )z2An object that represents HTTP Basic Authorization)r   rr  r   r   r   rp     s    zClientSession.authc                 C   s   | j S )zJson serializer callable)r   rr  r   r   r   r     s    zClientSession.json_serializec                 C   s   | j S )z-Should connector be closed on session closing)r   rr  r   r   r   r     s    zClientSession.connector_ownerc                 C   s   | j S )zGShould `ClientResponse.raise_for_status()` be called for each response.)r   rr  r   r   r   rv     s    zClientSession.raise_for_statusc                 C   s   | j S )z7Should the body response be automatically decompressed.)r   rr  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   rr  r   r   r   r   
  s    zClientSession.trust_envc                 C   s   | j S )z7A list of TraceConfig instances used for client tracing)r   rr  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.
        Nrs  rr  r   r   r   detach  s    zClientSession.detachc                 C   s   t dd S )NzUse async with instead)	TypeErrorrr  r   r   r   	__enter__   s    zClientSession.__enter__)exc_typeexc_valexc_tbr   c                 C   s   d S r   r   r   rx  ry  rz  r   r   r   __exit__#  s    zClientSession.__exit__c                    s   | S r   r   rr  r   r   r   
__aenter__,  s    zClientSession.__aenter__c                    s   |   I d H  d S r   )r%  r{  r   r   r   	__aexit__/  s    zClientSession.__aexit__)N)lr   r   r   __doc__r   r   r   r   r   StackSummaryr   r   rD   rl   r  r=   r>   rB   r   HttpVersion11rO   r`   r   AbstractEventLoopr]   r^   r   r   rK   r\   r   rR   r    r   r   r   r   r   rI   objectrb   r   r[   r   _CharsetResolverr   r   rJ   r   r   r   r   r   version_infor   rh   ri   rc   r   r	  r_   bytesrd   r?   r   r  r   r/  rI  rH  r  r0  ri  rj  rk  rl  rm  rn  r%  propertyr   r   r   r   r   r   setterr   rz   rn   r
   r   ro   rp   r   r   rv   r   r   r   ru  rw  r$  r   r|  r}  r~  __classcell__r   r   r   r   ra      s  
 



 

  

  {8 C	        	  	  
		
	
ra   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eee  ee ee d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   <  s    z#_BaseRequestContextManager.__init__)argr   c                 C   s   | j |S r   )r  r#  )r   r  r   r   r   r#  ?  s    z_BaseRequestContextManager.send)r(  r   r   c                 O   s   | j j||S r   )r  throw)r   r(  r   r   r   r   r  B  s    z _BaseRequestContextManager.throwrq  c                 C   s
   | j  S r   )r  r%  rr  r   r   r   r%  E  s    z _BaseRequestContextManager.closec                 C   s   | j  }|S r   )r  	__await__)r   retr   r   r   r  H  s    
z$_BaseRequestContextManager.__await__c                 C   s   |   S r   )r  rr  r   r   r   __iter__L  s    z#_BaseRequestContextManager.__iter__c                    s   | j I d H | _| j I d H S r   )r  r  r}  rr  r   r   r   r}  O  s    z%_BaseRequestContextManager.__aenter__rx  r>  tbr   c                    s   | j |||I d H  d S r   )r  r~  r   rx  r>  r  r   r   r   r~  S  s    z$_BaseRequestContextManager.__aexit__)r   r   r   	__slots__r   r   r   r#  r   r  r%  r   r  r  r}  r   r   r$  r   r~  r   r   r   r   r  8  s   
r  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   d  s    z&_SessionRequestContextManager.__init__rq  c                    sD   z| j I d H | _W n& tk
r8   | j I d H   Y nX | jS d S r   )r  r  r$  r  r%  rr  r   r   r   r}  m  s    z(_SessionRequestContextManager.__aenter__r  c                    s,   | j d k	st| j   | j I d H  d S r   )r  r   r%  r  r  r   r   r   r~  v  s    
z'_SessionRequestContextManager.__aexit__)r   r   r   r  r   r>   ra   r   r}  r   r   r$  r   r~  r   r   r   r   r  `  s   	
r  r
  r   )rj   rk   rl   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   rm   r   r   r   r   r   r   )r   r   rj   rk   rl   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   rm   r   r   r   r   r   r   r   c                C   sh   d}|dk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   rm   r   rz   r   r   )rj   rk   rl   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   r   r   r   )rF   ra   r  r  )r   r   rj   rk   rl   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   rm   r   r   r   r   r   r   r   r  r   r   r   rc     sJ    @	rc   )r  r   rU  r[  rl   rW  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   rM  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:   r;   r<   Zclient_reqrepr=   r>   r?   r@   rA   Z	client_wsrB   r   rC   rD   rE   rF   rG   	cookiejarrH   ZhelpersrI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   Zhttp_websocketrU   rV   rW   rX   streamsrY   tracingrZ   r[   Ztypedefsr\   r]   r^   r_   r`   __all__r{   rd   r  rh   ri   srb   r   r   r   r  r   r  r   r  ra   r  r   rG  r  r  r   r   r  r  rc   r   r   r   r   <module>   s   Tx(
1        c $%

