Viewing File: /opt/alt/python35/lib64/python3.5/http/__pycache__/client.cpython-35.opt-2.pyc



]@sHddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddddddd	d
ddd
dddddddgZdZdZ
dZdZdZdZejejjddejjjDZdZdZdZejd jZejd!jZejd"Z d#d$d%hZ!d&d'd(Z"Gd)d*d*ej#j$Z%e%d+d,Z&Gd-ddej'Z(Gd.ddZ)yddl*Z*Wne+k
rYn$XGd/d0d0e)Z,ej-d0Gd1dde.Z/Gd2dde/Z0Gd3dde/Z1Gd4dde/Z2Gd5dde/Z3Gd6d	d	e/Z4Gd7d
d
e/Z5Gd8dde/Z6Gd9d
d
e6Z7Gd:dde6Z8Gd;dde6Z9Gd<dde/Z:Gd=dde/Z;Gd>dde<e:Z=e/Z>dS)?N)urlsplitHTTPResponseHTTPConnection
HTTPExceptionNotConnectedUnknownProtocolUnknownTransferEncodingUnimplementedFileModeIncompleteRead
InvalidURLImproperConnectionStateCannotSendRequestCannotSendHeaderResponseNotReady
BadStatusLineLineTooLongRemoteDisconnectederror	responsesPiZUNKNOWNZIdlezRequest-startedzRequest-sentcCsi|]}|j|qS)phrase).0vrr+/opt/alt/python35/lib64/python3.5/client.py
<dictcomp>ks	riids[^:\s][^:\r\n]*s\n(?![ \t])|\r(?![ \t\n])z[- ]ZPATCHZPOSTPUTdatacCsy|jdSWnotk
r}zOt|j|j|j|jd|j||j|j|fdWYdd}~XnXdS)Nzlatin-1z`%s (%.20r) is not valid Latin-1. Use %s.encode('utf-8') if you want to send it encoded in UTF-8.)encodeUnicodeEncodeErrorencodingobjectstartendtitle)rnameerrrrr_encodesr(c@seZdZddZdS)HTTPMessagecCs|jd}t|}g}d}xh|jD]Z}|d|j|kr`d}n|ddjs|d}|r5|j|q5W|S)N:r)lowerlenkeysisspaceappend)selfr&nZlstZhitlinerrrgetallmatchingheaderss
	z!HTTPMessage.getallmatchingheadersN)__name__
__module____qualname__r4rrrrr)sr)cCsg}xq|jtd}t|tkr:td|j|t|tkritdt|d	kr	Pq	Wdj|jd}t	j
jd|j|S)
Nr+zheader linezgot more than %d headers

z
iso-8859-1_class)r8r9r:)
readline_MAXLINEr-rr0_MAXHEADERSrjoindecodeemailparserZParserZparsestr)fpr;headersr3Zhstringrrr
parse_headerss

rEcseZdZdddddZddZddZd	d
ZddZfd
dZfddZ	ddZ
ddZdddZddZ
ddZddZddZdd Zd!d"Zd#d$Zd%d&Zd@d(d)ZdAd*d+ZdBfd,d-Zd.d/Zd0d1Zd2d3Zdd4d5Zd6d7Zd8d9Zd:d;Zd<d=Zd>d?Z S)CrrNcCsw|jd|_||_||_d|_|_t|_t|_t|_	t|_
t|_t|_t|_
dS)Nrb)makefilerC
debuglevel_methodrDmsg_UNKNOWNversionstatusreasonchunked
chunk_leftlength
will_close)r1sockrHmethodurlrrr__init__s								zHTTPResponse.__init__cCsit|jjtdd}t|tkr=td|jdkr_tdt||sqt	dy|j
dd\}}}WnOtk
ry"|j
dd\}}d}Wntk
rd}YnXYnX|jd	s|j
t|y4t|}|d
ks.|dkr:t|Wntk
r[t|YnX|||fS)Nr+z
iso-8859-1zstatus linerzreply:z-Remote end closed connection without responsezHTTP/ri)strrCr<r=r-rrHprintreprrsplit
ValueError
startswith_close_connrint)r1r3rLrMrNrrr_read_statuss2




zHTTPResponse._read_statuscCs|jdk	rdSx|j\}}}|tkr8Pxg|jjtd}t|tkrotd|j}|sP|j	dkr;t
d|q;WqW||_|_|j|_
|dkrd|_n'|jdrd	|_nt|t|j|_|_|j	dkrSx$|jD]}t
d|d
dq6W|jjd}|r|jd
krd|_d|_n	d|_|j|_d|_|jjd}|jjd}|r3|jr3yt||_Wntk
rd|_Yq<X|jdkr<d|_n	d|_|tks|tksd|kokdkns|jdkrd|_|jr|jr|jdkrd|_dS)Nr+zheader linerzheader:HTTP/1.0HTTP/0.9
zHTTP/1.r$ ztransfer-encodingrOTFzcontent-lengthrHEAD)rbrc)rDraZCONTINUErCr<r=r-rstriprHrZcoderMrNrLr^rrErJgetr,rOrP_check_closerRrQr`r]Z
NO_CONTENTZNOT_MODIFIEDrI)r1rLrMrNskiphdrZtr_encrQrrrbegin,sf			
		

zHTTPResponse.begincCs|jjd}|jdkrS|jjd}|rOd|jkrOdSdS|jjdridS|rd|jkrdS|jjd}|rd|jkrdSdS)N
connectionrecloseTFz
keep-alivezproxy-connection)rDrkrLr,)r1connZpconnrrrrl|szHTTPResponse._check_closecCs |j}d|_|jdS)N)rCrq)r1rCrrrr_s		zHTTPResponse._close_connc
s,ztjWd|jr'|jXdS)N)superrqrCr_)r1)	__class__rrrqs	zHTTPResponse.closecs'tj|jr#|jjdS)N)rsflushrC)r1)rtrrrus
	zHTTPResponse.flushcCsdS)NTr)r1rrrreadableszHTTPResponse.readablecCs
|jdkS)N)rC)r1rrrisclosedszHTTPResponse.isclosedcCs|jdkrdS|jdkr0|jdS|dk	rqt|}|j|}t|d|jS|jr|jS|j	dkr|jj
}nAy|j|j	}Wntk
r|jYnXd|_	|j|SdS)Nr:rhr)
rCrIr_	bytearrayreadinto
memoryviewtobytesrO_readall_chunkedrQread
_safe_readr
)r1amtbr2srrrr}s*
	


	
zHTTPResponse.readcCs|jdkrdS|jdkr0|jdS|jrF|j|S|jdk	rt||jkrt|d|j}|jj|}|r|r|jn1|jdk	r|j|8_|js|j|S)Nrrh)	rCrIr_rO_readinto_chunkedrQr-rzry)r1rr2rrrrys$
	


	
zHTTPResponse.readintocCs|jjtd}t|tkr4td|jd}|dkr_|d|}yt|dSWntk
r|jYnXdS)Nr+z
chunk size;r)	rCr<r=r-rfindr`r]r_)r1r3irrr_read_next_chunk_sizes

z"HTTPResponse._read_next_chunk_sizecCsSxL|jjtd}t|tkr7td|s>P|dkrPqWdS)Nr+ztrailer line

r:)rrr:)rCr<r=r-r)r1r3rrr_read_and_discard_trailer
sz&HTTPResponse._read_and_discard_trailercCs|j}|s|dk	r(|jdy|j}Wntk
rXtdYnX|dkr|j|jd}||_|S)NrWr:r)rPr~rr]r
rr_)r1rPrrr_get_chunk_lefts	



	zHTTPResponse._get_chunk_leftcCsg}yPx<|j}|dkr%P|j|j|d|_qWdj|SWn'tk
rtdj|YnXdS)Nrr:)rr0r~rPr?r
)r1valuerPrrrr|3s

zHTTPResponse._readall_chunkedcCsd}t|}yx|j}|dkr4|St||krj|j|}|||_||S|d|}|j|}||d}||7}d|_qWWn.tk
rtt|d|YnXdS)Nr)rzrr-_safe_readintorPr
bytes)r1rtotal_bytesmvbrPr2temp_mvbrrrrAs$


zHTTPResponse._readinto_chunkedcCs|g}xf|dkrn|jjt|t}|sNtdj|||j||t|8}q	Wdj|S)Nrr:)rCr}min	MAXAMOUNTr
r?r0r-)r1rrchunkrrrr~Ys
zHTTPResponse._safe_readcCsd}t|}x|t|krtt|kr^|dt}|jj|}n|jj|}|stt|d|t|||d}||7}qW|S)Nr)rzr-rrCryr
r)r1rrrrr2rrrrps%zHTTPResponse._safe_readintor+cCs|jdks|jdkr"dS|jr8|j|S|jdk	rk|dksb||jkrk|j}y|jj|}Wn3tk
r|dkr|jjd}YnX|r|r|jn$|jdk	r|jt|8_|S)Nrhr:rrii@)	rCrIrO_read1_chunkedrQread1r]r_r-)r1r2resultrrrrs"	
*	


zHTTPResponse.read1cCsH|jdks|jdkr"dS|jr8|j|S|jj|S)Nrhr:)rCrIrO
_peek_chunkedpeek)r1r2rrrrs
	
zHTTPResponse.peekcs|jdks|jdkr"dS|jr;tj|S|jdk	rn|dkse||jkrn|j}|jj|}|r|r|jn$|jdk	r|jt|8_|S)Nrhr:r)rCrIrOrsr<rQr_r-)r1limitr)rtrrr<s	*	

zHTTPResponse.readlinecCs|j}|dks$|dkr(dSd|ko?|knsJ|}|jj|}|jt|8_|std|S)Nrr:)rrCrrPr-r
)r1r2rPr}rrrrszHTTPResponse._read1_chunkedcCsSy|j}Wntk
r(dSYnX|dkr9dS|jj|d|S)Nr:)rr
rCr)r1r2rPrrrrs
	zHTTPResponse._peek_chunkedcCs
|jjS)N)rCfileno)r1rrrrszHTTPResponse.filenocCsd|jdkrt|jj|p-|}t|tsOt|drS|Sdj|SdS)N__iter__z, )rDrZget_all
isinstancerYhasattrr?)r1r&defaultrDrrr	getheaders	zHTTPResponse.getheadercCs+|jdkrtt|jjS)N)rDrlistitems)r1rrr
getheaderss	zHTTPResponse.getheaderscCs|S)Nr)r1rrrrszHTTPResponse.__iter__cCs|jS)N)rD)r1rrrinfoszHTTPResponse.infocCs|jS)N)rU)r1rrrgeturlszHTTPResponse.geturlcCs|jS)N)rM)r1rrrgetcodeszHTTPResponse.getcoderr)!r5r6r7rVrarorlr_rqrurvrwr}ryrrrr|rr~rrrr<rrrrrrrrrrr)rtrrs<	!P
 	
	c@s<eZdZdZdZeZeZdZ	dZ
dejdddZ
dddd	Zd
dZdd
ZddZddZddZddZddZdddZddddZddZdd Zd!d"Zdd#d$Zdid%d&Zd'd(Zd)d*Zd+d,ZdS)-rrezHTTP/1.1r+rNcCs||_||_d|_g|_d|_t|_d|_d|_d|_	i|_
|j||\|_|_
tj|_dS)N)timeoutsource_addressrS_buffer_HTTPConnection__response_CS_IDLE_HTTPConnection__staterI_tunnel_host_tunnel_port_tunnel_headers
_get_hostporthostportsocketcreate_connection_create_connection)r1rrrrrrrrVs										zHTTPConnection.__init__cCsV|jrtd|j||\|_|_|rE||_n
|jjdS)Nz.Can't set up tunnel for established connection)rSRuntimeErrorrrrrclear)r1rrrDrrr
set_tunnel
s	zHTTPConnection.set_tunnelcCs	|dkr|jd}|jd}||kryt||dd}WnVtk
r||dddkr|j}ntd||ddYnX|d|}n	|j}|r|ddkr|ddkr|dd	}||fS)
Nr*]r+rXznonnumeric port: '%s'r[rr)rfindr`r]default_portr)r1rrrjrrrr"s
#	&zHTTPConnection._get_hostportcCs
||_dS)N)rH)r1levelrrrset_debuglevel6szHTTPConnection.set_debuglevelcCshd|j|jf}|jd}|j|xI|jjD]8\}}d||f}|jd}|j|qBW|jd|j|jd|j}|j	\}}	}
|	t
jjkr|j
td|	|
jfxn|jjtd}t|tkr*td	|s1P|dkr>P|jdkrtd
|jqWdS)NzCONNECT %s:%d HTTP/1.0
asciiz%s: %s
zlatin-1
rTzTunnel connection failed: %d %sr+zheader line
r:rzheader:)rrr:)rrrsendrrresponse_classrSrIrahttp
HTTPStatusZOKrqOSErrorrirCr<r=r-rrHrZr@)r1Zconnect_strZ
connect_bytesheaderrZ
header_strZheader_bytesresponserLrjmessager3rrr_tunnel9s2	



	zHTTPConnection._tunnelcCs]|j|j|jf|j|j|_|jjtjtj	d|j
rY|jdS)Nr+)rrrrrrS
setsockoptrIPPROTO_TCPTCP_NODELAYrr)r1rrrconnectXs
$	zHTTPConnection.connectcCsYt|_z&|j}|r.d|_|jWd|j}|rTd|_|jXdS)N)rrrSrqr)r1rSrrrrrqas					zHTTPConnection.closecCs|jdkr.|jr%|jn	t|jdkrPtdt|d}t|dr|jdkr~tdd}y
|j}Wnt	k
rYn,Xd|krd}|jdkrtd	x?|j
|}|sP|r|jd
}|jj|qWdSy|jj|Wn^t
k
rt|tjrqx7|D]}|jj|qTWnt
dt|YnXdS)Nrzsend:i r}zsendIng a read()ableFrTzencoding file using iso-8859-1z
iso-8859-1z9data should be a bytes-like object or an iterable, got %r)rS	auto_openrrrHrZr[rmodeAttributeErrorr}rsendall	TypeErrorrcollectionsIterabletype)r1r	blocksizerrZ	datablockdrrrrosF	
	





zHTTPConnection.sendcCs|jj|dS)N)rr0)r1rrrr_outputszHTTPConnection._outputcCs\|jjddj|j}|jdd=|j||dk	rX|j|dS)Nr:s
)r:r:)rextendr?r)r1message_bodyrJrrr_send_outputs
zHTTPConnection._send_outputFc
Cs |jr!|jjr!d|_|jtkr<t|_nt|j||_|p]d}|j|d|||jf}|j	|j
||jdkr|sd}|jdrt
|\}}}}}|r.y|jd}Wn!tk
r|jd}YnX|jd|n|jrL|j}	|j}
n|j}	|j}
y|	jd}Wn!tk
r|	jd}YnX|	jd	d
krd|d}|
|jkr|jd|n)|jd}|jdd
||
f|s|jddndS)N/z%s %s %srerXrrZidnaZHostr*r[]z%s:%szAccept-Encodingidentity)rrwrr_CS_REQ_STARTEDr
rI_validate_path
_http_vsn_strr_encode_request	_http_vsnr^rrr 	putheaderrrrrrrr@)r1rTrU	skip_hostskip_accept_encodingrequestZnetlocnilZ
netloc_encrrZhost_encrrr
putrequestsN		

				

zHTTPConnection.putrequestcCs
|jdS)Nr)r)r1rrrrr1szHTTPConnection._encode_requestcCsCtj|}|r?djd|jt}t|dS)NzJURL can't contain control characters. {url!r} (found at least {matched!r})Zmatched)!_contains_disallowed_url_pchar_researchformatgrouplocalsr)r1rUmatchrJrrrr5s
	zHTTPConnection._validate_pathcGs |jtkrtt|dr6|jd}t|sUtd|ft|}xt|D]\}}t|dr|jd||<n(t	|t
rt|jd||<t||rntd||fqnWdj
|}|d|}|j|dS)NrrzInvalid header name %rzlatin-1zInvalid header value %rs
	s: )rrrrr_is_legal_header_namer]r	enumeraterr`rY_is_illegal_header_valuer?r)r1rvaluesrZ	one_valuerrrrr@s"	zHTTPConnection.putheadercCs5|jtkrt|_n	t|j|dS)N)rr_CS_REQ_SENTrr)r1rrrr
endheaders\s		zHTTPConnection.endheaderscCs|j||||dS)N)
_send_request)r1rTrUbodyrDrrrrkszHTTPConnection.requestcCsd}|jtk}|dkr3|r3d}n|dk	rytt|}Wnhtk
ry"ttj|jj}Wn1t	t
fk
r|jdkrtdYnXYnX|dk	r|j
d|dS)N0rz
Cannot stat!!zContent-Length)upper_METHODS_EXPECTING_BODYrYr-rosfstatrst_sizerrrHrZr)r1rrTZthelenZmethod_expects_bodyrrr_set_content_lengthos	
"z"HTTPConnection._set_content_lengthc	Cstjdd|D}i}d|kr8d|d<d|krNd|d<|j|||d|kr}|j||x*|jD]\}}|j||qWt|trt|d	}|j	|dS)
NcSsg|]}|jqSr)r,)rkrrr
<listcomp>s	z0HTTPConnection._send_request.<locals>.<listcomp>rr+rzaccept-encodingrzcontent-lengthr)
dictfromkeysrrrrrrYr(r)	r1rTrUrrDZheader_namesZskipsrnrrrrrs

zHTTPConnection._send_requestcCs|jr!|jjr!d|_|jtks9|jrHt|j|jdkr{|j|j|jd|j}n|j|jd|j}y`y|j	Wnt
k
r|jYnXt|_|j
r|jn	||_|SWn|jYnXdS)NrrT)rrwrrrrHrrSrIroConnectionErrorrqrrR)r1rrrrgetresponses,	

		
	
zHTTPConnection.getresponse) r5r6r7rrrr	HTTP_PORTrrrHr_GLOBAL_DEFAULT_TIMEOUTrVrrrrrrqrrrrrrrrrrrrrrrrrs6		0|csXeZdZeZdddejdddddfddZfddZS)HTTPSConnectionNcontextcheck_hostnamec
stt|j||||||_||_|dkrItj}|jtjk}	|dkrp|j	}|r|	rt
d|s|r|j||||_||_
dS)NzMcheck_hostname needs a SSL context with either CERT_OPTIONAL or CERT_REQUIRED)rsrrVkey_file	cert_filesslZ_create_default_https_contextZverify_modeZ	CERT_NONEr
r]Zload_cert_chain_context_check_hostname)
r1rrrrrrrr
Zwill_verify)rtrrrVs			
	zHTTPSConnection.__init__cstj|jr"|j}n	|j}|jj|jd||_|jjr|jryt	j
|jj|Wn5tk
r|jj
tj|jjYnXdS)Nserver_hostname)rsrrrrZwrap_socketrSr
rrZmatch_hostnameZgetpeercert	Exceptionshutdownr	SHUT_RDWRrq)r1r)rtrrrs
		

zHTTPSConnection.connect)	r5r6r7
HTTPS_PORTrrr
rVrrr)rtrrs	rc@seZdZdS)rN)r5r6r7rrrrrsc@seZdZdS)rN)r5r6r7rrrrrsc@seZdZdS)rN)r5r6r7rrrrrsc@seZdZddZdS)rcCs|f|_||_dS)N)argsrL)r1rLrrrrVszUnknownProtocol.__init__N)r5r6r7rVrrrrrsc@seZdZdS)rN)r5r6r7rrrrr"sc@seZdZdS)r	N)r5r6r7rrrrr	%sc@s7eZdZdddZddZddZdS)r
NcCs"|f|_||_||_dS)N)rpartialexpected)r1rrrrrrV)s	zIncompleteRead.__init__cCsE|jdk	rd|j}nd}d|jjt|j|fS)Nz, %i more expectedrXz%s(%i bytes read%s))rrtr5r-r)r1errr__repr__-s
zIncompleteRead.__repr__cCs
t|S)N)r[)r1rrr__str__4szIncompleteRead.__str__)r5r6r7rVrrrrrrr
(sc@seZdZdS)rN)r5r6r7rrrrr7sc@seZdZdS)r
N)r5r6r7rrrrr
:sc@seZdZdS)rN)r5r6r7rrrrr=sc@seZdZdS)rN)r5r6r7rrrrr@sc@seZdZddZdS)rcCs+|st|}|f|_||_dS)N)r[rr3)r1r3rrrrVDszBadStatusLine.__init__N)r5r6r7rVrrrrrCsc@seZdZddZdS)rcCstj|dt|fdS)Nz&got more than %d bytes when reading %s)rrVr=)r1Z	line_typerrrrVKszLineTooLong.__init__N)r5r6r7rVrrrrrJsc@seZdZddZdS)rcOs'tj|dtj|||dS)NrX)rrVConnectionResetError)r1poskwrrrrVPszRemoteDisconnected.__init__N)r5r6r7rVrrrrrOs)?Zemail.parserrAZ
email.messageriorrerrZurllib.parser__all__r	rrKrrrglobalsupdater__members__rrrr=r>compile	fullmatchrrrrrr(rZMessager)rEBufferedIOBaserrrImportErrorrr0rrrrrrr	r
rr
rrrrrrrrrrr<module>Gsv				
0

Back to Directory File Manager