MINI MINI MANI MO

Path : /usr/lib64/python3.6/xmlrpc/__pycache__/
File Upload :
Current File : //usr/lib64/python3.6/xmlrpc/__pycache__/server.cpython-36.opt-2.pyc

3


 \2@sddlmZmZmZmZmZddlmZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZyddlZWnek
rdZYnXd)ddZddZGd	d
d
ZGdddeZGd
dde	jeZGdddeZGdddeZGddde
jZGdddZGdddeZGdddeeZGdddeeZe dkrddl!Z!GdddZ"ed*~Z#e#j$e%e#j$d"d#d$e#j&e"dd%e#j'e(d&e(d'ye#j)Wn(e*k
re(d(e
j+dYnXWdQRXdS)+)Faultdumpsloadsgzip_encodegzip_decode)BaseHTTPRequestHandlerNTcCsJ|r|jd}n|g}x.|D]&}|jdr8td|qt||}qW|S)N._z(attempt to access private attribute "%s")split
startswithAttributeErrorgetattr)objattrallow_dotted_namesZattrsir%/usr/lib64/python3.6/xmlrpc/server.pyresolve_dotted_attributezs


rcsfddtDS)Ncs*g|]"}|jdrtt|r|qS)r	)rcallabler
).0member)rrr
<listcomp>sz'list_public_methods.<locals>.<listcomp>)dir)rr)rrlist_public_methodssrc@sleZdZdddZdddZdddZd	d
ZddZdd
dZddZ	ddZ
ddZddZddZ
dS)SimpleXMLRPCDispatcherFNcCs&i|_d|_||_|pd|_||_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!Zfunctionnamerrrregister_functionsz(SimpleXMLRPCDispatcher.register_functioncCs|jj|j|j|jddS)N)zsystem.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_functionscCsyPt||jd\}}|dk	r(|||}n|j||}|f}t|d|j|jd}Wntk
r}zt||j|jd}WYdd}~XnNtj\}}	}
z$ttdd||	f|j|jd}Wdd}}	}
XYnX|j	|jdS)N)r )Zmethodresponserr)rrz%s:%s)rrxmlcharrefreplace)
rr 	_dispatchrrrrsysexc_infoencode)r!datadispatch_methodpathparamsmethodresponsefaultexc_type	exc_valueexc_tbrrr_marshaled_dispatchs&z*SimpleXMLRPCDispatcher._marshaled_dispatchcCs^t|jj}|jdk	rVt|jdr8|t|jjO}nt|jdsV|tt|jO}t|S)N_listMethodsr0)setrkeysrhasattrr?rsorted)r!methodsrrrr(s
z)SimpleXMLRPCDispatcher.system_listMethodscCsdS)Nzsignatures not supportedr)r!method_namerrrr)(sz-SimpleXMLRPCDispatcher.system_methodSignaturecCsd}||jkr|j|}nX|jdk	rrt|jdr<|jj|St|jdsryt|j||j}Wntk
rpYnX|dkr~dStj|SdS)N_methodHelpr0)	rrrBrFrrrpydocgetdoc)r!rEr8rrrr*5s"

z(SimpleXMLRPCDispatcher.system_methodHelpc
Csg}x|D]}|d}|d}y|j|j||gWq
tk
rl}z|j|j|jdWYdd}~Xq
tj\}}}	z|jdd||fdWdd}}}	XYq
Xq
W|S)NZ
methodNamer7)	faultCodefaultStringr.z%s:%s)appendr0rrJrKr1r2)
r!Z	call_listresultsZcallrEr7r:r;r<r=rrrr,Ts$

z'SimpleXMLRPCDispatcher.system_multicallcCsy|j|}Wntk
r"YnX|dk	r4||Std||jdk	rt|jdrd|jj||Syt|j||j}Wntk
rYnX|dk	r||Std|dS)Nzmethod "%s" is not supportedr0)	rKeyError	ExceptionrrBr0rrr)r!r8r7funcrrrr0xs(
z SimpleXMLRPCDispatcher._dispatch)FNF)F)N)NN)r$
__module____qualname__r"r#r&r+r-r>r(r)r*r,r0rrrrrs	

$

)
$rc@sbeZdZdZdZdZdZejdej	ej
BZddZd	d
Z
ddZd
dZddZdddZdS)SimpleXMLRPCRequestHandler//RPC2ixr.Tz
                            \s* ([^\s;]+) \s*            #content-coding
                            (;\s* q \s*=\s* ([0-9\.]+))? #q
                            cCsbi}|jjdd}xJ|jdD]<}|jj|}|r|jd}|rHt|nd}|||jd<qW|S)NzAccept-EncodingrG,g?r.)headersgetr
	aepatternmatchgroupfloat)r!rZaeer[vrrraccept_encodingss
z+SimpleXMLRPCRequestHandler.accept_encodingscCs|jr|j|jkSdSdS)NT)	rpc_pathsr6)r!rrris_rpc_path_validsz,SimpleXMLRPCRequestHandler.is_rpc_path_validcCs|js|jdSyd}t|jd}g}x>|rjt||}|jj|}|sNP|j||t|d8}q.Wdj	|}|j
|}|dkrdS|jj|t
|dd|j}Wntk
r6}zp|jdt|jdo|jjr|jd	t|tj}	t|	jd
dd
}	|jd|	|jd
d|jWYdd}~XnX|jd|jdd|jdk	rt||jkr|jjdd}
|
ryt|}|jddWntk
rYnX|jd
tt||j|jj|dS)N
izcontent-lengthr.r0i_send_traceback_headerzX-exceptionASCIIbackslashreplacezX-tracebackzContent-length0zContent-typeztext/xmlgziprzContent-Encodingi(i) rc
report_404intrXminZrfilereadrLlenjoindecode_request_contentserverr>r
r6rO
send_responserBrfsend_headerstr	traceback
format_excr3end_headersencode_thresholdrarYrNotImplementedErrorwfilewrite)r!Zmax_chunk_sizeZsize_remainingLZ
chunk_sizechunkr4r9r_Ztraceqrrrdo_POSTsX






z"SimpleXMLRPCRequestHandler.do_POSTcCs|jjddj}|dkr|S|dkrtyt|Stk
rR|jdd|Yqtk
rp|jddYqXn|jdd||jdd	|jdS)
Nzcontent-encodingZidentityrkizencoding %r not supportedizerror decoding gzip contentzContent-lengthri)	rXrYlowerrr|ru
ValueErrorrvrz)r!r4rrrrrssz1SimpleXMLRPCRequestHandler.decode_request_contentcCsF|jdd}|jdd|jdtt||j|jj|dS)NisNo such pagezContent-typez
text/plainzContent-length)rurvrwrqrzr}r~)r!r9rrrrm.s
z%SimpleXMLRPCRequestHandler.report_404-cCs|jjrtj|||dS)N)rtlogRequestsrlog_request)r!codesizerrrr7sz&SimpleXMLRPCRequestHandler.log_requestN)rTrUrl)rr)r$rQrRrbr{ZwbufsizeZdisable_nagle_algorithmrecompileVERBOSE
IGNORECASErZrarcrrsrmrrrrrrSs	G	rSc@s*eZdZdZdZedddddfddZdS)SimpleXMLRPCServerTFNcCs,||_tj||||tjj||||dS)N)rrr"socketserver	TCPServer)r!addrrequestHandlerrrrbind_and_activater rrrr"PszSimpleXMLRPCServer.__init__)r$rQrRZallow_reuse_addressrfrSr"rrrrr=s
rc@s<eZdZedddddfddZddZdd	Zdd
dZdS)
MultiPathXMLRPCServerTFNc	Cs2tj||||||||i|_||_|p*d|_dS)Nzutf-8)rr"dispatchersrr)r!rrrrrrr rrrr"as

zMultiPathXMLRPCServer.__init__cCs||j|<|S)N)r)r!r6Z
dispatcherrrradd_dispatcherks
z$MultiPathXMLRPCServer.add_dispatchercCs
|j|S)N)r)r!r6rrrget_dispatcherosz$MultiPathXMLRPCServer.get_dispatchercCs|y|j|j|||}Wn^tjdd\}}z2ttdd||f|j|jd}|j|jd}Wdd}}XYnX|S)Nr.z%s:%s)rrr/)	rr>r1r2rrrrr3)r!r4r5r6r9r;r<rrrr>rs
z)MultiPathXMLRPCServer._marshaled_dispatch)NN)r$rQrRrSr"rrr>rrrrrYsrc@s0eZdZdddZddZddZdd	d
ZdS)
CGIXMLRPCRequestHandlerFNcCstj||||dS)N)rr")r!rrr rrrr"sz CGIXMLRPCRequestHandler.__init__cCsP|j|}tdtdt|ttjjtjjj|tjjjdS)NzContent-Type: text/xmlzContent-Length: %d)r>printrqr1stdoutflushbufferr~)r!request_textr9rrr
handle_xmlrpcs

z%CGIXMLRPCRequestHandler.handle_xmlrpccCsd}tj|\}}tjj|||d}|jd}td||ftdtjjtdt|tt	j
jt	j
jj
|t	j
jjdS)Ni)rmessageexplainzutf-8z
Status: %d %szContent-Type: %szContent-Length: %d)rZ	responseshttprtZDEFAULT_ERROR_MESSAGEr3rZDEFAULT_ERROR_CONTENT_TYPErqr1rrrr~)r!rrrr9rrr
handle_gets


z"CGIXMLRPCRequestHandler.handle_getcCsz|dkr$tjjdddkr$|jnRyttjjdd}Wnttfk
rVd}YnX|dkrltjj	|}|j
|dS)NZREQUEST_METHODZGETZCONTENT_LENGTHr.rl)osenvironrYrrnr	TypeErrorr1stdinrpr)r!rZlengthrrrhandle_requests

z&CGIXMLRPCRequestHandler.handle_request)FNF)N)r$rQrRr"rrrrrrrrs
rc@s:eZdZdiiifddZdiiidfddZddZdS)
ServerHTMLDocNcCs^|p|j}g}d}tjd}x|j||}	|	s2P|	j\}
}|j||||
|	j\}}
}}}}|
r||jdd}|jd||fn|rdt|}|jd|||fn~|rdt|}|jd|||fnV|||dd	kr|j|j	||||n(|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>rG)escaperrsearchspanrLgroupsreplacernZnamelinkrr)r!textrrclassesrDrMherepatternr[startendallschemeZrfcZpepZselfdotr%Zurlrrrmarkups8

zServerHTMLDoc.markupcCs$|r
|jpdd|}d}	d|j||j|f}
tj|rrtj|}tj|jdd|j|j|j	|j
|jd}n<tj|rtj|}tj|j|j|j|j	|j
|jd}nd}t
|tr|dp|}|dpd}
n
tj|}
|
||	o|jd|	}|j|
|j|||}|od	|}d
||fS)NrGrz$<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
formatargspecargsZvarargsZvarkwZdefaultsrrZ
isfunction
isinstancetuplerHrIZgreyr	preformat)r!objectr%modrrrDZclZanchorZnotetitlerZargspecZ	docstringZdecldocrrr
docroutines<





zServerHTMLDoc.docroutinecCsi}x,|jD] \}}d|||<||||<qW|j|}d|}|j|dd}|j||j|}	|	old|	}	|d|	}g}
t|j}x&|D]\}}|
j|j|||dqW||jddd	d
j	|
}|S)Nz#-z)<big><big><strong>%s</strong></big></big>z#ffffffz#7799eez<tt>%s</tt>z
<p>%s</p>
)rZMethodsz#eeaa77rG)
itemsrZheadingrrrCrLrZ
bigsectionrr)r!server_nameZpackage_documentationrDZfdictkeyvalueheadresultrcontentsZmethod_itemsrrr	docserver#s"
zServerHTMLDoc.docserver)r$rQrRrrrrrrrrs),rc@s4eZdZddZddZddZddZd	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"CszXMLRPCDocGenerator.__init__cCs
||_dS)N)r)r!rrrrset_server_titleKsz#XMLRPCDocGenerator.set_server_titlecCs
||_dS)N)r)r!rrrrset_server_namePsz"XMLRPCDocGenerator.set_server_namecCs
||_dS)N)r)r!rrrrset_server_documentationUsz+XMLRPCDocGenerator.set_server_documentationcCsi}x|jD]}||jkr(|j|}n|jdk	rddg}t|jdrV|jj||d<t|jdrr|jj||d<t|}|dkr|}qt|jdsyt|j|}Wqtk
r|}YqXq|}n|||<qWt	}|j
|j|j|}|j
|j|S)N_get_method_argstringrrFr.r0)NN)r(rrrBrrFrrrrrrrZpager)r!rDrEr8Zmethod_infoZ
documenterZ
documentationrrrgenerate_html_documentationZs8


z.XMLRPCDocGenerator.generate_html_documentationN)r$rQrRr"rrrrrrrrr<s
rc@seZdZddZdS)DocXMLRPCRequestHandlercCsf|js|jdS|jjjd}|jd|jdd|jdtt||j	|j
j|dS)Nzutf-8rjzContent-typez	text/htmlzContent-length)rcrmrtrr3rurvrwrqrzr}r~)r!r9rrrdo_GETs
zDocXMLRPCRequestHandler.do_GETN)r$rQrRrrrrrrs
rc@s"eZdZedddddfddZdS)DocXMLRPCServerTFNc	Cs&tj||||||||tj|dS)N)rr"r)r!rrrrrrr rrrr"szDocXMLRPCServer.__init__)r$rQrRrr"rrrrrsrc@seZdZddZddZdS)DocCGIXMLRPCRequestHandlercCsT|jjd}tdtdt|ttjjtjjj|tjjjdS)Nzutf-8zContent-Type: text/htmlzContent-Length: %d)	rr3rrqr1rrrr~)r!r9rrrrs
z%DocCGIXMLRPCRequestHandler.handle_getcCstj|tj|dS)N)rr"r)r!rrrr"s
z#DocCGIXMLRPCRequestHandler.__init__N)r$rQrRrr"rrrrrsr__main__c@s"eZdZddZGdddZdS)ExampleServicecCsdS)NZ42r)r!rrrgetDataszExampleService.getDatac@seZdZeddZdS)zExampleService.currentTimecCs
tjjS)N)datetimeZnowrrrrgetCurrentTimesz)ExampleService.currentTime.getCurrentTimeN)r$rQrRstaticmethodrrrrrcurrentTimesrN)r$rQrRrrrrrrrsr	localhost@cCs||S)Nr)xyrrr<lambda>sradd)rz&Serving XML-RPC on localhost port 8000zKIt is advisable to run this example server within a secure, closed network.z&
Keyboard interrupt received, exiting.)T)rr),Z
xmlrpc.clientrrrrrZhttp.serverrrrr1rrrHrrxZfcntlImportErrorrrrrSrrrrZHTMLDocrrrrrr$rrrtr&powr#r-rZ
serve_foreverKeyboardInterruptexitrrrr<module>ks\

,ErQ
	



OHA YOOOO