Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/aiohttp/__pycache__/client_reqrep.cpython-35.pyc



Zo@sddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZmZddl
mZmZmZddlmZddlZddlmZmZmZmZddlmZdd	lmZmZmZmZm Z dd
l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'ddl(m)Z)ddlm*Z*m+Z+m,Z,m-Z-m.Z.m/Z/dd
lm0Z0m1Z1m2Z2m3Z3ddl4m5Z5ddl6m7Z7yddl8Z8Wne9k
rdZ8YnXyddl:Z;Wne9k
rddl;Z;YnXddddfZ<ej=ddddGdddZ>ej=ddddGdddZ?GdddZ@e8dk	re8jAeBe@eCdfZDneCdZDddZEedddd gZFGd!ddZGGd"dde+ZHdS)#N)
namedtuple)md5sha1sha256)CookieErrorMorselSimpleCookie)MappingProxyType)CIMultiDictCIMultiDictProxy	MultiDictMultiDictProxy)URL)hdrshelpershttp	multipartpayload)ClientConnectionError
ClientOSErrorClientResponseErrorContentTypeError
InvalidURLServerFingerprintMismatch)FormData)PY_36HeadersMixin	TimerNoopnoopreify
set_result)SERVER_SOFTWARE
HttpVersion10
HttpVersion11StreamWriter)
client_logger)StreamReader
ClientRequestClientResponseRequestInfoFingerprintfrozenTslotsc@sFeZdZejdeZejdeZejdeZ	dS)ContentDispositiontypeN)
__name__
__module____qualname__attribstrr/r	
parametersfilenamer8r8/client_reqrep.pyr.*sr.c@sFeZdZejdeZejdeZejde	Z
dS)r*r/N)r0r1r2r3r4rurlr5methodrheadersr8r8r8r9r*1sc@sReZdZdededeiZddZeddZ	dd	Z
d
S)r+ cCsmt|}|jj|}|s3tdn$|tksK|tkrWtd||_||_dS)Nzfingerprint has invalid lengthz8md5 and sha1 are insecure and not supported. Use sha256.)lenHASHFUNC_BY_DIGESTLENget
ValueErrorrr	_hashfunc_fingerprint)selffingerprintZ	digestlenZhashfuncr8r8r9__init__?s	zFingerprint.__init__cCs|jS)N)rE)rFr8r8r9rGJszFingerprint.fingerprintcCs|jdsdS|jd}|jdd}|j|j}||jkr|jd^}}}t|j|||dS)NZ
sslcontextZ
ssl_objectZbinary_formTZpeername)Zget_extra_infoZgetpeercertrDdigestrEr)rF	transportZsslobjZcertZgothostport_r8r8r9checkNs	zFingerprint.checkN)r0r1r2rrrrArHpropertyrGrNr8r8r8r9r+8scCs|dk	rJ|rJtjdtdd|dk	rDtdnd}|dk	rtjdtdd|dk	rtdn|}|dk	rtjdtdd|dk	rtdnt|}t|tstdj||S)	Nz/verify_ssl is deprecated, use ssl=False instead
stacklevelzNverify_ssl, ssl_context, fingerprint and ssl parameters are mutually exclusiveFz2ssl_context is deprecated, use ssl=context insteadzCfingerprint is deprecated, use ssl=Fingerprint(fingerprint) insteadzFssl should be SSLContext, bool, Fingerprint or None, got {!r} instead.)	warningswarnDeprecationWarningrCr+
isinstanceSSL_ALLOWED_TYPES	TypeErrorformat)sslZ
verify_sslZssl_contextrGr8r8r9_merge_ssl_params`s2				rZ
ConnectionKeyrKrLrYc(@sMeZdZejejejejhZej	ej
ejhZej
ej
ejhZejdejdiZdZdZdZdZdZdZdddddeddd	dd
ddejddd
dddddddddddddddddddddddZddZeddZed d!Z ed"d#Z!ed$d%Z"ed&d'Z#d(d)Z$d*d+Z%d,d-Z&d.d/Z'd0d1Z(d2d3Z)d4d5Z*d6d7Z+d8d9Z,dd:d;Z-d<d=Z.d>d?Z/d@dAZ0dBdCZ1dDdEZ2dFdGZ3dS)Hr(z*/*z
gzip, deflateNparamsr<skip_auto_headersdatacookiesauthversioncompresschunked	expect100Floopresponse_classproxy
proxy_authtimersessionauto_decompressTrY
proxy_headerscCs|
dkrtj}
t|ts3t|t|ttdfsZt|||_|rt|j}|j	|}|j
|j|j	|}|jd|_||_
|j|_||_|
|_|
|_d|_|pt|_|dk	r|nt|_||_||_|
jrZtjtjd|_|j |	|j!||j"||j#||j$||j%||j&||j'||||j(||s|j|j)kr|j*|j+|dS)Nr),asyncioZget_event_looprUrAssertionErrorr/_sessionrZqueryZ
with_queryextendZ
with_fragmentr:original_urlupperr;rdrcrflengthr)rgr_timer_auto_decompress_ssl	get_debug	traceback
extract_stacksys	_getframe_source_tracebackupdate_versionupdate_hostupdate_headersupdate_auto_headersupdate_cookiesupdate_content_encodingupdate_authupdate_proxyupdate_body_from_dataGET_METHODSupdate_transfer_encodingupdate_expect_continue)rFr;r:r]r<r^r_r`rarbrcrdrerfrgrhrirjrkrlrYrmqZurl2r8r8r9rHsF'								








zClientRequest.__init__cCs|jjdkS)Nhttpswss)rr)r:scheme)rFr8r8r9is_sslszClientRequest.is_sslcCs|jS)N)rw)rFr8r8r9rYszClientRequest.sslcCst|j|j|jS)N)r[rKrLr)rFr8r8r9connection_keyszClientRequest.connection_keycCs
|jjS)N)r:rK)rFr8r8r9rKszClientRequest.hostcCs
|jjS)N)r:rL)rFr8r8r9rLszClientRequest.portcCst|j|j|jS)N)r*r:r;r<)rFr8r8r9request_infoszClientRequest.request_infocCsM|jst||j|j}}|rItj||p@d|_dS)z8Update destination host, port and connection type (ssl).N)rKruserpasswordr	BasicAuthra)rFr:Zusernamerr8r8r9rs
	zClientRequest.update_hostcCst|trdd|jddD}y$t|dt|df}Wn*tk
r~tdj|dYnX||_dS)zdConvert request version to two elements tuple.

        parser HTTP version '1.1' => (1, 1)
        cSsg|]}|jqSr8)strip).0lr8r8r9
<listcomp>s	z0ClientRequest.update_version.<locals>.<listcomp>.rrz%Can not parse http version number: {}N)rUr5splitintrCrXrb)rFrbvr8r8r9r~s$
zClientRequest.update_versioncCsdt|_|r`t|tttfr6|j}x'|D]\}}|jj||q=WdS)zUpdate request headers.N)r
r<rUdictr
ritemsadd)rFr<keyvaluer8r8r9rszClientRequest.update_headerscCstddt|D|_|jj}|j|jx<|jjD]+\}}||krQ|jj||qQWt	j
|kr|jj}|jj
s|dt|jj7}||jt	j
<t	j|krt|jt	j<dS)Ncss|]}|dfVqdS)Nr8)rhdrr8r8r9	<genexpr>sz4ClientRequest.update_auto_headers.<locals>.<genexpr>:)r
sortedr^r<copyrqDEFAULT_HEADERSrrrZHOSTr:raw_hostZis_default_portr5rLZ
USER_AGENTr")rFr^Zused_headersrvalZnetlocr8r8r9rsz!ClientRequest.update_auto_headerscCs|s
dSt}tj|jkrQ|j|jjtjd|jtj=xt|jD]f\}}t|tr|j|j	t}|j
|j	|j|j|||<q^|||<q^W|j
ddddj|jtj<dS)zUpdate request cookies header.Nrheadersep;)rrZCOOKIEr<loadrBrrUrrsetrZcoded_valueoutputr)rFr`cnamerZmrsl_valr8r8r9r$s	

zClientRequest.update_cookiescCs|s
dS|jjtjdj}|rF|jrtdn@|jrt|jtsjd|_|j|jtj<d|_	dS)zSet request content encoding.Nrz9compress can not be set if Content-Encoding header is setZdeflateT)
r<rBrZCONTENT_ENCODINGlowerrcrCrUr5rd)rFr_encr8r8r9r9s			z%ClientRequest.update_content_encodingcCs|jjtjdj}d|krB|jrtdnk|jr|tj|jkritdd|jtj<n1tj|jkrtt	|j
|jtj<dS)z!Analyze transfer-encoding header.rrdzDchunked can not be set if "Transfer-Encoding: chunked" header is setz6chunked can not be set if Content-Length header is setN)r<rBrZTRANSFER_ENCODINGrrdrCCONTENT_LENGTHr5r@body)rFZter8r8r9rJs			z&ClientRequest.update_transfer_encodingcCs]|dkr|j}|dkr%dSt|tjsCtd|j|jtj<dS)zSet basic auth.Nz%BasicAuth() tuple is required instead)	rarUrrrWencoder<rZ
AUTHORIZATION)rFrar8r8r9r_s	zClientRequest.update_authcCsR|s
dSt|tr"|}ytjj|dd}Wn$tjk
rdt|}YnX||_|jstj	|j
kr|j}|dkrd|_n(tj	|j
krt||j
tj	<tj
|j
kr	tj
|jkr	|j|j
tj
<|j
rNx9|j
jD](\}}||j
kr"||j
|<q"WdS)NZdispositionT)rUrrZPAYLOAD_REGISTRYrBLookupErrorrrdrrr<sizer5CONTENT_TYPEr^content_typer)rFrrrrr8r8r9rks.					z#ClientRequest.update_body_from_datacCs_|rd|jtj<n*|jjtjdjdkrCd}|r[|jj|_dS)Nz100-continuerT)r<rZEXPECTrBrrfZ
create_future	_continue)rFexpectr8r8r9rs$z$ClientRequest.update_expect_continuecCsf|r"|jdkr"td|rGt|tjrGtd||_||_||_dS)NrzOnly http proxies are supportedz,proxy_auth must be None or BasicAuth() tuple)rrCrUrrrhrirm)rFrhrirmr8r8r9rs		zClientRequest.update_proxycCsk|jtkrdS|jtkrH|jjtjdkrAdSdSn|jjtjdkrgdSdS)NFz
keep-aliveTclose)rbr#r<rBr
CONNECTION)rFr8r8r9
keep_aliveszClientRequest.keep_alivecs|jdk	r*|jIdH|jIdHzcyt|jtjr]|jj|IdHnHt|jttfr|jf|_x|jD]}|j|qW|j	IdHWnt
k
r}z@t|jd|j
}||_||_|jj|WYdd}~Xnutjk
rW}z|jsE|jj|WYdd}~Xn5tk
r}z|jj|WYdd}~XnXWdd|_XdS)z-Support coroutines that yields bytes objects.Nz!Can not write request body for %s)rZdrainrUrrZPayloadwritebytes	bytearrayZ	write_eofOSErrorrerrnor:__context__	__cause__protocol
set_exceptionrnCancelledErrorclosed	Exception_writer)rFwriterconnchunkexcnew_excr8r8r9write_bytess0		"	"'zClientRequest.write_bytesc
CsA|jtjkr3dj|jj|jj}nT|jr[|jr[t	|j}n,|jj
}|jjr|d|jj7}t|j
|j|j}|jr|j|j|jdk	r|j|j|jkrtj|jkrtj|jkrd|jtj<|jjtj}|sn|jrY|jtkrnd}n|jtkrnd}|dk	r||jtj<dj|j||j}|j||j|jj|j |||_!|j"|j|j#d|j!d|j$d	|j%d
|j&d|j'|_(|j(j)|j|j*|j(S)Nz{}:{}?zapplication/octet-streamz
keep-aliverz{0} {1} HTTP/{2[0]}.{2[1]}
rcontinue100rjrrl)+r;rZMETH_CONNECTrXr:rrLrhrr5Zraw_pathZraw_query_stringr%rrJrfrcZenable_compressionrdZenable_chunkingPOST_METHODSrr^r<rBrrrbr#r$Z
write_headersZcreate_taskrrrgrrrrurrvresponse
_post_initrp)rFrpathr
connectionZstatus_liner8r8r9sendsH!	
	!	zClientRequest.sendcs0|jdk	r,z|jIdHWdd|_XdS)N)r)rFr8r8r9r	szClientRequest.closecCs8|jdk	r4|jjs+|jjd|_dS)N)rrf	is_closedcancel)rFr8r8r9	terminates
zClientRequest.terminate)4r0r1r2rZMETH_GETZ	METH_HEADZMETH_OPTIONSZ
METH_TRACErZ
METH_PATCHZ	METH_POSTZMETH_PUTrunionZMETH_DELETEZALL_METHODSZACCEPTZACCEPT_ENCODINGrrrarrgrr	frozensetrr$rHrrOrYrrKrLrrr~rrrrrrrrrrrrrrr8r8r8r9r(s\	*
$		!9c@seZdZdZdZdZdZdZdZdZ	e
ZdZdZ
dZdZdZdddddddddddd	Zed
dZedd
ZeddZeddZeddZeddZddZeddZddZeddZeddZd d!d"Z d#d$Z!ed%d&Z"d'd(Z#d)d*Z$d+d,Z%d-d.Z&d/d0Z'd1d2Z(d3d4Z)d5d6Z*dd7d8d9Z+d:dd;e,j-d<d=d>d?Z,d@dAZ.dBdCZ/dS)Dr)NTrrrjrrlcCst|tst||_d|_t|_||_d|_||_	||_
d|_f|_||_
|dk	r|nt|_||_i|_dS)NT)rUrror;r<rr`_url_contentrr_closed_history
_request_inforrurv_cache)rFr;r:rrrjrrlr8r8r9rH,s										zClientResponse.__init__cCs|jS)N)r)rFr8r8r9r:@szClientResponse.urlcCstjdtdd|jS)NzDeprecated, use .url #1654rP)rRrSrTr)rFr8r8r9url_objDszClientResponse.url_objcCs
|jjS)N)rrK)rFr8r8r9rKJszClientResponse.hostcCs|jS)N)r<)rFr8r8r9_headersNszClientResponse._headerscCs|jS)N)r)rFr8r8r9rRszClientResponse.request_infocCse|jjtj}|dkr%dStj|\}}t|}tj|}t|||S)N)	rrBrZCONTENT_DISPOSITIONrZparse_content_dispositionr	Zcontent_disposition_filenamer.)rFrawZdisposition_typer]r7r8r8r9content_dispositionVsz"ClientResponse.content_dispositioncCs=||_||_|jr9tjtjd|_dS)Nr)_looprprxryrzr{r|r})rFrfrkr8r8r9r`s		zClientResponse._post_initcCs|jdkrdS|jr dS|jdk	r|jj|j|jjrtrjd|i}ni}|jdj|t	|d|ddi}|j
r|j
|d<|jj|dS)NsourcezUnclosed response {!r}Zclient_responsemessagezUnclosed responseZsource_traceback)rr_connectionrelease_cleanup_writerrxrrSrXResourceWarningr}Zcall_exception_handler)rF	_warningskwargscontextr8r8r9__del__fs&	

	
zClientResponse.__del__cCstj}t|j}|jrE|jjddjd}n	|j}tdj||j	|d|t|j
d||jS)Nasciibackslashreplacez<ClientResponse({}) [{} {}]>file)ioStringIOr5r:reasonrdecodeprintrXstatusr<getvalue)rFoutZascii_encodable_urlZascii_encodable_reasonr8r8r9__repr__~s				zClientResponse.__repr__cCs|jS)N)r)rFr8r8r9rszClientResponse.connectioncCs|jS)z2A sequence of of responses, if redirects occurred.)r)rFr8r8r9historyszClientResponse.historyFcsd|_|j|_||_|jjd|jd|jjdkd|d|j|jxy|jj	IdH\}}Wn[t
jk
r}z8t|j
|jd|jd	|jd
|j|WYdd}~XnX|jdks|jdks|jd
krP|jdk	ret|jdd|_qeWWdQRX|j|j|j|_|j|_|j|_t|j|_t|j|_||_xl|jjtjfD]R}y|j j!|Wqt"k
r
}zt#j$d|WYdd}~XqXqW|S)zStart response processing.FrjZskip_payloadheadread_until_eofrlNcoderr<deTz!Can not load response cookies: %s)%rrZ	_protocolrZset_response_paramsrur;rrvreadrZHttpProcessingErrorrrrrrr<rr!Zon_eof
_response_eofrbrrrtupleraw_headerscontentZgetallrZ
SET_COOKIEr`rrr&warning)rFrrrrrrr8r8r9startsJ			

	+	!zClientResponse.startcCsn|jr
dS|jdk	rW|jjdk	rA|jjjrAdS|jjd|_d|_|jdS)NT)rrrZupgradedrr)rFr8r8r9r
s	
		zClientResponse._response_eofcCs|jS)N)r)rFr8r8r9rszClientResponse.closedcCsu|jr
dSd|_|jdks4|jjr8dS|jdk	r]|jjd|_|j|jdS)NT)rrrrrr_notify_content)rFr8r8r9rs		
	
zClientResponse.closecCsY|jrtSd|_|jdk	r>|jjd|_|j|jtS)NT)rrrrrr)rFr8r8r9rs		
	

zClientResponse.releasec	CsCd|jkr?t|j|jd|jd|jd|jdS)Nirrr<)rrrrrr<)rFr8r8r9raise_for_statuss			zClientResponse.raise_for_statuscCs2|jdk	r|jjd|_d|_dS)N)rrrp)rFr8r8r9rs
	zClientResponse._cleanup_writercCsE|j}|rA|jdkrA|jrA|jtddS)NzConnection closed)r
	exceptionZis_eofrr)rFr
r8r8r9rs	%zClientResponse._notify_contentcs:|jdk	r,z|jIdHWdd|_X|jdS)N)rr)rFr8r8r9wait_for_closes

zClientResponse.wait_for_closecsS|jdkrLy|jjIdH|_Wntk
rK|jYnX|jS)zRead response payload.N)rr
r	
BaseExceptionr)rFr8r8r9r	s

zClientResponse.readcCs|jjtjdj}tj|}|jjd}|rqytj	|Wnt
k
rpd}YnX|s|jdkr|jdkrd}nt
j|jd}|sd}|S)NrcharsetZapplicationjsonzutf-8encoding)r<rBrrrrZparse_mimetyper6codecslookuprr/subtypechardetZdetectr)rFctypeZmimetyperr8r8r9get_encoding%s
	zClientResponse.get_encodingstrictcsL|jdkr|jIdH|dkr6|j}|jj|d|S)z!Read response payload and decode.Nerrors)rr	rr)rFrrr8r8r9text:s
zClientResponse.textrloadsrzapplication/jsoncs|jdkr|jIdH|rv|jjtjdj}||krvt|j|j	dd|d|j|jj
}|sdS|dkr|j}||j|S)zRead and decodes JSON response.Nrrz3Attempt to decode JSON with unexpected mimetype: %sr<)
rr	r<rBrrrrrrrrr)rFrr!rrZstrippedr8r8r9rDs"	zClientResponse.jsoncs|S)Nr8)rFr8r8r9
__aenter__]szClientResponse.__aenter__cs|jdS)N)r)rFexc_typeexc_valexc_tbr8r8r9	__aexit__`szClientResponse.__aexit__)0r0r1r2rbrrr
r<rrr'Zflow_control_class_readerr}rrrprHrOr:rrKrrr rrrRrrrrrr
rrrrrrrr	rr rr!r"r&r8r8r8r9r)sV
7
	
)Irnrrrr{ryrRcollectionsrhashlibrrrZhttp.cookiesrrrtypesr	r3Z	multidictr
rrr
ZyarlrrrrrrrZclient_exceptionsrrrrrrZformdatarrrrrr r!r"r#r$r%logr&Zstreamsr'rYImportErrorZcchardetr__all__sr.r*r+Z
SSLContextboolr/rVrZr[r(r)r8r8r8r9<module>sP"(.."

++"#
Back to Directory File Manager