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

ó
!»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@sq|j|ƒ}t|ƒ}dg|D]}	|	jƒ^q%kr\tj|jƒj|d<ny<|jd}
|
dks~t‚d}t|t	ƒr±t
|dƒr±|jƒ}nd}xÝt
r–xªtt|
ƒdƒD]“\}
}|dkr|jjd|ƒtj|ƒn|jjd|
|
ƒ|j|||||||ƒ}tjj|ƒ}x6t|jƒƒD]"\}}|jjd	||ƒqmWtjjƒ|_y+|jj|d
|j d|dt!ƒ}Wnƒtj"j#k
rU|
|
krO|jjd
d
t
ƒ|dk	r7|jjdƒ|j$|ƒqÖqOt
|dƒsOqÖqOn‚nX|j%dkrÖPqÖqÖW|j%dkrs|dkrsd|j&krs|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
r2}|j*|ƒStj"j/k
rl}|jjdd
t
ƒt0|ƒ‚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(1RKRRLRMRRNRtAssertionErrort
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})(RbR7tstring_typest	ExceptionRBRRdRŠRzRR@(RterrRG((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyt__handle_connection_errorôs	$cC@s&|jjddtƒt|ƒ‚dS(Ns
HTTP errorR^(RRgR-R(RR‚((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyRxscC@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(NR‚RQRPRSRURVRTRWsrequest  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_requestthooksRgRQRPRbRTRtcollectionstMappingRDR7R8RLRRSRMt	parse_qsltqueryR-RUtcgitparse_headertgettparse_multiparttiotBytesIOtbodyRmRVRdR@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‰RzRxRKROR'(((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(NRps response time:   %i.%03i secondsièisresponse status: %isresponse header: %s: %s(RdR¨RnRoRpRgtsecondstmicrosecondsRtterrorRjRbRTRRœRRDRm(tloggerR‚t_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.pyRfks
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œRnR•R¤Rtos.pathR¯RÄRhtrequests.exceptionsR5R7tsix.moves.urllib_parsetmovesturllib_parseRMtrequestbuilder.exceptionsRRRRtrequestbuilder.mixinsRRR—RfR®(((s:/usr/lib/python2.7/site-packages/requestbuilder/service.pyt<module>s&"ÿ:		
Back to Directory File Manager