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



Yfؔ@s4dgZdZdZdZddlZddlZddlZddlZddl	Zddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlmZddlmZddlmZd	d
ZddZd
dZddZddZ ddZ!ddZ"ej#dej$Z%ddZ&ddZ'ddZ(ddZ)d d!Z*ddd"d#Z+d$d%Z,d&d'Z-d(d)Z.id*d+Z/Gd,d-d-e0Z1d.d/Z2did0d1Z3Gd2d3d3Z4Gd4d5d5eZ5Gd6d7d7e4Z6Gd8d9d9eZ7Gd:d;d;e4Z8Gd<d=d=e8Z9d>d?a:d@dAZ;dBdCZ<dDdEZ=dFdGZ>dHdIZ?dJdKZ@dLdMZAdNdOZBddPdQZCe8ZDe9ZEe6ZFddRdSZGdTdddUdVZHdTdddWdXZIddYdZZJd[dd\d]ZKGd^d_d_ZLeLZMGd`dadaZNdbdcZOdddeZPdfdgdhZQddidjdkdlZRdmdnZSdodpZTeUdqkr0eTdS)rhelpzKa-Ping Yee <ping@lfw.org>z26 February 2001zGuido van Rossum, for an excellent programming language.
Tommy Burnette, the original creator of manpy.
Paul Prescod, for all his work on onlinehelp.
Richard Chamberlain, for the first implementation of textdoc.
N)deque)Repr)format_exception_onlycCsg}g}xstjD]h}tjj|p.d}tjj|}||krtjj|r|j||j|qW|S)N.)syspathosabspathnormcaseisdirappend)dirsZnormdirsdirnormdirr*/opt/alt/python35/lib64/python3.5/pydoc.pypathdirsMs
rcCsCtj|ptj|}|r?tjdd|jpBdS)Nz^ *
)inspectgetdocZgetcommentsresubrstrip)objectresultrrrrYsrcCs|jjd}t|dkr5|ddfSt|dkry|djry|ddj|ddfSddj|fS)N
rr)stripsplitlenrjoin)doclinesrrrsplitdoc^s#!r%cCs-|j}|j|kr)|jd|}|S)Nr)__name__
__module__)rmodnamenamerrr	classnamegs	r*cCsYtj|pWtj|pWtj|pWtj|pWtj|pWtj|S)N)rismoduleisclass	isroutineZisframeZistracebackZiscode)rrrrisdatansr.cGsAx:|r<|dj|j|d}|dd}qW|S)Nrrr)r"r )textZpairsrrrreplacets	 r0cCsnt||krjtd|dd}td|d|}|d|d|t||dS|S)Nrrz...)r!max)r/maxlenpreZpostrrrcram{s
*r5z at 0x[0-9a-f]{6,16}(>+)$cCstjd|S)Nz\1)_re_stripidr)r/rrrstripidsr7cCs:tj|p9tj|p9tj|p9tj|S)N)r
isfunctionismethod	isbuiltinZismethoddescriptor)objrrr_is_some_methodsr<cCsRtj|rdStj|rNt|dd}tj|pL|dkSdS)NT__self__F)rr9r:getattrr+)fnselfrrr_is_bound_methodsrAcCsi}x*tj|tD]\}}d||<qWx$|jD]}|jt|q=Wx'|jD]}t||||<qgW|S)Nr)r
getmembersr<	__bases__update
allmethodskeysr>)clmethodskeyvaluebaserrrrEsrEcCsPg}g}x7|D]/}||r5|j|q|j|qW||fS)N)r
)s	predicateyesnoxrrr_split_lists
rQcCs||dkrdS|jdr2|jdr2dS|jdrTt|drTdS|dk	rj||kS|jdSdS)N
__author____builtins__
__cached____credits____date____doc____file____spec__
__loader__r'r&__package____path____qualname__	__slots____version__r__r__fieldsT>rYrTrUr\r_r[rVr'rRrXr^r]rSrZrWr&)
startswithendswithhasattr)r)allr;rrrvisiblenames	
rgcCs^g}xQtj|D]@\}}}}tj|r=d}|j||||fqW|S)Nzdata descriptor)rclassify_class_attrsisdatadescriptorr
)rresultsr)kindclsrJrrrrhs"rhcCsPtjj|rLx7dD]/}tjjtjj|d|rdSqWdS)N.py.pyc__init__TF)rmrn)r	rrisfiler")rextrrr	ispackages

%rrcCs|j}x:|dddks2|jrH|j}|sPqW|j}|dddkr{|dd}|dddkr	|dd}|d	ddkr|dd
}x#|js|j}|sPqW|jddj}nd}|S)Nr#zr"""r1z"""\rrv)readlinerr )filelinerrrrsource_synopsiss&&rzc
Cstj|j}|j|d\}}|dksB||kr||jttjjrltjj	}n0|jttjj
rtjj}nd}|dkrytj
|}Wntk
rdSYnX|t|}WdQRXn{|d|}tjjd|d|}ytjj|}	WndSYnXtjd=|	jrf|	jjdnd}||f||<|S)NZ__temp__loaderr)NN)r	statst_mtimegetrdtuple	importlib	machineryBYTECODE_SUFFIXESSourcelessFileLoaderEXTENSION_SUFFIXESExtensionFileLoadertokenizeopenOSErrorrzutilspec_from_file_location
_bootstrap_loadrmodulesrW
splitlines)
filenamecachemtimeZ
lastupdaterZ
loader_clsrxr{specmodulerrrsynopsiss4
			
"rc@s(eZdZddZddZdS)ErrorDuringImportcCs%||_|\|_|_|_dS)N)rexcrJtb)r@rexc_inforrrros	zErrorDuringImport.__init__cCs#|jj}d|j||jfS)Nzproblem in %s - %s: %s)rr&rrJ)r@rrrr__str__szErrorDuringImport.__str__N)r&r'r]rorrrrrrsrc
Cstjj}t|d4}|jt|}||tjjfk}WdQRXtjj	|}tjj
|\}}|rtjj||}ntjj
||}tjj||d|}	ytjj|	SWnt|tjYnXdS)Nrbr{)rrMAGIC_NUMBERrreadr!_BACKCOMPAT_MAGIC_NUMBERr	rbasenamesplitext_bootstrap_externalrSourceFileLoaderrrrrrr)
rmagicrxZfirst_bytesZis_bytecoderr)rqr{rrrr
importfile srcs{y|rvtjkrvtjkrvfddtjD}x0g|D]!}tj|||<tj|=qQWt}Wntj\}}}}	tjkrttjj|	nU|tkrt|j|	n4|t	kr
|j
kr
dSttjYnXxMjdddD]2}
yt||
}WqAt
k
rrdSYqAXqAW|S)Ncs)g|]}|jdr|qS)r)rc).0m)rrr
<listcomp>Ks	zsafeimport.<locals>.<listcomp>rr)rrbuiltin_module_names
__import__rrrXSyntaxErrorrImportErrorr)r r>AttributeError)r	forceloadrZsubsrIrrrJrinfopartr)rr
safeimport7s. 

rc@seZdZejjddejddZdddZ	dddZ
e
ZZZ
ZZZejjejd	d
ejddddZdS)
Doc
PYTHONDOCSz%https://docs.python.org/%d.%d/libraryNrcGs||f|}tj|r,|j|Stj|rH|j|SyXtj|rg|j|Stj|r|j|Stj|r|j	|SWnt
k
rYnXt|tr|j
|S|j|S)N)risgetsetdescriptordocdataismemberdescriptorr+	docmoduler,docclassr-
docroutiner
isinstancepropertydocpropertydocother)r@rr)argsrrrdocumentms"





zDoc.documentcGs9d|odt|t|jf}t|dS)Nz.don't know how to document object%s of type %s )reprtyper&	TypeError)r@rr)rmessagerrrfails&zDoc.faillibzpython%d.%dcCsytj|}Wntk
r-d}YnXtjjd|j}tjj|}t	|t
tr|jdks|j|r|jtjj
|d
r|jdkr|jdrd|jd|jjf}qtjj
||jjd}nd}|S)Nz
(built-in)rerrno
exceptionsgcimpmarshalposixsignalr_thread	zipimportz
site-packages	xml.etreetest.pydoc_modhttp://https://z%s/%s/z.html)
rrrrrrrrrr)rr)rr)r
getabsfilerr	environr~rrrrrr&rcr"rlower)r@rZbasedirrxdoclocrrr	getdoclocs$
	%%z
Doc.getdocloc)r&r'r]r	rr~rversion_inforrrrrrrrrrr"base_exec_prefixrrrrrrgsrc@sdeZdZddZddZddZddZd	d
ZeZddZ	eZ
d
S)HTMLReprcCs:tj|d|_|_d|_d|_|_dS)N
d)rromaxlistmaxtuplemaxdict	maxstringmaxother)r@rrrros
	zHTMLRepr.__init__cCst|ddddddS)N&z&amp;<z&lt;>z&gt;)r0)r@r/rrrescapeszHTMLRepr.escapecCstj||S)N)rr)r@rrrrrsz
HTMLRepr.reprcCstt|dr\ddjt|jj}t||r\t||||S|jttt	||j
S)Nr&repr_ra)rerr"r&r r>rr5r7rr)r@rPlevel
methodnamerrrrepr1s
"zHTMLRepr.repr1cCst||j}t|}d|krcdt|ddkrcd|d|j||dStjdd|j|S)Nruz\\rrrz-((\\[\\abfnrtv\'"]|\\[0-9]..|\\x..|\\u....)+)z<font color="#c040c0">\1</font>)r5rrr0rrr)r@rPrtesttestreprrrrrepr_strings$!	zHTMLRepr.repr_stringcCsOy)|jttt||jSWn|jd|jjSYnXdS)Nz
<%s instance>)rr5r7rr	__class__r&)r@rPrrrr
repr_instances)zHTMLRepr.repr_instanceN)r&r'r]rorrrrrepr_strrZrepr_unicoderrrrrsrc@seZdZeZejZejZddZdddZddddd	d
Z	ddZ
d
dZdddZddZ
ddZddZddZddZddZdiiiddZdd d!Zddd"d#Zddiid$d%Zd&d'Zddiiidd(d)Zd*d+Zdddd,d-Zddd.d/Zdddd0d1Zdd2d3ZdS)4HTMLDoccCsd||fS)Nz<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: %s</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body bgcolor="#f0f0f8">
%s
</body></html>r)r@titlecontentsrrrpageszHTMLDoc.pagercCsd|||||pdfS)Na'
<table width="100%%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="%s">
<td valign=bottom>&nbsp;<br>
<font color="%s" face="helvetica, arial">&nbsp;<br>%s</font></td
><td align=right valign=bottom
><font color="%s" face="helvetica, arial">%s</font></td></tr></table>
    z&nbsp;r)r@rfgcolbgcolextrasrrrheadings	zHTMLDoc.headingNz&nbsp;c	
Csw|dkrdd|d}d|||f}	|rT|	d||||f}	n|	d|||f}	|	d|S)Nz<tt>z&nbsp;z</tt>z<p>
<table width="100%%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="%s">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="%s" face="helvetica, arial">%s</font></td></tr>
    zR
<tr bgcolor="%s"><td rowspan=2>%s</td>
<td colspan=2>%s</td></tr>
<tr><td>%s</td>z(
<tr><td bgcolor="%s">%s</td><td>%s</td>z'
<td width="100%%">%s</td></tr></table>r)
r@rrrrwidthZpreludeZ
marginaliaZgaprrrrsectionszHTMLDoc.sectioncGsd|}|j||S)Nz<big><strong>%s</strong></big>)r)r@rrrrr
bigsections
zHTMLDoc.bigsectionc
Cs7|j|j}t|dddddddd	S)Nz

z
 
rz&nbsp;rz<br>
)r
expandtabsr0)r@r/rrr	preformatszHTMLDoc.preformatrtcCsd}t||d|}xt|D]r}|dd|}xMt|||||D]0}|t|kr_||||d}q_W|d}q+Wd|S)Nrrz<td width="%d%%" valign=top>rz<br>
z</td>z7<table width="100%%" summary="list"><tr>%s</tr></table>)r!range)r@listformatZcolsrrowscolirrrmulticolumns"zHTMLDoc.multicolumncCsd|S)Nz<font color="#909090">%s</font>r)r@r/rrrgreyszHTMLDoc.greycGs3x,|D]$}||krd|||fSqW|S)Nz<a href="%s">%s</a>r)r@r)Zdictsdictrrrnamelinks
zHTMLDoc.namelinkcCsm|jtjj|j}}t||r`t|||kr`d|j|t||fSt||S)Nz<a href="%s.html#%s">%s</a>)r&rrr~r'rer>r*)r@rr(r)rrrr	classlink#s
$zHTMLDoc.classlinkcCsd|j|jfS)Nz<a href="%s.html">%s</a>)r&)r@rrrr
modulelink+szHTMLDoc.modulelinkcCso|\}}}}|r%|j|S|r>d||f}n
d|}|r[d|}n|}d||fS)Nz
%s.%s.htmlz%s.htmlz"<strong>%s</strong>&nbsp;(package)z<a href="%s">%s</a>)r)r@Z
modpkginfor)rrrshadowedurlr/rrr
modpkglink/s


zHTMLDoc.modpkglinkcCsd||fS)Nz<a href="file:%s">%s</a>r)r@r
rrrrfilelink>szHTMLDoc.filelinkcCs|p|j}g}d}tjd}x|j||}	|	sFP|	j\}
}|j||||
|	j\}}
}}}}|
r||jdd}|jd||fn|rdt|}|jd|||fn|r7dt|}|jd|||fn|r|||dd	krw|jd
|j	||q|jd|nU|||dd	kr|j|j	||||n|j|j	|||}q-W|j|||ddj
|S)
NrzD\b((http|ftp)://\S+[\w/]|RFC[- ]?(\d+)|PEP[- ]?(\d+)|(self\.)?(\w+))"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.zself.<strong>%s</strong>r)rrcompilesearchspanr
groupsr0intr	r")r@r/rfuncsclassesrHrjherepatternmatchstartendrfschemeZrfcZpepZselfdotr)r
rrrmarkupBs<   "
zHTMLDoc.markupc
Csd}x|D]}t|tfkr|\}}|d}||j||}|r||fkrg}x'|D]}	|j|j|	|qyW|ddj|d}|d}q
t|tgkr
|d|j|||}q
Wd|S)	Nrz"<dt><font face="helvetica, arial">rz, )z
</font></dt>z
<dd>
%s</dd>
z
<dl>
%s</dl>
)rr
r
r"
formattree)
r@treer(parentrentrycbasesparentsrKrrrr!ms 



zHTMLDoc.formattreec#s|j}y
|j}Wntk
r0d}YnX|jd}g}xPtt|dD]8}|jddj|d|d||fq]Wdj||d-d}	d|	}
y7tj	|}t
jj|}j
||}
Wntk
rd}
YnXg}t|drt|j}|ddd.krx|d/ddkrx|dd0j}|jd
j|t|dr|jjt|j|r|
dd
j|}
j|}|dk	rdt}nd}j|
ddd|
|}tj|tj}gi}}xtj|tjD]n\}}|dk	stj|p||krft|||rf|j||fd|||<||<qfWx|D]\}}x|jD]}|j|j}}tj j!|}||kr|rt||rt"|||kr||kr|d|||<||<qWqWgi}}xtj|tj#D]\}}|dk	stj$|stj||krt|||r|j||fd|||<tj%|r||||<qWg}xEtj|t&D]1\}}t|||rP|j||fqPWj't(|j)||}|od|}|d|}t|drVg}x<t*j+|j,D](\}}} |j||| dfqW|j-j.|j/}!|j0ddd|!}n@|rj.|fdd}!|j0ddd|!}|r.dd |D}"j1tj2|"d|g}!x6|D].\}}|!jj3|||||qW|j0d!dd"d#j|!}|rg}!x6|D].\}}|!jj3|||||qAW|j0d$dd%d#j|!}|rg}!x-|D]%\}}|!jj3||qW|j0d&dd'd(j|!}t|d)rBj't|j4j)}!|j0d*dd|!}t|d+rj't|j5j)}!|j0d,dd|!}|S)1Nrrz5<a href="%s.html"><font color="#ffffff">%s</font></a>z)<big><big><strong>%s</strong></big></big>z
(built-in)r_$z
Revision: z
version %srVz (%s)z, z-<br><a href="%(docloc)s">Module Reference</a>rz#ffffffz#7799eez<a href=".">index</a><br>rsz.html#z#-z<tt>%s</tt>z
<p>%s</p>
r\rzPackage Contentsz#aa55cccsj|dS)Nr)r)t)r@rr<lambda>sz#HTMLDoc.docmodule.<locals>.<lambda>ModulescSsg|]\}}|qSrr)rrIrJrrrrs	z%HTMLDoc.docmodule.<locals>.<listcomp>ZClassesz#ee77aarZ	Functionsz#eeaa77ZDataz#55aa55z<br>
rRZAuthorrUZCreditsrvz$Revision: rvrv)6r&__all__rr rr!r
r"rrurllibparsequoterrrestrr_rrrVrlocalsrrBr+r,	getmodulergrCr'rrr~r>r-r:r8r.rrrpkgutiliter_modulesr\sortrrrr!getclasstreerrRrU)#r@rr)modignoredrfpartsZlinksrZ
linkednameheadrr
rrversionrrrrZcdictrIrJrKr(rrZfdictdatar#modpkgsimporterispkgr	classlistr)r@rrs	

-

,	
"!"
"$!"
		!&	&				zHTMLDoc.docmodulecsj}|p|}j}g}	|	jGfddd}
|
ttj}t|dkrjdx+|D]#}dj|j	qWdfdd}
fd	d
}fdd}fd
dt
D}ix|D]w\}}}}d|d||<}yt|}Wntk
rYnXy||<WqWt
k
rYqWXqWWxI|r|r|jn|ddt|fdd\}}tjkr:|}qn.krOd}ndjj	}|d7}|jddd|
d||dd}|
d||dd}|
d||dd}|d||d d}|d!||d"d}|}qWd#j|	}	||krLd$||f}nd%|||f}|rg}x*|D]"}|jj|j	qrW|d&d'j|}jtj}|od(|}j|d)d*|	d+|S),Ncs.eZdZddZfddZdS)z(HTMLDoc.docclass.<locals>.HorizontalRulecSs
d|_dS)Nr)needone)r@rrrrosz1HTMLDoc.docclass.<locals>.HorizontalRule.__init__cs |jrdd|_dS)Nz<hr>
r)rB)r@)pushrrmaybes	
z.HTMLDoc.docclass.<locals>.HorizontalRule.maybeN)r&r'r]rorDr)rCrrHorizontalRulesrErz&<dl><dt>Method resolution order:</dt>
z<dd>%s</dd>
z</dl>
cst||\}}|rj|x|D]\}}}}yt|}Wn+tk
rj||Yn&Xj||dq6W|S)Nr)rQrDr>	Exception_docdescriptorr)msgattrsrMokr)rkhomeclsrJ)rrhrmdictr8rrCr@rrspills


zHTMLDoc.docclass.<locals>.spillcsit||\}}|rej|x3|D]+\}}}}j||q6W|S)N)rQrDrG)rHrIrMrJr)rkrKrJ)rLr8rCr@rrspilldescriptors)s

z*HTMLDoc.docclass.<locals>.spilldescriptorsc
s
t||\}}|r	j|x|D]\}}}}jt||}t|stj|rt|dd}	nd}	|	dkrd|nBjt|j	}	d|	}	d||	fdq6W|S)NrWz<dl><dt>%s</dl>
z<dd><tt>%s</tt>z<dl><dt>%s%s</dl>
r)
rQrDrr>callablerrirrr)
rHrIrMrJr)rkrKrJrKr#)rrrLrMr8rrCr@rr	spilldata2s"


z#HTMLDoc.docclass.<locals>.spilldatacs@g|]6\}}}}t|dr||||fqS)r;)rg)rr)rkrlrJ)rrrrGs	z$HTMLDoc.docclass.<locals>.<listcomp>rs-rcs|dkS)Nrr)r*)	thisclassrrr+`sz"HTMLDoc.docclass.<locals>.<lambda>zdefined herezinherited from %sz:<br>
rIcSs|dS)Nrr)r*rrrr+msz
Methods %scSs|ddkS)Nrmethodr)r*rrrr+qszClass methods %scSs|ddkS)Nrzclass methodr)r*rrrr+sszStatic methods %scSs|ddkS)Nrz
static methodr)r*rrrr+uszData descriptors %scSs|ddkS)Nrzdata descriptorr)r*rrrr+wszData and other attributes %scSs|ddkS)Nrr=r)r*rrrr+ysrz*<a name="%s">class <strong>%s</strong></a>z/<strong>%s</strong> = <a name="%s">class %s</a>z(%s)z, z<tt>%s<br>&nbsp;</tt>z#000000z#ffc8d8r1)r&rCr
rrgetmror!rDr
r'rhr>rFrpopleftrQbuiltinsrr6r"rrrr)r@rr)r8rrr9realnamer&rrEmrorKrNrOrQrIrIrkrKrJanchor	inheritedtagrr'r#r)	rrrLrMr8rrCr@rSrrs				



'	'

		!	








 $zHTMLDoc.docclasscCs|jd|j|S)N=)rr)r@rrrrformatvalueszHTMLDoc.formatvaluecCsT|j}|p|}|r$|jp'dd|}	d}
d}t|r|jj}|r||k	rd|j||}
nD|jdk	rd|j|jj|}
nd|j||}
||krd|	|f}
ne|r0||jkr0|j||kr0d|jd||f}d	}n|}d
|	||f}
d}tj|rytj|}Wnt	t
fk
rd}YnX|rt|}|dkrd|}
|d	d}|sd
}|
|j||
o|j
d|
}|rd|S|jt||j|||}|o?d|}d||fSdS)NrrRrz from z method of %s instancez unbound %s methodz$<a name="%s"><strong>%s</strong></a>z<a href="#%s">%s</a>rz)<a name="%s"><strong>%s</strong></a> = %sz<lambda>z$<strong>%s</strong> <em>lambda</em> z(...)z'<font face="helvetica, arial">%s</font>z<dl><dt>%s</dt></dl>
z<dd><tt>%s</tt></dd>z<dl><dt>%s</dt>%s</dl>
rv)r&rAr=rr
__dict__rr-	signature
ValueErrorrr1rrrrr)r@rr)r8rrrHrGrXrZnoteskipdocsimclassrZreallinkargspecr`declr#rrrrsZ			
zHTMLDoc.docroutinecCsrg}|j}|r#|d||jdk	r[|jt||j}|d||ddj|S)Nz!<dl><dt><strong>%s</strong></dt>
z<dd><tt>%s</tt></dd>
z</dl>
r)r
rWrrrr")r@r)rJr8rjrCr#rrrrGs	
zHTMLDoc._docdescriptorcCs|j|||S)N)rG)r@rr)r8rGrrrrszHTMLDoc.docpropertycGs'|rd|pd}||j|S)Nz<strong>%s</strong> = r)r)r@rr)r8r9ZlhsrrrrszHTMLDoc.docothercCs|j|||S)N)rG)r@rr)r8rGrrrrszHTMLDoc.docdatacCsg}|dkri}xhtj|gD]T\}}}tdd|DrVq+|j|d|||kfd||<q+W|j|j||j}|j|dd|S)Ncss1|]'}dt|ko&dknVqdS)iiN)ord)rchrrr	<genexpr>sz HTMLDoc.index.<locals>.<genexpr>rrz#ffffffz#ee77aa)r4r5anyr
r6rrr)r@rrr>r?r)r@rrrrindexs"
z
HTMLDoc.index)r&r'r]r_repr_instancerrrrrrrrrr	r
rrrrr!rrr^rrGrrrrkrrrrrs8			
+y;
rc@sFeZdZddZddZddZeZddZd	S)
TextReprcCs:tj|d|_|_d|_d|_|_dS)Nrrr)rrorrrrr)r@rrrros
	zTextRepr.__init__cCsxtt|dr\ddjt|jj}t||r\t||||Sttt||j	S)Nr&rra)
rerr"r&r r>r5r7rr)r@rPrrrrrrs
"zTextRepr.repr1cCs^t||j}t|}d|krZdt|ddkrZd|d||dS|S)Nruz\\rrr)r5rrr0)r@rPrrrrrrr	s
$zTextRepr.repr_stringc
Cs=y ttt||jSWnd|jjSYnXdS)Nz
<%s instance>)r5r7rrrr&)r@rPrrrrrs zTextRepr.repr_instanceN)r&r'r]rorrrrrrrrrms
	rmc@seZdZeZejZddZdddZddZdd	d
dZ	dddd
Z
ddddZddZdddddZ
ddZdddddZdddddZdddddddZdS)TextDoccCsdjdd|DS)Nrcss|]}|d|VqdS)Nr)rrhrrrri$szTextDoc.bold.<locals>.<genexpr>)r")r@r/rrrbold"szTextDoc.boldz    csS|s
dSfdd|jdD}|rF|dj|d<dj|S)Nrcsg|]}|qSrr)rry)prefixrrr)s	z"TextDoc.indent.<locals>.<listcomp>rrrvrv)r rr")r@r/rqr$r)rqrindent&s"zTextDoc.indentcCs.|j|j}|j|d|dS)Nrz

)rrrrp)r@rrZclean_contentsrrrr-szTextDoc.sectionNrc
sd}x|D]}t|tfkr|\}}||t|}|r||fkrfdd|D}	|ddj|	}|d}q
t|tgkr
||j|||d}q
W|S)Nrc3s|]}t|VqdS)N)r*)rr%)r(rrri<sz%TextDoc.formattree.<locals>.<genexpr>z(%s)z, rz    )rr*r"r!)
r@r"r(r#rqrr$r%r&r'r)r(rr!4s

	zTextDoc.formattreecCs|j}tt|\}}|jd||o:d|}t|dd}|j|}|dk	r||jd|d}|r||jd|}g}	xotj|tjD]X\}
}|dk	stj	|p||krt
|
||r|	j|
|fqWg}xxtj|tjD]a\}
}|dk	sttj
|sttj	||kr8t
|
||r8|j|
|fq8Wg}
xEtj|tD]1\}
}t
|
||r|
j|
|fqWg}t}t|drxWtj|jD]C\}}}|j||rR|j|dq|j|qW|j||jd	d
j|}g}xRtj|tjD];\}
}|jj|dr|
|kr|j|
qW|r|j||jdd
j|}|	rd
d|	D}|jtj|d|g}x0|	D](\}
}|j|j||
|qWW||jdd
j|}|rg}x0|D](\}
}|j|j||
|qW||jdd
j|}|
rdg}x6|
D].\}
}|j|j||
|ddqW||jdd
j|}t|drt|j}|ddd"kr|d#ddkr|dd$j}||jd|}t|dr||jdt|j }t|dr6||jdt|j!}t|drd||jdt|j"}ytj#|}Wnt$k
rd }YnX||jd!|}|S)%NNAMEz - r-zMODULE REFERENCEa.

The following documentation is automatically generated from the Python
source files.  It may be incomplete, incorrect or include features that
are considered implementation detail and may vary between Python
implementations.  When in doubt, consult the module reference at the
location listed above.
ZDESCRIPTIONr\z
 (package)zPACKAGE CONTENTSrrZ
SUBMODULEScSsg|]\}}|qSrr)rrIrJrrrrs	z%TextDoc.docmodule.<locals>.<listcomp>rCLASSES	FUNCTIONSr3FZDATAr_r(r)z
Revision: VERSIONrVZDATErRZAUTHORrUZCREDITSz
(built-in)FILEz$Revision: rvrv)%r&r%rrr>rrrBr,r3rgr
r-r:r.setrer4r5r\addr6r"r+rcr!r7rrr1r_rrVrRrUrr)r@rr)r8ZsynopdescrrfrrrIrJrr=r>Z
modpkgs_namesr?r(r@Z
submodulesrArr<rxrrrrDs	 ""$	"

	""
	  &,
zTextDoc.docmodulecs-j}|p|}j}jdd}||krRdj|}nj|d|}|rt||}	|ddj|	}t}
|
r|
dgpg}|jtt	j
}t|dkr#d	x"|D]}
d
||
qWdGfdd
d
}|fdd}fdd}fdd}fddtD}x0|r|r|j
n|ddt|fdd\}}tjkr#|}qn+kr8d}ndtj}|j|d||dd}|d||dd}|d||d d}|d!||d"d}|d#||d$d}|}qWdj|}|s|dS|dj|jd%dS)&NcSs
t||S)N)r*)r%rrrrmakenamesz"TextDoc.docclass.<locals>.makenamezclass z	 = class z(%s)z, rrzMethod resolution order:z    rcs.eZdZddZfddZdS)z(TextDoc.docclass.<locals>.HorizontalRulecSs
d|_dS)Nr)rB)r@rrrrosz1TextDoc.docclass.<locals>.HorizontalRule.__init__cs$|jrddd|_dS)NrRrvr)rB)r@)rCrrrDs	z.TextDoc.docclass.<locals>.HorizontalRule.maybeN)r&r'r]rorDr)rCrrrEsrEcst||\}}|rj|xw|D]o\}}}}yt|}Wn+tk
rj||Yq6Xj||q6W|S)N)rQrDr>rFrGr)rHrIrMrJr)rkrKrJ)rLr8rrCr@rrrNs


zTextDoc.docclass.<locals>.spillcsit||\}}|rej|x3|D]+\}}}}j||q6W|S)N)rQrDrG)rHrIrMrJr)rkrKrJ)rLr8rCr@rrrOs

z*TextDoc.docclass.<locals>.spilldescriptorsc
st||\}}|rj|x|D]\}}}}t|sctj|rrt|}nd}yt|}	Wntk
r|j|}	YnXj	|	|ddd|dq6W|S)Nr3rvr#r)
rQrDrPrrirr>rr_r)
rHrIrMrJr)rkrKrJr#r;)rLr8rrCr@rrrQs


!z#TextDoc.docclass.<locals>.spilldatacs@g|]6\}}}}t|dr||||fqS)r;)rg)rr)rkrlrJ)rrrrs	z$TextDoc.docclass.<locals>.<listcomp>rcs|dkS)Nrr)r*)rSrrr+sz"TextDoc.docclass.<locals>.<lambda>zdefined herezinherited from %szMethods %s:
cSs|ddkS)NrrTr)r*rrrr+szClass methods %s:
cSs|ddkS)Nrzclass methodr)r*rrrr+szStatic methods %s:
cSs|ddkS)Nrz
static methodr)r*rrrr+szData descriptors %s:
cSs|ddkS)Nrzdata descriptorr)r*rrrr+szData and other attributes %s:
cSs|ddkS)Nrr=r)r*rrrr+sz |  )r&rCr'rpmapr"rr
rrrUr!rhrVrQrWrr*r6rrr)r@rr)r8r9rXr&r|rr'r#rrYrKrErNrOrQrIr[r\r)rLr8rrCr@rSrrsl			


			!		







zTextDoc.docclasscCsd|j|S)Nr])r)r@rrrrr^&szTextDoc.formatvaluecCs|j}|p|}d}d}t|r|jj}|ra||k	rdt||}n>|jdk	rdt|jj|}ndt||}||kr|j|}	nE|r||jkr|j||krd}|j|d|}	d}
tj|rytj	|}Wnt
tfk
rJd}YnX|rt|}
|dkr|j|d	}	|
dd}
|
sd
}
|	|
|}|r|dSt
|pd}
|d|
o|j|
jdSdS)
Nrrz from z method of %s instancez unbound %s methodrz = z<lambda>z lambda z(...)rrv)r&rAr=rr*rpr_rr-r`rarr1rrrr)r@rr)r8rGrXrbrcrdrrer`rfr#rrrr*sJ	zTextDoc.docroutinecCstg}|j}|r2||j||dt|pAd}|rg||j||ddj|S)Nrr)r
rprrrr")r@r)rJr8rjrCr#rrrrG\s	

zTextDoc._docdescriptorcCs|j|||S)N)rG)r@rr)r8rGrrrriszTextDoc.docpropertycCs|j|||S)N)rG)r@rr)r8rGrrrrmszTextDoc.docdatac
Cs|j|}|r_|r%|dp(d|}|t|}	|	dkr_|d|	d}|rx|j|dp{d|}|dk	r|d|jt|7}|S)Nz = rrz...r)rr!rprrr1)
r@rr)r8r#r3r#rryZchoprrrrqs#zTextDoc.docother)r&r'r]rmrlrrprrrr!rrr^rrGrrrrrrrrns		e}2
rnc@seZdZddZdS)
_PlainTextDoccCs|S)Nr)r@r/rrrrpsz_PlainTextDoc.boldN)r&r'r]rprrrrr~}sr~cCstat|dS)N)getpagerpager)r/rrrrs	rcCsttjdstSttjds,tStjjsLtjjrPtSdtjkrtjdkrxddStjj	ddkrd	dSd
dStjj	ddkrtStjdkrddSttdrtj
d
dkrddSddl}|j\}}tj
|z:ttdrgtj
d|dkrgddStSWdtj|XdS)NisattyPAGERwin32cSstt|tjdS)Nr)
tempfilepagerplainr	r)r/rrrr+szgetpager.<locals>.<lambda>ZTERMdumbemacscSstt|tjdS)Nr)	pipepagerrr	r)r/rrrr+scSst|tjdS)Nr)rr	r)r/rrrr+scSstt|dS)Nzmore <)rr)r/rrrr+ssystemz(less) 2>/dev/nullrcSs
t|dS)NZless)r)r/rrrr+sz	more "%s"cSs
t|dS)NZmore)r)r/rrrr+s)rr)rr)rerstdin
plainpagerstdoutrr	rplatformr~rtempfilemkstempclosettypagerunlink)rfdrrrrrs4 



$

(
rcCstjdd|S)Nz.r)rr)r/rrrrsrc Csddl}|j|ddd|j}yLtj|jdd-}y|j|Wntk
rmYnXWdQRXWntk
rYnXx(y|j	PWqtk
rYqXqWdS)NrshellTrerrorsbackslashreplace)

subprocessPopenPIPEio
TextIOWrapperrwriteKeyboardInterruptrwait)r/cmdrprocpiperrrrs 



rcCsvddl}|j}t|ddd}|j|WdQRXztj|d|dWdtj|XdS)Nrwrrz "r)rmktemprrr	rr)r/rrrrxrrrrsrcCs4ttjddpd}|j|dj|S)Nencodingzutf-8r)r>rrencodedecode)r/rrrr_escape_stdoutsrc
Cs5tt|jd}yGddl}tjj}|j|}|j|dd}Wn0t	t
tjfk
rd}dd}YnXz|yt
tjjdd}Wntk
rd}YnX|dkrd}|d}}tjjdj|d|dx||drtjjd	tjj|}	|	dkrrtjjdPn5|	dkrtjjd||d|d}q|	dkr|||}|dkrd}tjjddj||||d||}qWWd|r0|j||j|XdS)NrrcSstjjdS)Nr)rrrrrrrr+szttypager.<locals>.<lambda>cSs!tjjddddS)Nrrv)rrrwrrrrr+sLINESrz
-- more --qQz
          

bB)rr)rr)rrr)rrr ttyrrfilenoZ	tcgetattrZ	setcbreakrrrUnsupportedOperationrr	rr~rarrr"flushZ	tcsetattrZ	TCSAFLUSH)
r/r$rroldZgetcharhrZincr%rrrrsL

'
	
/rcCs tjjtt|dS)N)rrrrr)r/rrrrsrcCs$tj|rQ|jtjkr,d|jSt|drFd|jSd|jStj|rkd|jStj|rd|jj	|jj|jfStj
|rd|jj	|jj|jfStj|rd|jStj|rd	|jStj
|rd
|jSt|jS)Nzbuilt-in module r\zpackage zmodule zbuilt-in function zgetset descriptor %s.%s.%szmember descriptor %s.%s.%szclass z	function zmethod )rr+r&rrrer:r__objclass__r'rr,r8r9r)thingrrrdescribes.rcCsdd|jdD}d\}}xW|t|krtdj|d|d|}|r}||d}}q+Pq+W|r|}nt}xD||dD]2}yt||}Wqtk
rdSYqXqW|S)NcSsg|]}|r|qSrr)rrrrrr#s	zlocate.<locals>.<listcomp>rrr)Nr)r r!rr"rWr>r)rrr:rnZ
nextmodulerrrrrlocate!s &	

rcCsyt|trDt||}|dkr:td|||fSt|dd}|t|trn|ndfSdS)Nz~No Python documentation found for %r.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.r&)rr1rrr>)rrrr)rrrresolve:s

rz Python Library Documentation: %scCs'|dkrt}t||\}}t|}tj|}|rxd|krx|d|d|jd7}n#|r||k	r|d|j7}tj|ptj|ptj	|ptj
|ptj|pt|t
st|}|d7}||d|j||S)Nrz in z in module z objectz

)r/rrrr3rfindr&r+r,r-rrrrrr)rrrZrendererrr)r{rrrr
render_docHs$$
rcCsyE|dkr(tt|||n|jt|||tWn5ttfk
r|}zt|WYdd}~XnXdS)N)rrr	plaintextrrprint)rrroutputrJrrrr#as r#cCsy~t||\}}tjt|tj||}t|dddd}|j|WdQRXtd|dWn5tt	fk
r}zt|WYdd}~XnXdS)Nz.htmlrrzutf-8Zwrote)
rhtmlrrrrrrrr)rrrr)rrxrJrrrwritedocls$rrcCsI|dkri}x0tj|g|D]\}}}t|q(WdS)N)r4
walk_packagesr)rpkgpathdoner?r(r@rrr	writedocsws
%rc@seZdZddddddddddd	d5d
d6dd7dd8dd9dd:dddd;dddddd<dddd=dd>dd?d!d@d#d$d%dAd'dBd)dd*dd+dCd,dDd.dEddFd/dGddHd2dIi!Zd3dJd<dKd$dLdQdMdRdNd_dOd`dPiZdCdcd@dddedfdgdhdidjdkdldmdndod3dpdqdrdsdtdudvdwdxdwdydzd{dziZxaejD]S\ZZxDeD]<Z	ej
e	eZeekred|eZeee	<qWquWd}dQd3dRddSddTddUddVddWddXd`dYddZddd&d[dd\dd]dd^dd}dd}dd_djd`ddaddbd dcdddddd<dddddeddfddgddhddid"djddkddlddmddnddoddddd-dpddqddrddsdqdtdduddddvddwddxddyddzdd{dd|dd}dd~ddddQdddddd_dd$ddddd	dddRddddd.ddddddddddddiIZddddZe
ddZe
ddZddZeZeddZddZddZdd Zd!d"Zd#d$d%d&Zd'd(Zd)d*Zd+d,Zdd-d.Zdd/d0Zd1d2Zdd3d4ZdS(HelperFalserNoneTrueandZBOOLEANaswithassertbreak	while forclassCLASSES SPECIALMETHODScontinuedeffunctiondelBASICMETHODSelififelseexcepttryfinallyforbreak continue whilefromimportglobalnonlocal NAMESPACES
TRUTHVALUEMODULESinSEQUENCEMETHODSisZ
COMPARISONlambdarunonlocalglobal NAMESPACESnotorpassraise
EXCEPTIONSreturnwhilebreak continue if TRUTHVALUE CONTEXTMANAGERS EXCEPTIONS yieldyieldZSTRINGS''''r'b'"""rr"b"	OPERATORS+rR***r//%<<>>r|^~rr<=>===!=<>ZUNARYAUGMENTEDASSIGNMENT+=-=*=/=%=&=|=^=<<=>>=**=//=ZBITWISEZCOMPLEXjJzOPERATORS FORMATTINGZPOWER,zTUPLES LISTS FUNCTIONSrz ATTRIBUTES FLOAT MODULES OBJECTSz...ELLIPSIS:zSLICINGS DICTIONARYLITERALS@z	def classruraZPRIVATENAMESr`zPRIVATENAMES SPECIALMETHODS`Z
BACKQUOTESrzTUPLES FUNCTIONS CALLSr [zLISTS SUBSCRIPTS SLICINGS]rTYPEStypesRSTRINGS UNICODE NUMBERS SEQUENCES MAPPINGS FUNCTIONS CLASSES MODULES FILES inspectstrings4str UNICODE SEQUENCES STRINGMETHODS FORMATTING TYPESZ
STRINGMETHODSstring-methodsSTRINGS FORMATTINGZ
FORMATTING
formatstringsUNICODE:encodings unicode SEQUENCES STRINGMETHODS FORMATTING TYPESZNUMBERSnumbersINTEGER FLOAT COMPLEX TYPESZINTEGERintegers	int rangeFLOATfloating
float math	imaginary
complex cmathZ	SEQUENCEStypesseq$STRINGMETHODS FORMATTING range LISTSZMAPPINGSZDICTIONARIEStypesfunctions	def TYPESZMETHODStypesmethodsclass def CLASSES TYPESZCODEOBJECTSbltin-code-objectscompile FUNCTIONS TYPESZTYPEOBJECTSbltin-type-objectstypes TYPESZFRAMEOBJECTSZ
TRACEBACKSNONEbltin-null-objectbltin-ellipsis-objectSLICINGSZSPECIALATTRIBUTESspecialattrsrt!class SPECIALMETHODS PRIVATENAMEStypesmodulesZPACKAGESEXPRESSIONSoperator-summarylambda or and not in is BOOLEAN COMPARISON BITWISE SHIFTING BINARY FORMATTING POWER UNARY ATTRIBUTES SUBSCRIPTS SLICINGS CALLS TUPLES LISTS DICTIONARIESZ
PRECEDENCEZOBJECTSobjectsZSPECIALMETHODSspecialnamesbBASICMETHODS ATTRIBUTEMETHODS CALLABLEMETHODS SEQUENCEMETHODS MAPPINGMETHODS NUMBERMETHODS CLASSES
customizationhash repr str SPECIALMETHODSZATTRIBUTEMETHODSattribute-accessATTRIBUTES SPECIALMETHODSZCALLABLEMETHODScallable-typesCALLS SPECIALMETHODSsequence-types(SEQUENCES SEQUENCEMETHODS SPECIALMETHODSZMAPPINGMETHODSMAPPINGS SPECIALMETHODS
NUMBERMETHODS
numeric-types*NUMBERS AUGMENTEDASSIGNMENT SPECIALMETHODSZ	EXECUTION	execmodel%NAMESPACES DYNAMICFEATURES EXCEPTIONSZ
NAMESPACESnaming3global nonlocal ASSIGNMENT DELETION DYNAMICFEATURESZDYNAMICFEATURESdynamic-featuresZSCOPINGZFRAMESrtry except finally raiseZCONVERSIONSconversionsZIDENTIFIERSidentifierskeywords SPECIALIDENTIFIERSZSPECIALIDENTIFIERS
id-classesatom-identifiersZLITERALS
atom-literals=STRINGS NUMBERS TUPLELITERALS LISTLITERALS DICTIONARYLITERALSZTUPLESZ
TUPLELITERALS	exprlistsTUPLES LITERALSZLISTStypesseq-mutableLISTLITERALSlistsLISTS LITERALStypesmappingDICTIONARYLITERALSrDICTIONARIES LITERALSZ
ATTRIBUTESattribute-references(getattr hasattr setattr ATTRIBUTEMETHODSZ
SUBSCRIPTS
subscriptionsslicingsZCALLScallspowerunaryZBINARYbinaryZSHIFTINGshiftingbitwisecomparisonsEXPRESSIONS BASICMETHODSbooleansEXPRESSIONS TRUTHVALUEZ	ASSERTIONZ
ASSIGNMENT
assignment	augassignZDELETIONZ	RETURNINGZ	IMPORTINGZCONDITIONALZLOOPINGcompoundfor while break continuetruth if while and or not BASICMETHODSZ	DEBUGGINGdebuggerpdbZCONTEXTMANAGERScontext-managersNcCs||_||_dS)N)_input_output)r@inputrrrrro*s	zHelper.__init__cCs|jptjS)N)rrr)r@rrrr+.szHelper.<lambda>cCs|jptjS)N)rrr)r@rrrr+/scCs?tjdddkr%|dSd|jj|jjfS)Nrr1?rz<%s.%s instance>)rstackrr'r])r@rrr__repr__1s
zHelper.__repr__cCsG||jk	r|j|n$|j|j|jjddS)Na
You are now leaving help and returning to the Python interpreter.
If you want to ask for help on a particular object directly from the
interpreter, you can type "help(object)".  Executing "help('string')"
has the same effect as typing a particular string at the help> prompt.
)_GoInteractiverintrointeractrr)r@requestrrr__call__9s

	zHelper.__call__cCs|jjdxy|jd}|s,PWnttfk
rHPYnXt|ddddj}|jd	krzP|dkr|jq|j	|qWdS)
Nrzhelp> rrrrquitr)rr)
rrgetlinerEOFErrorr0rrrr)r@rrrrrFs
zHelper.interactcCsJ|jtjkrt|S|jj||jj|jjSdS)N)rrrrrrrw)r@promptrrrrUs


zHelper.getlinecCst|tdkro|j}|dkr=|jq|dkrV|jq|dkro|jq|dkr|jq|dddkr|j|jdq||jkr|j|q|dkrt	t
|dq||jkr|j|q||j
kr7|j|q|rVt	|dd
|jqt	tdd
|jn/t|tr|nt	|dd
|j|jjddS)Nrkeywordssymbolstopicsrzmodules rrrrzHelp on %s:rr)rrr)rrlistkeywordslistsymbols
listtopicslistmodulesr r
showsymbolr#evalr	showtopicrrr1rrrr)r@rrrrr^s6




zHelper.helpcCs2|jjdttjddgddS)Na
Welcome to Python %s's help utility!

If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/%s/tutorial/.

Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules.  To quit this help utility and
return to the interpreter, just type "quit".

To get a list of available modules, keywords, symbols, or topics, type
"modules", "keywords", "symbols", or "topics".  Each module also comes
with a one-line summary of what it does; to list the modules whose name
or summary contain a given string such as "spam", type "modules spam".
r1r)rrrrr<)r@rrrrss	zHelper.intrortPc		Cstt|}||}t||d|}xt|D]}xt|D]t}|||}|t|krT|jj||||dkrT|jjdd|dt||qTW|jjdqAWdS)Nrrr)rsortedr!rrr)	r@itemscolumnsrZcolwrrowrrrrrrs
.zHelper.listcCs*|jjd|j|jjdS)NzN
Here is a list of the Python keywords.  Enter any keyword to get more help.

)rrrrrF)r@rrrrs	zHelper.listkeywordscCs*|jjd|j|jjdS)Nzx
Here is a list of the punctuation symbols which Python assigns special meaning
to. Enter any symbol to get more help.

)rrrrrF)r@rrrrs	zHelper.listsymbolscCs*|jjd|j|jjdS)NzN
Here is a list of available topics.  Enter any topic name to get more help.

)rrrrrF)r@rrrrs	zHelper.listtopicscCsyddl}Wn&tk
r8|jjddSYnX|jj||jj|}|s~|jjdt|dSt|tdkr|j	||S|\}}y|jj|}Wn0t
k
r|jjdt|dSYnXt|jd|r'|pdd|}|rddl
}ddj|jd}	|j|	d	}
|jjd
dj|
dS)Nrzt
Sorry, topic and keyword documentation is not available because the
module "pydoc_data.topics" could not be found.
zno documentation found for %s
rrrzRelated help topics: z, Hz
%s
)pydoc_data.topicsrrrrr~rrrrKeyErrorrrtextwrapr"r wrap)r@topic
more_xrefs
pydoc_datatargetlabelxrefsr#rr/Zwrapped_textrrrrs4
		!
	zHelper.showtopiccCsyddl}Wntk
r(dSYnX|jj||jj|}|s\tdt|tr{|j||S|\}}|jj|}|r|pdd|}||fS)Nrt
Sorry, topic and keyword documentation is not available because the
module "pydoc_data.topics" could not be found.
rzcould not find topicr)rr)	rrrr~rrarr1	_gettopic)r@rrrrrrr#rrrrs	
	!zHelper._gettopiccCs9|j|}|jd\}}}|j||dS)Nr)r	partitionr)r@symbolrrrarrrrrs
zHelper.showsymbolcs|r,|jjdj|t|np|jjdi}|ddfdd}tjd||j|j|jjddS)	Nzy
Here is a list of modules whose name or summary contains '{}'.
If there are any, enter a module name to get more help.

zI
Please wait a moment while I gather a list of all available modules...

cSsS|r0|dddkr0|ddd}|jddkrOd||<dS)	N	z	.__init__z
 (package)rrrii)find)rr(r{rrrrcallbacksz$Helper.listmodules.<locals>.callbackcsd|ddS)Nr)r()rrronerrorsz#Helper.listmodules.<locals>.onerrorrz
Enter any module name to get more help.  Or, type "modules spam" to search
for modules whose name or summary contain the string "spam".
)rrrapropos
ModuleScannerrunrrF)r@rIrrr)rrrs	
		zHelper.listmodules)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rru)rr)rr)rr)rru)rr)rr)rr)rr)rrrrrrrr)rrRrrrrrrrrrrrrrrr	r
rr)rrrr	r
rr)rRr)rrrrrrrrrrrr)rrrrrr)rr)r$r%)r&r')r(r))r*r)r&r,)r-r.)r/r0)r2r3)r4r5)r6r7)r8r9)r:r;)r<r=)r>r?)rAr)rBrC)rDr)r$rE)rFr)rHrI)rJr#)rKrL)rMrN)rOrP)rQrR)rSrT)rSrU)rWrX)rYrZ)r[r\)r]r)rr^)r_r)r`ra)rbr)rcr)rdre)rfrg)rhri)rjrk)rlrm)rrn)rorp)rqr)rrr)rsrG)rtrG)rurG)rvrG)rwrG)rxrG)ryrz)r{r|)r}r
)r~rV)rr)rr)rr)rr) r&r'r]rZ_symbols_inverserrrZsymbols_rr~rrorrrrrrrrrrrrrrrrrrrrrrrr~s4
	
	
rc@s%eZdZdddddZdS)rNcCs|r|j}d|_i}xtjD]}|dkr+d||<|dkrf|d|dq+t|jpxd}|jdd}|d|}|jj|dkr+|d||q+Wxtj	d|D]\}	}}
|jrP|dkr|d|dqytj
|	|}Wntk
rCwYnX|j}t
|d	ry|j|}
Wn%tk
r|r||wYnXttj|
pd}t
|d
r|j|}qNd}nrytjj|}Wn%tk
r|r||wYnX|jr6|jjdnd}t|dd}|d|}|jj|dkr||||qW|r|dS)NF__main__rrrrz - r
get_sourceget_filenamerX)rrrrrrWr rr4r	_get_specrr{rerrFrzrStringIOrrrrrrr>)r@rrIZ	completerrseenr(r)r{r?r@rr{sourcerrrrrrs`	
"	
	

	

"zModuleScanner.run)r&r'r]rrrrrrsrcCsVdd}dd}tj+tjdtj||d|WdQRXdS)NcSsE|dddkr*|ddd}t||o=d|dS)Nrz	.__init__z
 (package)z- ii)r)rr(r{rrrrCszapropos.<locals>.callbackcSsdS)Nr)r(rrrrGszapropos.<locals>.onerrorignorer)warningscatch_warningsfilterwarningsrr)rIrrrrrrAs


rcsddlddlddlddlGdddjjGfdddjjGfdddj}|||}|jx%|j	r|j
rtjdqW|S)	Nrc@s(eZdZddZddZdS)z!_start_server.<locals>.DocHandlercSsx|jjdrd}nd}|jd|jdd||j|jj|j|j|jddS)Nz.cssztext/cssz	text/htmlzContent-Typez%s; charset=UTF-8zutf-8)	rrdZ
send_responseZsend_headerZend_headersZwfiler
urlhandlerr)r@content_typerrrdo_GETs	

z(_start_server.<locals>.DocHandler.do_GETcWsdS)Nr)r@rrrrlog_messagesz-_start_server.<locals>.DocHandler.log_messageN)r&r'r]rrrrrr
DocHandlersrcs:eZdZddZfddZddZdS)z _start_server.<locals>.DocServercSsMd|_|j|f|_||_|jj||j|jd|_dS)N	localhostF)hostaddressrrKrohandlerr)r@portrrrrros
		z)_start_server.<locals>.DocServer.__init__cs[xJ|jsLj|jjgggd\}}}|r|jqW|jdS)Nr)rselectsocketrZhandle_requestZserver_close)r@Zrdwrex)rrrserve_until_quits
-z1_start_server.<locals>.DocServer.serve_until_quitcSs*|jj||jr&|j|dS)N)rKserver_activater)r@rrrrs	z0_start_server.<locals>.DocServer.server_activateN)r&r'r]rorrr)rrr	DocServersrcsUeZdZfddZfddZddZddZd	S)
z#_start_server.<locals>.ServerThreadcs>||_t||_jj|d|_d|_dS)NF)rrrThreadroservingerror)r@rr)	threadingrrros
		z,_start_server.<locals>.ServerThread.__init__csyejj__jj_t|j_|j	|j
}||_|jWn.t
k
r}z||_WYdd}~XnXdS)N)server
HTTPServerrKrrZMessageZMessageClassstaticmethodrrready	docserverrrFr)r@Zdocsvre)rremailhttprrrs		z'_start_server.<locals>.ServerThread.runcSs>d|_|j|_|j|_d|j|jf|_dS)NTz
http://%s:%d/)rrZserver_portrr
)r@rrrrrs	z)_start_server.<locals>.ServerThread.readycSs"d|j_d|_d|_dS)NTF)rrrr
)r@rrrstops	z(_start_server.<locals>.ServerThread.stopN)r&r'r]rorrrr)rrrrrrrServerThreads
rg{Gz?)
Zhttp.serverZ
email.messagerrrZBaseHTTPRequestHandlerrrrrrtimesleep)rrrthreadr)rrrrrrr
_start_serverOs8"+"
rz	text/htmlcsGfdddt}|fddfddfddfd	d
fdd	fd
dfddfddfdd	f	dd}|jdr|dd}|dkr{tjjtjjt}tjj||}t|}dj|j	SWdQRXn|dkr||St
d||fdS)Ncs.eZdZfddZddZdS)z_url_handler.<locals>._HTMLDoccs'd}d|}d|||fS)Nzpydoc_data/_pydoc.cssz1<link rel="stylesheet" type="text/css" href="%s">a<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Pydoc: %s</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
%s</head><body bgcolor="#f0f0f8">%s<div style="clear:both;padding-top:.5em;">%s</div>
</body></html>r)r@rrcss_pathZcss_link)html_navbarrrrsz#_url_handler.<locals>._HTMLDoc.pagecSsd||fS)Nz<a href="getfile?key=%s">%s</a>r)r@r
rrrrrsz'_url_handler.<locals>._HTMLDoc.filelinkN)r&r'r]rrr)rrr_HTMLDocs
rcsUjdtjtjdtjf}d|jtjddfS)Nz%s [%s, %s]raZ
            <div style='float:left'>
                Python %s<br>%s
            </div>
            <div style='float:right'>
                <div style='text-align:center'>
                  <a href="index.html">Module Index</a>
                  : <a href="topics.html">Topics</a>
                  : <a href="keywords.html">Keywords</a>
                </div>
                <div>
                    <form action="get" style='display:inline;'>
                      <input type=text name=key size=15>
                      <input type=submit value="Get">
                    </form>&nbsp;
                    <form action="search" style='display:inline;'>
                      <input type=text name=key size=15>
                      <input type=submit value="Search">
                    </form>
                </div>
            </div>
            ZterseT)rrZpython_versionZpython_buildZpython_compiler)r<)rrrr	s
z!_url_handler.<locals>.html_navbarcsdd}jddd}ddtjD}j||}|djd	dd
|g}i}x*tjD]}|jj||q{W|jddd
j|fS)NcSsd||fS)Nz<a href="%s.html">%s</a>r)r)rrr	bltinlink	sz3_url_handler.<locals>.html_index.<locals>.bltinlinkz7<big><big><strong>Index of Modules</strong></big></big>z#ffffffz#7799eecSs"g|]}|dkr|qS)rr)rr)rrrr$	s	z4_url_handler.<locals>.html_index.<locals>.<listcomp>z<p>zBuilt-in Modulesz#ee77aaz|<p align=right><font color="#909090" face="helvetica,arial"><strong>pydoc</strong> by Ka-Ping Yee&lt;ping@lfw.org&gt;</font>zIndex of Modulesr)	rrrrrrr
rkr")rrnamesrrr)rrr
html_index	sz _url_handler.<locals>.html_indexc	sgfdd}tj7tjddd}tj||d|WdQRXdd}g}jd	d
d}x+D]#\}}|j|||qW|jd|d
d
dj|}d|fS)NcsK|dddkr*|ddd}j||o@d|fdS)Nrz	.__init__z
 (package)z- ii)r
)rr(r{)
search_resultrrr9	sz3_url_handler.<locals>.html_search.<locals>.callbackrcSsdS)Nr)r(rrrr@	sz2_url_handler.<locals>.html_search.<locals>.onerrorrcSsd||fS)Nz<a href="%s.html">%s</a>r)r)rrrrE	sz4_url_handler.<locals>.html_search.<locals>.bltinlinkz5<big><big><strong>Search Results</strong></big></big>z#ffffffz#7799eezkey = %sz#ee77aaz<br>zSearch Results)	rrrrrrr
rr")	rIrrrrjrr)r{r)r)rrhtml_search4	s 

 	 z!_url_handler.<locals>.html_searchc
stjj|}tj|}j|j}WdQRXd|}jddd}|jd|dd|}d||fS)Nz
<pre>%s</pre>z3<big><big><strong>File Listing</strong></big></big>z#ffffffz#7799eezFile: %sz#ee77aaz
getfile %s)	r.r/unquoterrrrrr)rfpr$Zbodyrr)rrrhtml_getfileR	s
	z"_url_handler.<locals>.html_getfilecsndd}jddd}ttjj}j||}|jddd|}d|fS)NcSsd||fS)Nz<a href="topic?key=%s">%s</a>r)r)rrrrb	sz4_url_handler.<locals>.html_topics.<locals>.bltinlinkz,<big><big><strong>INDEX</strong></big></big>z#ffffffz#7799eeZTopicsz#ee77aa)rrrrrFrr)rrrr)rrrhtml_topics_	s	z!_url_handler.<locals>.html_topicscsnjddd}ttjj}dd}j||}|jddd|}d|fS)Nz,<big><big><strong>INDEX</strong></big></big>z#ffffffz#7799eecSsd||fS)Nz<a href="topic?key=%s">%s</a>r)r)rrrrv	sz6_url_handler.<locals>.html_keywords.<locals>.bltinlinkZKeywordsz#ee77aa)rrrrrFrr)rrrr)rrr
html_keywordso	s	z#_url_handler.<locals>.html_keywordscstj}t||}|j|\}}||jkrHd}nd}jd|dd}dj|}j|dd|}|rt|j	}dd	}j
||}jd
dd|}d||fdj|||ffS)
NZKEYWORDZTOPICz)<big><big><strong>%s</strong></big></big>z#ffffffz#7799eez
<pre>%s</pre>z#ee77aacSsd||fS)Nz<a href="topic?key=%s">%s</a>r)r)rrrr	sz7_url_handler.<locals>.html_topicpage.<locals>.bltinlinkzRelated help topics: z%s %sr)
rrrrrrrrrr rrr")rbufZhtmlhelprrrrr)rrrhtml_topicpage~	s&		
z$_url_handler.<locals>.html_topicpagecs^t|dd}|dkr6|dkr6tdt|}j||}||fS)Nrrrzcould not find object)rrarr)r
r;rcontent)rrrhtml_getobj	sz!_url_handler.<locals>.html_getobjcspjddd}djfddtt||D}|j|dd|}d||fS)	Nz,<big><big><strong>Error</strong></big></big>z#ffffffz#7799eez<br>c3s|]}j|VqdS)N)r)rry)rrrri	sz3_url_handler.<locals>.html_error.<locals>.<genexpr>z#bb0000z
Error - %s)rr"rrr)r
rrr)rrr
html_error	s
z _url_handler.<locals>.html_errorcs
|}|jdr%|dd
}y|dkrF\}}ny|dkrd\}}n[|dkr\}}n=d|kr|jd\}}}|dkr|\}}q|d	kr|\}}q|d
kr4y|\}}Wqtk
r0|\}}YqXq|dkr|dkr^\}}qy|\}}Wqtk
r|\}}YqXqtdn|\}}Wn:tk
r}z||\}}WYdd}~XnXj||S)Nz.htmlrrkrrr]z
search?keyzgetfile?keyz	topic?keyzget?keyz
bad pydoc url)rrk)rrk)rdrrarFr)r
Zcomplete_urlrroprar)	rrrrrrrrrrr
get_html_page	sB

(z#_url_handler.<locals>.get_html_pagerrztext/cssrz	text/htmlz"unknown content type %r for url %s)rrcr	rdirnamerealpathrXr"r	readlinesr)r
rrrZ	path_hererrr)
rrrrrrrrrrr_url_handlers,		

**
ropen_browserTcCs$ddl}tt|}|jr5t|jdS|jr d}|rZ|j|jzytd|jt|x^|jrtd}|j	}|dkrPq}|dkr|j|jq}t|q}WWnt
tfk
rtYnXWd|jr|jtdXdS)Nrz"Server commands: [b]rowser, [q]uitzServer ready atzserver> rrzServer stopped)
webbrowserrrrrrrr
rrrrr)rrrZserverthreadZserver_help_msgrrrrbrowse	s2	
	
	
rcCs%t|to$|jtjdkS)Nr)rr1rr	sep)rPrrrispath
srcCsddl}Gdddt}dtjkr|tjjtjd}|tjkritjj|tjjddy|jtjddd\}}d}d}d}d}xp|D]h\}	}
|	d	krd
}d
}|	dkrt	|
dS|	dkrd
}|
}|	d
krd
}qW|r[|dkrGd}t
|d|dS|sg|x|D]}t|rtjj|rt
d|Pyyt|rtjj|rt|}|r
t|rtjj|rt|qt|n
tj|Wqntk
rL}zt
|WYdd}~XqnXqnWWnc|j|fk
rtjjtjjtjdd}
t
djd|
dtjYnXdS)Nrc@seZdZdS)zcli.<locals>.BadUsageN)r&r'r]rrrrBadUsage
sr	rrrzbk:p:wFz-bTz-kz-pz-wrzfile %r does not existapydoc - the Python documentation tool

{cmd} <name> ...
    Show text documentation on something.  <name> may be the name of a
    Python keyword, topic, function, module, or package, or a dotted
    reference to a class or function within a module or module in a
    package.  If <name> contains a '{sep}', it is used as the path to a
    Python source file to document. If name is 'keywords', 'topics',
    or 'modules', a listing of these things is displayed.

{cmd} -k <keyword>
    Search for a keyword in the synopsis lines of all available modules.

{cmd} -p <port>
    Start an HTTP server on the given port on the local machine.  Port
    number 0 can be used to get an arbitrary unused port.

{cmd} -b
    Start an HTTP server on an arbitrary unused port and open a Web browser
    to interactively browse documentation.  The -p option can be used with
    the -b option to explicitly specify the server port.

{cmd} -w <name> ...
    Write out the HTML documentation for a module to a file in the current
    directory.  If <name> contains a '{sep}', it is treated as a filename; if
    it names a directory, documentation is written for all the contents.
rr)getoptrFrrr	rargvremoveinsertrrrexistsrrprrrrrrrrrrr)r
r	Z	scriptdirZoptsrwritingZstart_serverrroptvalargrJrrrrcli	
sd%




%)rr)Vr-rRrVrUrWZimportlib._bootstraprZimportlib._bootstrap_externalZimportlib.machineryimportlib.utilrrr	r4rrrrrZurllib.parser.rcollectionsrreprlibr	tracebackrrrr%r*r.r0r5r
IGNORECASEr6r7r<rArErQrgrhrrrzrrFrrrrrrrmrnr~rrrrrrrrrrr/rrrrr#rrrrrrrrrrrr&rrrr<module>%s			

'
0>*- d!,			
	=%V
Back to Directory File Manager