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



]v@sddlmZmZmZmZmZddlmZddlZddlZ	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZyddlZWnek
rdZYnXdddZddZGd	d
d
ZGdddeZGd
dde
jeZGdddeZGdddeZGdddejZGdddZGdddeZGdddeeZGdddeeZ e!dkrddl"Z"GdddZ#ed d!fZ$e$j%e&e$j%d"d#d$e$j'e#d%de$j(e)d&e)d'ye$j*Wn3e+k
re)d(e$j,ej-dYnXdS)))Faultdumpsloadsgzip_encodegzip_decode)BaseHTTPRequestHandlerNTcCsg|r|jd}n	|g}x?|D]7}|jdrPtd|q(t||}q(W|S)N._z(attempt to access private attribute "%s")split
startswithAttributeErrorgetattr)objattrallow_dotted_namesZattrsir+/opt/alt/python35/lib64/python3.5/server.pyresolve_dotted_attribute{s
	
rcsfddtDS)Ncs;g|]1}|jdrtt|r|qS)r	)rcallabler
).0member)rrr
<listcomp>s	z'list_public_methods.<locals>.<listcomp>)dir)rr)rrlist_public_methodssrc@seZdZdddddZdddZdddZd	d
ZddZddd
dZddZ	ddZ
ddZddZddZ
dS)SimpleXMLRPCDispatcherFNcCs7i|_d|_||_|p$d|_||_dS)Nzutf-8)funcsinstance
allow_noneencodinguse_builtin_types)selfrrr rrr__init__s
			zSimpleXMLRPCDispatcher.__init__cCs||_||_dS)N)rr)r!rrrrrregister_instances!	z(SimpleXMLRPCDispatcher.register_instancecCs&|dkr|j}||j|<dS)N)__name__r)r!functionnamerrrregister_functions	z(SimpleXMLRPCDispatcher.register_functioncCs/|jjd|jd|jd|jidS)Nzsystem.listMethodszsystem.methodSignaturezsystem.methodHelp)rupdatesystem_listMethodssystem_methodSignaturesystem_methodHelp)r!rrr register_introspection_functionss	z7SimpleXMLRPCDispatcher.register_introspection_functionscCs|jjd|jidS)Nzsystem.multicall)rr(system_multicall)r!rrrregister_multicall_functionssz3SimpleXMLRPCDispatcher.register_multicall_functionscCs"y|t|d|j\}}|dk	r<|||}n|j||}|f}t|ddd|jd|j}Wntk
r}z#t|d|jd|j}WYdd}~XnNtj\}}	}
ttdd||	fd|jd|j}YnX|j	|jdS)Nr Zmethodresponserrz%s:%sxmlcharrefreplace)
rr 	_dispatchrrrrsysexc_infoencode)r!datadispatch_methodpathparamsmethodresponsefaultexc_type	exc_valueexc_tbrrr_marshaled_dispatchs"	z*SimpleXMLRPCDispatcher._marshaled_dispatchcCst|jj}|jdk	r}t|jdrR|t|jjO}n+t|jds}|tt|jO}t|S)N_listMethodsr1)setrkeysrhasattrr@rsorted)r!methodsrrrr)sz)SimpleXMLRPCDispatcher.system_listMethodscCsdS)Nzsignatures not supportedr)r!method_namerrrr*%sz-SimpleXMLRPCDispatcher.system_methodSignaturecCsd}||jkr%|j|}nt|jdk	rt|jdrV|jj|St|jdsyt|j||j}Wntk
rYnX|dkrdStj|SdS)N_methodHelpr1)	rrrCrGrrrpydocgetdoc)r!rFr9rrrr+2s"
z(SimpleXMLRPCDispatcher.system_methodHelpc
Csg}x|D]}|d}|d}y |j|j||gWq
tk
r}z$|jd|jd|jiWYdd}~Xq
tj\}}}	|jdddd||fiYq
Xq
W|S)NZ
methodNamer8	faultCodefaultStringr/z%s:%s)appendr1rrKrLr2r3)
r!Z	call_listresultscallrFr8r;r<r=r>rrrr-Qs 



 	" z'SimpleXMLRPCDispatcher.system_multicallcCsy|j|}Wntk
r%Yn'X|dk	r<||Std||jdk	rt|jdr|jj||Syt|j||j}Wntk
rYnX|dk	r||Std|dS)Nzmethod "%s" is not supportedr1)	rKeyError	ExceptionrrCr1rrr)r!r9r8funcrrrr1qs(



z SimpleXMLRPCDispatcher._dispatch)r$
__module____qualname__r"r#r'r,r.r?r)r*r+r-r1rrrrrs	$%
 rc@seZdZdZdZdZdZejdej	ej
BZddZd	d
Z
ddZd
dZddZddddZdS)SimpleXMLRPCRequestHandler//RPC2ixr/Tz
                            \s* ([^\s;]+) \s*            #content-coding
                            (;\s* q \s*=\s* ([0-9\.]+))? #q
                            cCsi}|jjdd}xi|jdD]X}|jj|}|r+|jd}|rjt|nd}|||jd<q+W|S)NzAccept-EncodingrH,g?r/)headersgetr
	aepatternmatchgroupfloat)r!rZaeer]vrrraccept_encodingssz+SimpleXMLRPCRequestHandler.accept_encodingscCs!|jr|j|jkSdSdS)NT)	rpc_pathsr7)r!rrris_rpc_path_valids	z,SimpleXMLRPCRequestHandler.is_rpc_path_validcCsp|js|jdSyd}t|jd}g}xS|rt||}|jj|}|smP|j||t|d8}q?Wdj	|}|j
|}|dkrdS|jj|t
|dd|j}Wntk
r}z|jdt|jdru|jjru|jd	t|tj}	t|	jd
dd
}	|jd|	|jd
d|jWYdd}~XnX|jd|jdd|jdk	r6t||jkr6|jjdd}
|
r6y t|}|jddWntk
r5YnX|jd
tt||j|jj|dS)N
izcontent-lengthr/r1i_send_traceback_headerzX-exceptionASCIIbackslashreplacezX-tracebackzContent-length0zContent-typeztext/xmlgziprzContent-Encodingi(i) re
report_404intrZminZrfilereadrMlenjoindecode_request_contentserverr?r
r7rQ
send_responserCrhsend_headerstr	traceback
format_excr4end_headersencode_thresholdrcr[rNotImplementedErrorwfilewrite)r!Zmax_chunk_sizeZsize_remainingLZ
chunk_sizechunkr5r:raZtraceqrrrdo_POSTsX
	
	"



z"SimpleXMLRPCRequestHandler.do_POSTcCs|jjddj}|dkr+|S|dkryt|SWqtk
rm|jdd|Yqtk
r|jddYqXn|jdd||jdd	|jdS)
Nzcontent-encodingidentityrmizencoding %r not supportedizerror decoding gzip contentzContent-lengthrk)	rZr[lowerrr~rw
ValueErrorrxr|)r!r5rrrrrus

z1SimpleXMLRPCRequestHandler.decode_request_contentcCs]|jdd}|jdd|jdtt||j|jj|dS)NisNo such pagezContent-typez
text/plainzContent-length)rwrxryrsr|rr)r!r:rrrro's

z%SimpleXMLRPCRequestHandler.report_404-cCs#|jjrtj|||dS)N)rvlogRequestsrlog_request)r!codesizerrrr0sz&SimpleXMLRPCRequestHandler.log_requestN)rVrWrn)r$rSrTrdr}ZwbufsizeZdisable_nagle_algorithmrecompileVERBOSE
IGNORECASEr\rcrerrurorrrrrrUs	G	rUc@s:eZdZdZdZedddddddZdS)SimpleXMLRPCServerTFNcCs<||_tj||||tjj||||dS)N)rrr"socketserver	TCPServer)r!addrrequestHandlerrrrbind_and_activater rrrr"Is	zSimpleXMLRPCServer.__init__)r$rSrTZallow_reuse_addressrhrUr"rrrrr6s
	rc@sXeZdZedddddddZddZdd	Zddd
dZdS)MultiPathXMLRPCServerTFNc	CsGtj||||||||i|_||_|p=d|_dS)Nzutf-8)rr"dispatchersrr)r!rrrrrrr rrrr"Zs

		zMultiPathXMLRPCServer.__init__cCs||j|<|S)N)r)r!r7Z
dispatcherrrradd_dispatcherds
z$MultiPathXMLRPCServer.add_dispatchercCs|j|S)N)r)r!r7rrrget_dispatcherhsz$MultiPathXMLRPCServer.get_dispatchercCsy |j|j|||}Wnjtjdd\}}ttdd||fd|jd|j}|j|jd}YnX|S)Nr/z%s:%srrr0)	rr?r2r3rrrrr4)r!r5r6r7r:r<r=rrrr?ks
z)MultiPathXMLRPCServer._marshaled_dispatch)r$rSrTrUr"rrr?rrrrrRs	rc@sLeZdZdddddZddZddZdd	d
ZdS)CGIXMLRPCRequestHandlerFNcCstj||||dS)N)rr")r!rrr rrrr"}sz CGIXMLRPCRequestHandler.__init__cCsh|j|}tdtdt|ttjjtjjj|tjjjdS)NzContent-Type: text/xmlzContent-Length: %d)r?printrsr2stdoutflushbufferr)r!request_textr:rrr
handle_xmlrpcs

z%CGIXMLRPCRequestHandler.handle_xmlrpccCsd}tj|\}}tjjd|d|d|i}|jd}td||ftdtjjtdt|tt	j
jt	j
jj
|t	j
jjdS)	Nirmessageexplainzutf-8z
Status: %d %szContent-Type: %szContent-Length: %d)rZ	responseshttprvZDEFAULT_ERROR_MESSAGEr4rZDEFAULT_ERROR_CONTENT_TYPErsr2rrrr)r!rrrr:rrr
handle_gets	

z"CGIXMLRPCRequestHandler.handle_getcCs|dkr4tjjdddkr4|jnkyttjjdd}Wnttfk
rsd}YnX|dkrtjj	|}|j
|dS)NZREQUEST_METHODGETZCONTENT_LENGTHr/rn)osenvironr[rrpr	TypeErrorr2stdinrrr)r!rlengthrrrhandle_requests
z&CGIXMLRPCRequestHandler.handle_request)r$rSrTr"rrrrrrrrzsrc@sOeZdZdiiiddZdiiidddZddZdS)
ServerHTMLDocNcCs|p|j}g}d}tjd}x|j||}	|	sFP|	j\}
}|j||||
|	j\}}
}}}}|
r||jdd}|jd||fn|rdt|}|jd|||fn|r7dt|}|jd|||fno|||dd	krs|j|j	||||n3|r|jd
|n|j|j	|||}q-W|j|||ddj
|S)NrzM\b((http|ftp)://\S+[\w/]|RFC[- ]?(\d+)|PEP[- ]?(\d+)|(self\.)?((?:\w|\.)+))\b"z&quot;z<a href="%s">%s</a>z'http://www.rfc-editor.org/rfc/rfc%d.txtz(http://www.python.org/dev/peps/pep-%04d/r/(zself.<strong>%s</strong>rH)escaperrsearchspanrMgroupsreplacerpZnamelinkrt)r!textrrclassesrErNherepatternr]startendallschemeZrfcZpepZselfdotr&Zurlrrrmarkups8  "
zServerHTMLDoc.markupc	Cs|r|jpdd|}d}	d|j||j|f}
tj|rtj|}tj|jdd|j|j|j	d|j
d|j}n]tj|rtj|}tj|j|j|j|j	d|j
d|j}nd}t
|tr5|dp|}|dp/d}
ntj|}
|
||	oa|jd	|	}|j|
|j|||}|od
|}d||fS)NrHrz$<a name="%s"><strong>%s</strong></a>r/annotationsformatvaluez(...)rz'<font face="helvetica, arial">%s</font>z<dd><tt>%s</tt></dd>z<dl><dt>%s</dt>%s</dl>
)r$rinspectZismethodZgetfullargspecZ
formatargspecargsZvarargsZvarkwdefaultsrrZ
isfunction
isinstancetuplerIrJZgreyr	preformat)r!objectr&modrrrEZclZanchorZnotetitlerZargspecZ	docstringZdecldocrrr
docroutines<			zServerHTMLDoc.docroutinecCsi}x6|jD](\}}d|||<||||<qW|j|}d|}|j|dd}|j||j|}	|	od|	}	|d|	}g}
t|j}x3|D]+\}}|
j|j||d|qW||jddd	d
j	|
}|S)Nz#-z)<big><big><strong>%s</strong></big></big>z#ffffffz#7799eez<tt>%s</tt>z
<p>%s</p>
rZMethodsz#eeaa77rH)
itemsrheadingrrrDrMrZ
bigsectionrt)r!server_nameZpackage_documentationrEZfdictkeyvalueheadresultrcontentsZmethod_itemsrrr	docservers"
#	zServerHTMLDoc.docserver)r$rSrTrrrrrrrrs),rc@sLeZdZddZddZddZddZd	d
ZdS)XMLRPCDocGeneratorcCsd|_d|_d|_dS)NzXML-RPC Server DocumentationzGThis server exports the following methods through the XML-RPC protocol.)rserver_documentationserver_title)r!rrrr"8s		zXMLRPCDocGenerator.__init__cCs
||_dS)N)r)r!rrrrset_server_title@sz#XMLRPCDocGenerator.set_server_titlecCs
||_dS)N)r)r!rrrrset_server_nameEsz"XMLRPCDocGenerator.set_server_namecCs
||_dS)N)r)r!rrrrset_server_documentationJsz+XMLRPCDocGenerator.set_server_documentationcCsai}x|jD]
}||jkr8|j|}n|jdk	rddg}t|jdr{|jj||d<t|jdr|jj||d<t|}|dkr|}qt|jds
yt|j|}Wqtk
r|}YqXq|}n|||<qWt	}|j
|j|j|}|j
tj|j|S)N_get_method_argstringrrGr/r1)NN)r)rrrCrrGrrrrrrrZpagehtmlrr)r!rErFr9Zmethod_infoZ
documenterZ
documentationrrrgenerate_html_documentationOs8	

			z.XMLRPCDocGenerator.generate_html_documentationN)r$rSrTr"rrrrrrrrr1s
rc@seZdZddZdS)DocXMLRPCRequestHandlercCs|js|jdS|jjjd}|jd|jdd|jdtt||j	|j
j|dS)Nzutf-8rlzContent-typez	text/htmlzContent-length)rerorvrr4rwrxryrsr|rr)r!r:rrrdo_GETs


zDocXMLRPCRequestHandler.do_GETN)r$rSrTrrrrrrs
rc@s.eZdZedddddddZdS)DocXMLRPCServerTFNc	Cs3tj||||||||tj|dS)N)rr"r)r!rrrrrrr rrrr"s	zDocXMLRPCServer.__init__)r$rSrTrr"rrrrrs	rc@s(eZdZddZddZdS)DocCGIXMLRPCRequestHandlercCsn|jjd}tdtdt|ttjjtjjj|tjjjdS)Nzutf-8zContent-Type: text/htmlzContent-Length: %d)	rr4rrsr2rrrr)r!r:rrrrs

z%DocCGIXMLRPCRequestHandler.handle_getcCstj|tj|dS)N)rr"r)r!rrrr"s
z#DocCGIXMLRPCRequestHandler.__init__N)r$rSrTrr"rrrrrsr__main__c@s/eZdZddZGdddZdS)ExampleServicecCsdS)NZ42r)r!rrrgetDataszExampleService.getDatac@s"eZdZeddZdS)zExampleService.currentTimecCs
tjjS)N)datetimeZnowrrrrgetCurrentTimesz)ExampleService.currentTime.getCurrentTimeN)r$rSrTstaticmethodrrrrrcurrentTimesrN)r$rSrTrrrrrrrsr	localhosti@cCs||S)Nr)xyrrr<lambda>sraddrz&Serving XML-RPC on localhost port 8000zKIt is advisable to run this example server within a secure, closed network.z&
Keyboard interrupt received, exiting.).
xmlrpc.clientrrrrrZhttp.serverrrrrr2rrrIrrzZfcntlImportErrorrrrrUrrrrZHTMLDocrrrrrr$rrrvr'powr#r.rZ
serve_foreverKeyboardInterruptZserver_closeexitrrrr<module>ks\(

	(ErQ			







Back to Directory File Manager