
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    'â7`Œ«  ã                   @   s–  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
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 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+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> ddl?m@Z@mAZAmBZBmCZCmDZD ddlEmFZF ddlGmHZHmIZImJZJmKZK ddlLmMZM ddlNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZW ddl'mXZXmYZYmZZZm[Z[ ddl\m]Z]m^Z^m_Z_m`Z` ddlambZb ddlcmdZdmeZe ddlfmgZgmhZhmiZimjZj dZkzddllmmZm W n enk
�rF   eoZmY nX ejpdddd�G dd„ dƒƒZqeqdd�ZredƒZsG dd„ dƒZtG d d!„ d!eeeesf ees ƒZuG d"d#„ d#eueA ƒZvG d$d%„ d%eueF ƒZwG d&d'„ d'ƒZxdddddddd(ddd)ddddeVde'jydddd*œezejeeezezf  eeeei eeez  eeQ e{e|eez ee{ e{ee{ e{eej eeQ eeqeof eeh eYeeH ee| eej} exd+œd,d-„Z~dS ).zHTTP Client for asyncio.é    N)ÚSimpleNamespaceÚTracebackType)ÚAnyÚ	AwaitableÚCallableÚ	CoroutineÚ	FrozenSetÚ	GeneratorÚGenericÚIterableÚListÚMappingÚOptionalÚSetÚTupleÚTypeÚTypeVarÚUnion)ÚCIMultiDictÚ	MultiDictÚMultiDictProxyÚistr)ÚURLé   )ÚhdrsÚhttpÚpayload)ÚAbstractCookieJar)ÚClientConnectionErrorÚClientConnectorCertificateErrorÚClientConnectorErrorÚClientConnectorSSLErrorÚClientErrorÚClientHttpProxyErrorÚClientOSErrorÚClientPayloadErrorÚClientProxyConnectionErrorÚClientResponseErrorÚClientSSLErrorÚContentTypeErrorÚ
InvalidURLÚServerConnectionErrorÚServerDisconnectedErrorÚServerFingerprintMismatchÚServerTimeoutErrorÚTooManyRedirectsÚWSServerHandshakeError)ÚClientRequestÚClientResponseÚFingerprintÚRequestInfoÚ_merge_ssl_params)ÚClientWebSocketResponse)ÚBaseConnectorÚNamedPipeConnectorÚTCPConnectorÚUnixConnector)Ú	CookieJar)	ÚDEBUGÚPY_36Ú	BasicAuthÚCeilTimeoutÚTimeoutHandleÚget_running_loopÚproxies_from_envÚ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,   r-   r.   r/   r0   r1   r2   r3   r4   r7   r9   r:   r8   r6   ÚClientSessionÚClientTimeoutÚrequest)Ú
SSLContextT)Zauto_attribsÚfrozenÚslotsc                   @   sN   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S )rU   NÚtotalÚconnectÚ	sock_readÚsock_connect)
Ú__name__Ú
__module__Ú__qualname__rZ   r   ÚfloatÚ__annotations__r[   r\   r]   © rc   rc   úA/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/client.pyrU   ˆ   s   
rU   i,  ©rZ   Ú_RetTypec                       s  e Zd ZdZe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ddddddeje	e
eejdddededdddddœ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f ee eee f eeeee!e"  e#ddœdd„Z$ed  ddœd d!„Z%e&�r*ee'dd"œ‡ fd#d$„Z(e)fe'dd%œd&d'„Z*ee+e'd(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-œee+ee-eef  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e ef ee ee. ee/ eee/ee0f  ee ee1 ee# e
d.œd/d0„Z2e3j4d1d2ddddddddddddddd3d4d5œe+eee eee eeee ee ee ee ee+ ee ee/ede0f ee ee. ee/ ee e#e#d6d7œd8d9„Z5e3j4d1d2ddddddddddddddd3d4d5œe+eee eee eeee ee ee ee ee+ ee ee/ede0f ee ee. ee/ ee e#e#ed7œd:d;„Z6ee d<d=œd>d?„Z7dd@œe+ee'd(dAœdBdC„Z8dd@œe+ee'd(dAœdDdE„Z9dd@œe+ee'd(dAœdFdG„Z:ddHœe+e'e'd(dIœdJdK„Z;ddHœe+e'e'd(dIœdLdM„Z<ddHœe+e'e'd(dIœdNdO„Z=e+e'd(dPœdQdR„Z>ddSœdTdU„Z?e@edSœdVdW„ƒZAe@ee dSœdXdY„ƒZBe@edSœdZd[„ƒZCe@eDe#e#f dSœd\d]„ƒZEe@edSœd^d_„ƒZFeFjGedd`œdad_„ƒZFe@ejdSœdbdc„ƒZHe@eee f dSœddde„ƒZIe@d<dSœdfdg„ƒZJe@eKeL dSœdhdi„ƒZMe@ee dSœdjdk„ƒZNe@edSœdldm„ƒZOe@edSœdndo„ƒZPe@eeeQe
geRd f f dSœdpdq„ƒZSe@edSœdrds„ƒZTe@edSœdtdu„ƒZUe@e!e" dSœdvdw„ƒZVddSœdxdy„ZWddSœdzd{„ZXeeeY  eeY eeZ dd|œd}d~„Z[d dSœdd€„Z\eeeY  eeY eeZ dd|œd�d‚„Z]‡  Z^S )ƒrT   z/First-class interface for making HTTP requests.Ú_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_bufsizeNTFé   )Ú	connectorÚloopÚcookiesÚheadersÚskip_auto_headersÚauthÚjson_serializeÚrequest_classÚresponse_classÚws_response_classÚversionÚ
cookie_jarÚconnector_ownerÚraise_for_statusÚread_timeoutÚconn_timeoutÚtimeoutÚauto_decompressÚ	trust_envri   Útrace_configsÚread_bufsize)r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   ri   r�   r‘   Úreturnc                C   sØ  |d kr|d k	r|j }t|ƒ}|d kr0t|d�}|j |k	rBtdƒ‚|| _ | ¡ rbt t d¡¡| _	|d krtt
|d�}|| _|d k	rŽ| j |¡ || _|| _|| _|| _|| _|tk�rt| _|tk	rætjdtdd� tj| j|d�| _|d k	�r>tj| j|d�| _tjd	tdd� n*|| _|tk	�r,td
ƒ‚|d k	�r>tdƒ‚|| _|| _|| _|| _|| _|�rlt |ƒ}nt ƒ }|| _!|d k	�r˜t"dd„ |D ƒƒ| _#nt"ƒ | _#|| _$|	| _%|
| _&|�pºg | _'| j'D ]}| (¡  �qÄd S )N©r~   z0Session and connector has to use same event loopr   z8read_timeout is deprecated, use timeout argument insteadé   ©Ú
stacklevelre   )r[   z8conn_timeout is deprecated, use timeout argument insteadzGread_timeout and timeout parameters conflict, please setup timeout.readzJconn_timeout and timeout parameters conflict, please setup timeout.connectc                 S   s   g | ]}t |ƒ‘qS rc   )r   )Ú.0Úirc   rc   rd   Ú
<listcomp>%  s     z*ClientSession.__init__.<locals>.<listcomp>))rj   rA   r9   ÚRuntimeErrorZ	get_debugÚ	tracebackÚextract_stackÚsysÚ	_getframerg   r;   rk   Úupdate_cookiesrh   rl   rm   rn   ro   rC   ÚDEFAULT_TIMEOUTrq   ÚwarningsÚwarnÚDeprecationWarningÚattrZevolveÚ
ValueErrorrr   rs   rt   rp   r{   r   ru   Ú	frozensetrv   rw   rx   ry   rz   Zfreeze)Úselfr}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   ri   r�   r‘   Úreal_headersÚtrace_configrc   rc   rd   Ú__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«   rc   rc   rd   Ú__init_subclass__1  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__rc   rd   r²   ;  s    
ÿüzClientSession.__setattr__)Ú	_warningsr’   c                 C   s\   | j sXtrd| i}ni }|jd| ›�tf|Ž | ddœ}| jd k	rL| j|d< | j |¡ d S )NÚsourcezUnclosed client session zUnclosed client session)Zclient_sessionÚmessageZsource_traceback)Úclosedr=   r¢   ÚResourceWarningrg   rj   Zcall_exception_handler)r§   rµ   ÚkwargsÚcontextrc   rc   rd   Ú__del__E  s    
 ÿÿ


zClientSession.__del__Ú_RequestContextManager)ÚmethodÚurlrº   r’   c                 K   s   t | j||f|ŽƒS )zPerform HTTP request.)r½   Ú_request)r§   r¾   r¿   rº   rc   rc   rd   rV   S  s    zClientSession.requesté
   )ÚparamsÚdataÚjsonr   r€   r�   r‚   Úallow_redirectsÚmax_redirectsÚcompressÚchunkedÚ	expect100rŠ   Úread_until_eofÚproxyÚ
proxy_authr�   Ú
verify_sslÚfingerprintÚssl_contextÚsslÚproxy_headersÚtrace_request_ctxr‘   )r¾   Ú
str_or_urlrÂ   rÃ   rÄ   r   r€   r�   r‚   rÅ   rÆ   rÇ   rÈ   rÉ   rŠ   rÊ   rË   rÌ   r�   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   r‘   r’   c          4      ƒ   s6  ˆ 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}ˆ  |¡}ˆ  |¡}zt|ƒ}W n, tk
rÆ } zt|ƒ|‚W 5 d }~X Y nX tˆ jƒ} |d k	rò|D ]}!|  t|!ƒ¡ qÞ|d k	�r8zt|ƒ}W n. tk
�r6 } zt|ƒ|‚W 5 d }~X Y nX |tk�rJˆ j}"nt|tƒ�sbt|d�}"n|}"tˆ j|"jƒ}#|# ¡ }$|d k�rŒˆ j}‡ ‡fdd„ˆ jD ƒ}%|%D ]}&|& |||¡I d H  �q¦|# ¡ }'�z|'��x t|ƒ\}}(|	�rö|(�rötd	ƒ‚|	d k�r|(}	|	d k�rˆ j }	|d k	�r<|	d k	�r<t!j"|k�r<td
ƒ‚ˆ j# $|¡})|d k	�r|t%ƒ }*|* &|¡ |* $|¡}+|+�r||) '|+¡ |d k	�r�t|ƒ}n<ˆ j(�rÌt)ƒ  *¡ D ](\},}-|,|j+k�r¢|-j,}|-j-} �qÌ�q¢ˆ j.||||| ||)|	||||ˆ jˆ j/|||'ˆ |||%d�}.zHt0|"j1ˆ jd��. ˆ j2d k	�s(t3‚ˆ j2j1|.|%|"d�I d H }/W 5 Q R X W n6 t4j5k
�r‚ }0 zt6d 7|¡ƒ|0‚W 5 d }0~0X Y nX |/j8d k	�s”t3‚|/j9d k	�s¤t3‚|/j9j:|'| ;¡ dk|ˆ j<|"j=|d� zpzJ|. >|/¡I d H }1z|1 |/¡I d H  W n  t?k
�r   |1 @¡  ‚ Y nX W n  t?k
�r4   |/ @¡  ‚ Y nX W nF tAk
�rP   ‚ Y n0 tBk
�r~ }0 ztC|0jDŽ |0‚W 5 d }0~0X Y nX ˆ j# &|1jE|1jF¡ |1jGdk�rH|
�rH|%D ]}&|& H||||1¡I d H  �q¨|d7 }| I|1¡ |�r||k�r|1 @¡  tJ|d jKtL|ƒƒ‚|1jGdk�r|1jMt!jNk�s8|1jGdk�r\|1jMt!jOk�r\t!jP}d }| Qt!jR¡�r\| St!jR¡ |1jT Qt!jU¡�px|1jT Qt!jV¡}2|2d k�rŠ�qHn|1 W¡  zt|2ˆ jX d�}3W n. tk
�rÔ } zt|2ƒ|‚W 5 d }~X Y nX |3j+},|,dk�rø|1 @¡  tdƒ‚n|,�s| Y|3¡}3| Z¡ |3 Z¡ k�r,d }	| St!j"d ¡ |3}d }|1 W¡  �qÖ�qH�qÖW 5 Q R X |d k�rbˆ j[}|�rp|1 \¡  |$d k	�rž|1j]d k	�r–|1j] ^|$j_¡ n|$ _¡  tL|ƒ|1_`|%D ]}&|& a||||1¡I d H  �q¬|1W S  t?k
�r0 } zB|# @¡  |$�rü|$ _¡  d }$|%D ]}&|& b||||¡I d H  �q ‚ 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   re   c                    s    g | ]}t ˆ ||jˆd �ƒ‘qS ))rÒ   )rN   Ztrace_config_ctx)r—   r©   ©r§   rÒ   rc   rd   r™   ²  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 URL)rÂ   r€   r�   rÃ   r   r‚   r‡   rÇ   rÈ   rÉ   r~   r…   rË   rÌ   ÚtimerÚsessionrÐ   rÑ   Útracesr“   )rØ   r�   zConnection timeout to host {}ZHEAD)rÖ   Zskip_payloadrÊ   rŽ   r‹   r‘   )é-  é.  é/  i3  i4  r   rÛ   )rÙ   rÚ   )Úencoded)r   ÚhttpsÚ z"Can redirect only to http or https)cr¸   rš   r5   r¥   r   ZJsonPayloadro   Ú
isinstanceÚboolr¡   r¢   r£   rn   Ú_prepare_headersr   r*   Úsetrv   Úaddr   rC   rq   rU   r@   rj   rZ   Ústartr{   rz   Zsend_request_startrÖ   rD   rm   r   ZAUTHORIZATIONrk   Zfilter_cookiesr;   rŸ   Úloadrt   rB   ÚitemsÚschemerË   rÌ   rw   rx   r?   r[   rh   ÚAssertionErrorÚasyncioÚTimeoutErrorr.   r¬   Ú	transportÚprotocolZset_response_paramsÚupperrs   r\   ÚsendÚBaseExceptionÚcloser"   ÚOSErrorr$   Úargsr   r¿   ÚstatusZsend_request_redirectÚappendr/   Úrequest_infoÚtupler¾   Ú	METH_HEADÚ	METH_POSTÚMETH_GETÚgetZCONTENT_LENGTHÚpopr€   ZLOCATIONÚURIÚreleaserp   ÚjoinÚoriginrr   rŠ   Ú
connectionZadd_callbackÚcancelZ_historyZsend_request_endZsend_request_exception)4r§   r¾   rÓ   rÂ   rÃ   rÄ   r   r€   r�   r‚   rÅ   rÆ   rÇ   rÈ   rÉ   rŠ   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auth_from_urlZall_cookiesZtmp_cookie_jarZreq_cookiesrç   Z
proxy_infoÚreqÚconnÚexcÚrespZr_urlÚ
parsed_urlrc   rÕ   rd   rÀ   Y  s¬   #ÿ





ú	ÿ

ÿþýÿ






ë  ÿÿþ
ú	   ÿ
 ÿÿ
ÿÿ
 ÿ






zClientSession._requestrc   g      $@r   i  @ ©r¾   Ú	protocolsr�   Úreceive_timeoutÚ	autocloseÚautopingÚ	heartbeatr‚   rÿ   r€   rË   rÌ   rÐ   rÍ   rÎ   rÏ   rÑ   rÇ   Úmax_msg_sizeÚ_WSRequestContextManager)r¿   r¾   r  r�   r  r  r  r  r‚   rÿ   r€   rË   rÌ   rÐ   rÍ   rÎ   rÏ   rÑ   rÇ   r  r’   c                C   s6   t | j|||||||||	|
||||||||||d�ƒS )zInitiate websocket connection.r  )r  Ú_ws_connect)r§   r¿   r¾   r  r�   r  r  r  r  r‚   rÿ   r€   rË   rÌ   rÐ   rÍ   rÎ   rÏ   rÑ   rÇ   r  rc   rc   rd   Ú
ws_connect‹  s0    ìÿzClientSession.ws_connectc          )      Ã   sJ  |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< |r¨t|d�}||tj< t||||ƒ}| j|||d|	||||d�	I d H }�z&|jd	k�rt|j|jd
|j|jd�‚|j tjd¡ ¡ dk�r6t|j|jd|j|jd�‚|j tjd¡ ¡ dk�rjt|j|jd|j|jd�‚|j tjd¡}t t |t ¡ ¡ ¡ ¡ }||k�rºt|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¡}"|"�r†z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	�s¢t%‚|$j&}%|%d k	�s¶t%‚|$j'}&|&d k	�sÊt%‚t(|%d| j)d�}'|% *t+|'|ƒ|'¡ t,|%|&d||!d�}(W n  t-k
�r    | .¡  ‚ Y n&X | j/|'|(|||||| j)||||!d�S d S )NZ	websocketZupgradeZ13é   ú,)rÇ   F)r€   rÊ   r‚   rË   rÌ   rÐ   rÑ   ée   zInvalid response status)r·   ró   r€   rÞ   zInvalid upgrade headerzInvalid connection headerzInvalid challenge responsec                 S   s   g | ]}|  ¡ ‘qS rc   )Ústrip)r—   Úprotorc   rc   rd   r™   *  s   ÿz-ClientSession._ws_connect.<locals>.<listcomp>r   r|   r“   T)Zuse_maskrÇ   Ú
notakeover)r  r  rÇ   Zclient_notakeover)0r   r   ZUPGRADEZ
CONNECTIONZSEC_WEBSOCKET_VERSIONræ   Ú
setdefaultÚbase64Ú	b64encodeÚosÚurandomÚdecodeZSEC_WEBSOCKET_KEYrþ   ZSEC_WEBSOCKET_PROTOCOLZORIGINrK   ZSEC_WEBSOCKET_EXTENSIONSr5   rV   ró   r0   rõ   r  r€   rú   ÚlowerZSEC_WEBSOCKET_ACCEPTÚhashlibZsha1rE   ÚdigestÚsplitrL   rI   rò   r   rè   rì   rë   rM   rj   Z
set_parserrG   rH   rï   rð   ry   ))r§   r¿   r¾   r  r�   r  r  r  r  r‚   rÿ   r€   rË   rÌ   rÐ   rÍ   rÎ   rÏ   rÑ   rÇ   r  r¨   Zdefault_headersÚkeyÚvalueZsec_keyZextstrr
  Zr_keyÚmatchrì   Zresp_protocolsr  r  Zcompress_hdrsr	  r  Z
conn_protorë   ÚreaderÚwriterrc   rc   rd   r  ½  s      ý


÷ûûû	
û	þ

ûú  ÿû
ôzClientSession._ws_connectzCIMultiDict[str])r€   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   ru   rß   r   r   râ   ræ   rã   )r§   r€   ÚresultZadded_namesr&  r'  rc   rc   rd   rá   k  s    
zClientSession._prepare_headers)rÅ   )r¿   rÅ   rº   r’   c                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP GET request.rÅ   )r½   rÀ   r   rù   ©r§   r¿   rÅ   rº   rc   rc   rd   rú   {  s    ÿzClientSession.getc                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP OPTIONS request.rÅ   )r½   rÀ   r   ZMETH_OPTIONSr,  rc   rc   rd   Úoptionsƒ  s     ÿÿÿÿzClientSession.optionsc                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP HEAD request.rÅ   )r½   rÀ   r   r÷   r,  rc   rc   rd   Úhead�  s     ÿÿÿÿzClientSession.head)rÃ   )r¿   rÃ   rº   r’   c                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP POST request.rÃ   )r½   rÀ   r   rø   ©r§   r¿   rÃ   rº   rc   rc   rd   Úpost—  s    ÿzClientSession.postc                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP PUT request.rÃ   )r½   rÀ   r   ZMETH_PUTr/  rc   rc   rd   ÚputŸ  s    ÿzClientSession.putc                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP PATCH request.rÃ   )r½   rÀ   r   Z
METH_PATCHr/  rc   rc   rd   Úpatch§  s    ÿzClientSession.patch)r¿   rº   r’   c                 K   s   t | jtj|f|ŽƒS )zPerform HTTP DELETE request.)r½   rÀ   r   ZMETH_DELETE)r§   r¿   rº   rc   rc   rd   Údelete¯  s    zClientSession.delete©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¸   rh   rl   rð   ©r§   rc   rc   rd   rð   ³  s    zClientSession.closec                 C   s   | j dkp| j jS )z@Is client session closed.

        A readonly property.
        N)rh   r¸   r5  rc   rc   rd   r¸   ½  s    zClientSession.closedc                 C   s   | j S )z(Connector instance used for the session.©rh   r5  rc   rc   rd   r}   Å  s    zClientSession.connectorc                 C   s   | j S )zThe session cookies.)rk   r5  rc   rc   rd   rˆ   Ê  s    zClientSession.cookie_jarc                 C   s   | j S )z"The session HTTP protocol version.)rn   r5  rc   rc   rd   r‡   Ï  s    zClientSession.versionc                 C   s   | j S )ú)Do URL requoting on redirection handling.)rp   r5  rc   rc   rd   ri   Ô  s    z"ClientSession.requote_redirect_url)r¯   r’   c                 C   s   t jdtdd� || _dS )r7  z=session.requote_redirect_url modification is deprecated #2778r”   r•   N)r¡   r¢   r£   rp   )r§   r¯   rc   rc   rd   ri   Ù  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£   rj   r5  rc   rc   rd   r~   ã  s      ÿzClientSession.loopc                 C   s   | j S )zTimeout for the session.)rq   r5  rc   rc   rd   r�   ë  s    zClientSession.timeoutc                 C   s   | j S )z*The default headers of the client session.)ru   r5  rc   rc   rd   r€   ð  s    zClientSession.headersc                 C   s   | j S )z2Headers for which autogeneration should be skipped)rv   r5  rc   rc   rd   r�   õ  s    zClientSession.skip_auto_headersc                 C   s   | j S )z2An object that represents HTTP Basic Authorization)rm   r5  rc   rc   rd   r‚   ú  s    zClientSession.authc                 C   s   | j S )zJson serializer callable)ro   r5  rc   rc   rd   rƒ   ÿ  s    zClientSession.json_serializec                 C   s   | j S )z-Should connector be closed on session closing)rl   r5  rc   rc   rd   r‰     s    zClientSession.connector_ownerc                 C   s   | j S )z`
        Should `ClientResponse.raise_for_status()`
        be called for each response
        )rr   r5  rc   rc   rd   rŠ   	  s    zClientSession.raise_for_statusc                 C   s   | j S )z6Should the body response be automatically decompressed)rs   r5  rc   rc   rd   rŽ     s    zClientSession.auto_decompressc                 C   s   | j S )z�
        Should get proxies information
        from HTTP_PROXY / HTTPS_PROXY environment variables
        or ~/.netrc file if present
        )rt   r5  rc   rc   rd   r�     s    zClientSession.trust_envc                 C   s   | j S )z7A list of TraceConfig instances used for client tracing)rz   r5  rc   rc   rd   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.
        Nr6  r5  rc   rc   rd   Údetach&  s    zClientSession.detachc                 C   s   t dƒ‚d S )NzUse async with instead)Ú	TypeErrorr5  rc   rc   rd   Ú	__enter__-  s    zClientSession.__enter__)Úexc_typeÚexc_valÚexc_tbr’   c                 C   s   d S ©Nrc   ©r§   r;  r<  r=  rc   rc   rd   Ú__exit__0  s    zClientSession.__exit__c                 Ã   s   | S r>  rc   r5  rc   rc   rd   Ú
__aenter__9  s    zClientSession.__aenter__c                 Ã   s   |   ¡ I d H  d S r>  )rð   r?  rc   rc   rd   Ú	__aexit__<  s    zClientSession.__aexit__)_r^   r_   r`   Ú__doc__r¦   r°   rg   rÄ   rÔ   r1   r2   r6   r   ÚHttpVersion11rC   r   r7   ré   ÚAbstractEventLooprQ   rR   r   Ústrr>   rP   r   rF   r   rà   r   ra   ÚobjectrU   r   rO   Úintrª   r­   r<   r   r²   r¡   r¼   rS   rV   r   ÚbytesrW   r3   r   rÀ   r   rù   r  r  rá   rú   r-  r.  r0  r1  r2  r3  rð   Úpropertyr¸   r}   rˆ   r   r‡   ri   Úsetterr~   r�   r€   r   r   r�   r‚   rƒ   r‰   r   r   rŠ   rŽ   r�   r�   r8  r:  rï   r   r@  rA  rB  Ú__classcell__rc   rc   r³   rd   rT   £   sv  ëÿè



ço
  þä

ã  8êé6êé /ÿ  þ	ÿ  þÿ  þÿ  þ	ÿ  þ	ÿ  þ
	þ	
û	
ûrT   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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>  )rO  )r§   rR  rc   rc   rd   rª   I  s    z#_BaseRequestContextManager.__init__)Úargr’   c                 C   s   | j  |¡S r>  )rO  rî   ©r§   rS  rc   rc   rd   rî   L  s    z_BaseRequestContextManager.sendc                 C   s   | j  |¡ d S r>  )rO  ÚthrowrT  rc   rc   rd   rU  O  s    z _BaseRequestContextManager.throwr4  c                 C   s
   | j  ¡ S r>  )rO  rð   r5  rc   rc   rd   rð   R  s    z _BaseRequestContextManager.closec                 C   s   | j  ¡ }|S r>  )rO  Ú	__await__)r§   Úretrc   rc   rd   rV  U  s    
z$_BaseRequestContextManager.__await__c                 C   s   |   ¡ S r>  )rV  r5  rc   rc   rd   Ú__iter__Y  s    z#_BaseRequestContextManager.__iter__c                 Ã   s   | j I d H | _| jS r>  rN  r5  rc   rc   rd   rA  \  s    z%_BaseRequestContextManager.__aenter__)r^   r_   r`   Ú	__slots__r   rf   rª   rî   rï   rU  rð   r	   r   rV  rX  rA  rc   rc   rc   rd   rM  E  s   rM  c                   @   s0   e Zd Zeee  ee ee ddœdd„ZdS )r½   N©r;  r	  Útbr’   c                 Ã   s   | j  ¡  d S r>  )rP  rý   ©r§   r;  r	  r[  rc   rc   rd   rB  b  s    z _RequestContextManager.__aexit__©r^   r_   r`   r   r   rï   r   rB  rc   rc   rc   rd   r½   a  s
   
ûr½   c                   @   s0   e Zd Zeee  ee ee ddœdd„ZdS )r  NrZ  c                 Ã   s   | j  ¡ I d H  d S r>  )rP  rð   r\  rc   rc   rd   rB  q  s    z"_WSRequestContextManager.__aexit__r]  rc   rc   rc   rd   r  p  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©rO  rP  Ú_sessionrQ  N)rR  r×   r’   c                 C   s   || _ d | _|| _d S r>  r_  )r§   rR  r×   rc   rc   rd   rª   ~  s    z&_SessionRequestContextManager.__init__r4  c                 Ã   sD   z| j I d H | _W n& tk
r8   | j ¡ I d H  ‚ Y nX | jS d S r>  )rO  rP  rï   r`  rð   r5  rc   rc   rd   rA  ‡  s    z(_SessionRequestContextManager.__aenter__rZ  c                 Ã   s,   | j d k	st‚| j  ¡  | j ¡ I d H  d S r>  )rP  rè   rð   r`  r\  rc   rc   rd   rB  �  s    
z'_SessionRequestContextManager.__aexit__)r^   r_   r`   rY  r   r2   rT   rª   rA  r   r   rï   r   rB  rc   rc   rc   rd   r^  z  s   ü	
ûr^  rÁ   F)rÂ   rÃ   rÄ   r€   r�   r‚   rÅ   rÆ   rÇ   rÈ   rÉ   rŠ   rÊ   rË   rÌ   r�   r   r‡   r}   r‘   r~   )r¾   r¿   rÂ   rÃ   rÄ   r€   r�   r‚   rÅ   rÆ   rÇ   rÈ   rÉ   rŠ   rÊ   rË   rÌ   r�   r   r‡   r}   r‘   r~   r’   c                C   sd   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~   r   r‡   r�   r}   r‰   )rÂ   rÃ   rÄ   r€   r�   r‚   rÅ   rÆ   rÇ   rÈ   rÉ   rŠ   rÊ   rË   rÌ   r‘   )r9   rT   r^  rÀ   )r¾   r¿   rÂ   rÃ   rÄ   r€   r�   r‚   rÅ   rÆ   rÇ   rÈ   rÉ   rŠ   rÊ   rË   rÌ   r�   r   r‡   r}   r‘   r~   r‰   r×   rc   rc   rd   rV   ›  sF    <ú	îërV   )rC  ré   r  r#  rÄ   r  r�   r›   r¡   Útypesr   r   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r¤   Z	multidictr   r   r   r   Zyarlr   rÞ   r   r   r   Úabcr   Zclient_exceptionsr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   Zclient_reqrepr1   r2   r3   r4   r5   Z	client_wsr6   r}   r7   r8   r9   r:   Z	cookiejarr;   Zhelpersr<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   Zhttp_websocketrI   rJ   rK   rL   ZstreamsrM   ÚtracingrN   rO   ZtypedefsrP   rQ   rR   rS   Ú__all__rÐ   rW   ÚImportErrorrG  ÚsrU   r    rf   rT   rM  r½   r  r^  rD  rF  rà   rH  rE  rV   rc   rc   rc   rd   Ú<module>   s¼   HT,(

       ) 
%è

ç