Spade
Mini Shell
�
q�fc@s�dZddlZddlZddlZddlZddlmZmZmZmZd�Z dej
fd��YZddd��YZd efd
��YZ
deefd��YZd
eefd��YZdS(sKSelf documenting
XML-RPC Server.
This module can be used to create XML-RPC servers that
serve pydoc-style documentation in response to HTTP
GET requests. This documentation is dynamically generated
based on the functions and methods registered with the
server.
This module is built upon the pydoc and SimpleXMLRPCServer
modules.
i����N(tSimpleXMLRPCServertSimpleXMLRPCRequestHandlertCGIXMLRPCRequestHandlertresolve_dotted_attributecCs^|jdd�}|jdd�}|jdd�}|jdd�}|jd d
�}|S(Nt&s&t<s<t>s>t"s"s's'(treplace(ts((s'/usr/lib64/python2.7/DocXMLRPCServer.pyt_html_escape_quotest
ServerHTMLDoccBsDeZdZdiiid�Zdiiidd�Zd�ZRS(s7Class
used to generate pydoc HTML document for a
servercCs�|p|j}g}d}tjd�}x|j||�} | sIPn| j�\}
}|j||||
!��| j�\}}
}}}}|
r�||�jdd�}|jd||f�n�|rdt|�}|jd|||�f�n�|r7dt|�}|jd|||�f�nl|||d!d krp|j|j ||||��n3|r�|jd
|�n|j|j ||��|}q-|j|||��dj
|�S(s�Mark up some plain text, given a context of symbols to look
for.
Each context dictionary maps object names to anchor
names.isM\b((http|ftp)://\S+[\w/]|RFC[- ]?(\d+)|PEP[-
]?(\d+)|(self\.)?((?:\w|\.)+))\bRs"s<a
href="%s">%s</a>s'http://www.rfc-editor.org/rfc/rfc%d.txts(http://www.python.org/dev/peps/pep-%04d/it(sself.<strong>%s</strong>t(tescapetretcompiletsearchtspantappendtgroupsRtinttnamelinktjoin(tselfttextRtfuncstclassestmethodstresultstheretpatterntmatchtstarttendtalltschemetrfctpeptselfdottnameturl((s'/usr/lib64/python2.7/DocXMLRPCServer.pytmarkup$s8
" cCs�|r|jpdd|}d} d|j|�|j|�f}
tj|�r�tj|j�\}}}
}tj|d||
|d|j�}nTtj|�r�tj|�\}}}
}tj|||
|d|j�}nd}t |t
�r |dp
|}|dpd}ntj|�}|
|| oL|j
d| �}|j||j|||�}|o{d |}d
||fS(s;Produce HTML documentation for a function or method
object.R
t-s$<a
name="%s"><strong>%s</strong></a>itformatvalues(...)is'<font
face="helvetica,
arial">%s</font>s<dd><tt>%s</tt></dd>s<dl><dt>%s</dt>%s</dl>
(t__name__Rtinspecttismethodt
getargspectim_funct
formatargspecR,t
isfunctiont
isinstancettupletpydoctgetdoctgreyR*t preformat(RtobjectR(tmodRRRtcltanchortnotettitletargstvarargstvarkwtdefaultstargspect docstringtdecltdoc((s'/usr/lib64/python2.7/DocXMLRPCServer.pyt
docroutineMs6cCsi}x6|j�D](\}}d|||<||||<qW|j|�}d|}|j|dd�}|j||j|�} | o�d| } |d| }g}
t|j��}x3|D]+\}}|
j|j||d|��q�W||jddd t j
|
��}|S(
s1Produce HTML documentation for an XML-RPC
server.s#-s)<big><big><strong>%s</strong></big></big>s#ffffffs#7799ees<tt>%s</tt>s
<p>%s</p>
RtMethodss#eeaa77(titemsRtheadingR*R9tsortedRRHt
bigsectionR6R(Rtserver_nametpackage_documentationRtfdicttkeytvaluetheadtresultRGtcontentstmethod_items((s'/usr/lib64/python2.7/DocXMLRPCServer.pyt docserverws"
# N(R-t
__module__t__doc__tNoneR*RHRW(((s'/usr/lib64/python2.7/DocXMLRPCServer.pyR!s
))tXMLRPCDocGeneratorcBs;eZdZd�Zd�Zd�Zd�Zd�ZRS(s�Generates
documentation for an XML-RPC server.
This class is designed as mix-in and should not
be constructed directly.
cCsd|_d|_d|_dS(NsXML-RPC Server DocumentationsGThis server
exports the following methods through the XML-RPC
protocol.(RNtserver_documentationtserver_title(R((s'/usr/lib64/python2.7/DocXMLRPCServer.pyt__init__�s cCs
||_dS(s8Set
the HTML title of the generated server
documentationN(R](RR]((s'/usr/lib64/python2.7/DocXMLRPCServer.pytset_server_title�scCs
||_dS(s7Set
the name of the generated HTML server
documentationN(RN(RRN((s'/usr/lib64/python2.7/DocXMLRPCServer.pytset_server_name�scCs
||_dS(s3Set
the documentation string for the entire
server.N(R\(RR\((s'/usr/lib64/python2.7/DocXMLRPCServer.pytset_server_documentation�scCsii}x|j�D]}||jkr8|j|}n�|jdk rddg}t|jd�r~|jj|�|d<nt|jd�r�|jj|�|d<nt|�}|dkr�|}qt|jd�syt|j|�}Wqt k
r|}qXq|}n|||<qWt
�}|j|j|j
|�}t|j�}|j||�S(sgenerate_html_documentation()
=> html documentation for the server
Generates HTML documentation for the server using introspection for
installed functions and instances that do not implement the
_dispatch method. Alternatively, instances can choose to implement
the _get_method_argstring(method_name) method to provide the
argument string used in the documentation and the
_methodHelp(method_name) method to provide the help text used
in the
documentation.t_get_method_argstringit_methodHelpit _dispatchN(NN(tsystem_listMethodsRtinstanceRZthasattrRbRcR5RtAttributeErrorRRWRNR\R
R]tpage(RRtmethod_nametmethodtmethod_infot
documentert
documentationR?((s'/usr/lib64/python2.7/DocXMLRPCServer.pytgenerate_html_documentation�s:
(R-RXRYR^R_R`RaRo(((s'/usr/lib64/python2.7/DocXMLRPCServer.pyR[�s tDocXMLRPCRequestHandlercBseZdZd�ZRS(s�XML-RPC
and documentation request handler class.
Handles all HTTP POST requests and attempts to decode them as
XML-RPC requests.
Handles all HTTP GET requests and interprets them as requests
for documentation.
cCs�|j�s|j�dS|jj�}|jd�|jdd�|jdtt|���|j�|j j
|�dS(s}Handles the HTTP GET request.
Interpret all HTTP GET requests as requests for server
documentation.
Ni�sContent-types text/htmlsContent-length(tis_rpc_path_validt
report_404tserverRot
send_responsetsend_headertstrtlentend_headerstwfiletwrite(Rtresponse((s'/usr/lib64/python2.7/DocXMLRPCServer.pytdo_GET�s
(R-RXRYR|(((s'/usr/lib64/python2.7/DocXMLRPCServer.pyRp�stDocXMLRPCServercBs&eZdZededed�ZRS(s�XML-RPC
and HTML documentation server.
Adds the ability to serve server documentation to the capabilities
of SimpleXMLRPCServer.
icCs0tj|||||||�tj|�dS(N(RR^R[(RtaddrtrequestHandlertlogRequestst
allow_nonetencodingtbind_and_activate((s'/usr/lib64/python2.7/DocXMLRPCServer.pyR^s
N(R-RXRYRptFalseRZtTrueR^(((s'/usr/lib64/python2.7/DocXMLRPCServer.pyR}�s tDocCGIXMLRPCRequestHandlercBs
eZdZd�Zd�ZRS(sJHandler for XML-RPC data and documentation
requests passed through
CGIcCs5|j�}dGHdt|�GHHtjj|�dS(s}Handles the HTTP
GET request.
Interpret all HTTP GET requests as requests for server
documentation.
sContent-Type: text/htmlsContent-Length:
%dN(RoRwtsyststdoutRz(RR{((s'/usr/lib64/python2.7/DocXMLRPCServer.pyt
handle_gets
cCstj|�tj|�dS(N(RR^R[(R((s'/usr/lib64/python2.7/DocXMLRPCServer.pyR^
s
(R-RXRYR�R^(((s'/usr/lib64/python2.7/DocXMLRPCServer.pyR�
s ((RYR6R.RR�RRRRR
tHTMLDocRR[RpR}R�(((s'/usr/lib64/python2.7/DocXMLRPCServer.pyt<module>s" oR