Viewing File: /usr/lib/python2.7/site-packages/requestbuilder/service.pyo

ó
!»3Xc@@s
ddlmZddlZddlZddlZddlZddlZddlZddlZ	ddl
Z
ddlZddlZ
ddlZddljjZddlmZmZmZmZddlmZdefd„ƒYZd„Zd„Zd	„ZdS(
i(tabsolute_importN(tClientErrortServerErrortServiceInitErrortTimeoutError(tRegionConfigurableMixintBaseServicecB@sãeZdZdZdZdZdZdZdZ	gZ
dddd„Zed„ƒZ
d„Zed„ƒZd„Zdddddddd	„Zdddddddd
„Zd„Zd„Zd
„Zd„Zd„ZRS(tiicK@s||_||_d|_tj|jjƒ|_|dk	rN||j_	n||_
d|_i|_||_
d|_dS(N(targstconfigtNonetendpointtloggingt	getLoggert	__class__t__name__tlogtleveltmax_retriestregion_nametsession_argsttimeoutt_session(tselfR	tloglevelRRtkwargs((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyt__init__0s							cK@sž|jd|jjƒ|jd|jƒ|jdt|jƒƒ|jd|jƒd|jkr~|jd|jdƒn||j|}|j	ƒ|S(NRRRRtregion(
t
setdefaultRRRtdictRRRR	t	configure(tclstotherRtnew((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyt
from_other>s
cC@s)|jƒ|jƒ|jdkrb|jjdƒ}|dk	rSt|ƒ|_qb|j|_n|jdkr°|jjdƒ}|dk	r¡t	|ƒ|_q°|j
|_n|jjdt
ƒ|jjdƒ}|dkrö|jjdƒ}n|jjd|jj|dtƒƒ|jƒdS(Nsmax-retriesRtstreams
verify-tlss
verify-ssltverifytdefault(tupdate_config_viewt _BaseService__configure_endpointRR
R	tget_global_optiontinttMAX_RETRIESRtfloattTIMEOUTRRtTruetget_region_optiontconvert_to_booltFalsetvalidate_config(Rtconfig_max_retriestconfig_timeoutt
verify_ssl((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyRJs&

	cC@s„|jdkr}tjƒ|_x3tj|jƒD]\}}t|j||ƒq1Wx&|jjj	ƒD]}d|_
qgWn|jS(Ni(RR
trequeststsessiontsixt	iteritemsRtsetattrtadapterstvaluesR(Rtkeytvaltadapter((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyR6lscC@s¬|jdkr¨|jdk	r“dj|jƒ}|jj|ƒ}t|ƒdkr{dj|jdjt|ƒƒƒ}q™dj|j|ƒ}nd}t	|ƒ‚ndS(Ns{0}-urlisWNo {0} endpoint to connect to was given. Configured regions with {0} endpoints are: {1}s, sdNo {0} endpoint to connect to was given. {0} endpoints may be specified in a config file with "{1}".s#No endpoint to connect to was given(
RR
tNAMEtformatR	tget_all_region_optionstlentjointsortedR(Rturl_opttavailable_regionstmsg((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyR1wstGETc	C@sŠ|j|ƒ}t|piƒ}dg|D]}	|	jƒ^q+krbtj|jƒj|d<n|j|||||||ƒ}
|
jS(NthosttHost(t_BaseService__get_url_for_pathRtlowerturlparseRtnetloct%_BaseService__log_and_prepare_requestturl(RtmethodtpathtparamstheaderstdatatfilestauthRPtheadert	p_request((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pytget_request_url‰s%c
C@s_|j|ƒ}t|ƒ}dg|D]}	|	jƒ^q%kr\tj|jƒj|d<ny*|jd}
d}t|tƒrŸt	|dƒrŸ|j
ƒ}nd}xÝtr„xªt
t|
ƒdƒD]“\}
}|dkrÿ|jjd|ƒtj|ƒn|jjd|
|
ƒ|j|||||||ƒ}tjj|ƒ}x6t|jƒƒD]"\}}|jjd	||ƒq[Wtjjƒ|_y+|jj|d
|jd|dt ƒ}Wnƒtj!j"k
rC|
|
kr=|jjd
d
tƒ|dk	r%|jjdƒ|j#|ƒqÄq=t	|dƒs=qÄq=n‚nX|j$dkrÄPqÄqÄW|j$dkra|dkrad|j%kra|d8}tj|j%dƒ}tj|ƒ}g}x0t&||ƒD]\}}|j'|på|ƒqÊWd|kr
|d|d<ntj(|ƒ}|jjd||ƒ|dk	r¨|jjdƒ|j#|ƒq¨q¨n|j$dkr€|j)|ƒn|SWWnÒtj!j"k
rÆ}|jjd
d
tƒt*d|ƒ‚n•tj!j+k
rþ}|jjdd
tƒ|j,|ƒStj!j-k
r }|j)|ƒStj!j.k
rZ}|jjdd
tƒt/|ƒ‚nXdS(NRIRJiitseekiswill retry after %.3f secondss"sending request (attempt %i of %i)srequest  proxy:  %s=%sRtproxiestallow_redirectstexc_infos$re-seeking body to beginning of filettelliôi÷i-i.i3i4tLocations,redirecting to %s (%i redirect(s) remaining)i,srequest timed outsconnection errors
request error(iôi÷(i-i.i3i4(0RKRRLRMRRNRt
isinstancetfilethasattrR_R
R-t	enumeratet_generate_delaysRtdebugttimetsleeptinfoROR5tutilstget_environ_proxiesRDtitemstdatetimetnowt
start_timeR6tsendRR0t
exceptionstTimeoutR[tstatus_codeRTtziptappendt
urlunparsethandle_http_errorRtConnectionErrort%_BaseService__handle_connection_errort	HTTPErrortRequestExceptionR(RRQRRRSRTRURVRWRPRXt	max_triestredirects_lefttdata_file_offsett
attempt_notdelayRYR\R<R=tresponset
parsed_rdrt
parsed_urltnew_url_bitstrdr_bitturl_bittexc((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pytsend_request•s%
	
	

	

	

cC@sÇt|tjƒr|}n“t|tƒr¢t|jƒdkr¢t|jddƒrh|jdj}q®t|jdtƒr’|j|jdƒS|jd}nt	dƒ‚t	dj
|ƒƒ‚dS(Nitreasonsconnection errorsconnection error ({0})(RaR7tstring_typest	ExceptionRBRRcR‰RyRR@(RterrRG((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyt__handle_connection_errorôs	$cC@s&|jjddtƒt|ƒ‚dS(Ns
HTTP errorR^(RRfR-R(RR((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyRwscC@s@|r5|jjdƒr#|j|S|jd|Sn|jSdS(Nt/(Rtendswith(RRR((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyt__get_url_for_paths
cC@slitjt|jƒd6}|r4|j|ƒ}	nd}	tjd|d|d|d|d|d|d|	ƒ}
|jj	|
ƒ}i|dd6|_
|jjd	|
jƒ|jjd
|j
ƒt|jttjfƒr=x]ttj|jƒƒD]@\}}
|jƒjdƒr d}
n|jjd
||
ƒqöWnt|
jttjfƒrÊxottjtj|j
ƒjdtƒƒD]@\}}
|jƒjdƒr­d}
n|jjd||
ƒqƒWnt|
jttjfƒrätj|jj dƒpdƒ\}}|dkr9tj!t"j#|j$ƒ|ƒ}n6|dkrfttj|j$dtƒƒ}n	|
j}xrt|j%ƒƒD][\}}
||
j&pikr©q‚n|jƒjdƒrÇd}
n|jjd||
ƒq‚Wnt|
j&ttjfƒrhxfttj|
j&ƒƒD]I\}}
t'|
dƒrKdj(t)|
ƒƒ}
n|jjd||
ƒqWn|S(NRRQRPRSRURVRTRWsrequest  method: %ssrequest  url:    %stpasswords
<redacted>srequest  header: %s: %stkeep_blank_valuessrequest  param:  %s: %sscontent-typeRsmultipart/form-datas!application/x-www-form-urlencodedsrequest  data:   %s: %st__len__s<{0} bytes>srequest  file:   %s: %s(*t	functoolstpartialt_log_response_dataRtbind_to_serviceR
R5tRequestR6tprepare_requestthooksRfRQRPRaRTRtcollectionstMappingRDR7R8RLRRSRMt	parse_qsltqueryR-RUtcgitparse_headertgettparse_multiparttiotBytesIOtbodyRlRVRcR@RB(RRQRPRSRURVRTRWRšt
bound_authtrequestRYR<R=tcontent_typetcontent_type_params((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyt__log_and_prepare_requestsZ	%		!		%cC@së|jjdƒr.t|jdƒ\}}n§tj|jƒrattj|jƒƒ\}}nt|jrÕ|jj|jdƒ\}}|rÌ|jj	d|ƒ}|dkrÒ|jddƒd}qÒqÕd}n||_||_
dS(NRPs-urltnamet:iiÿÿÿÿ(RR¡t_parse_endpoint_urltostgetenvt
URL_ENVVARR?R	tget_region_option2R.R
trsplitRR(RRPRtsection((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyt__configure_endpointGs!			N(Rt
__module__R
R?tDESCRIPTIONtAPI_VERSIONR*R,t
REGION_ENVVARR°tARGSRtclassmethodR"RtpropertyR6R1RZRˆRyRwRKROR'(((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyR$s,	"		^				6cK@sÞt|jdƒrKtjjƒ|jj}|jd|j|jdƒn|jdkrp|j	d|jƒn|j
d|jƒt|jt
tjfƒrÚx9t|jjƒƒD]\}}|jd||ƒq´WndS(NRos response time:   %i.%03i secondsièisresponse status: %isresponse header: %s: %s(RcR§RmRnRoRftsecondstmicrosecondsRsterrorRiRaRTRR›RœRDRl(tloggerRt_tdurationR<R=((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyR–]s"cc@s_|dkr[dVxGtd|ƒD]3}tjƒdd|d}t|dfƒVq!WndS(Niiii(trangetrandomtmin(R|tretry_not
next_delay((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyReks
cC@s=d|kr'|jddƒ\}}nd}|}||fS(s
    If given a URL, return the URL and None.  If given a URL with a string and
    "::" prepended to it, return the URL and the prepended string.  This is
    meant to give one a means to supply a region name via arguments and
    variables that normally only accept URLs.
    s::iN(tsplitR
(turlishRRP((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyR­ss
(t
__future__RRŸR›RmR”R£Rtos.pathR®RÃRgtrequests.exceptionsR5R7tsix.moves.urllib_parsetmovesturllib_parseRMtrequestbuilder.exceptionsRRRRtrequestbuilder.mixinsRRR–ReR­(((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyt<module>s&"ÿ:		
Back to Directory File Manager