a DOg@s&dgZdZdZdZddlZddlZddlZddlZddl Zddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZddlmZddlmZd d Zd d Zd dZ ddZ!ddZ"ddZ#ddZ$ddZ%ddZ&ddZ'ddZ(dd Z)e*d!ej+Z,d"d#Z-d$d%Z.d&d'Z/d(d)Z0dd*d+Z1d,d-Z2d.d/Z3d0d1Z4d2d3Z5ifd4d5Z6Gd6d7d7e7Z8d8d9Z9difd:d;Z:Gdd?d?eZGdDdEdEe;Z?GdFdGdGe?Z@dHdIaAdJdKZBdLdMZCdNdOZDdPdQZEdRdSZFdTdUZGdVdWZHdXdYZIddZd[ZJe?ZKe@ZLe=ZMdd\d]ZNdd_d`ZOddadbZPddcddZQddfdgZRGdhdidiZSeSZTGdjdkdkZUdldmZVdndoZWddqdrZXddsdtdudvdwZYdxdyZZdzd{Z[d|d}Z\d~dZ]e^dkr"e]dS)helpzKa-Ping Yee 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_onlycCs\g}g}tjD]H}tj|pd}tj|}||vrtj|r||||q|SN.)syspathosabspathnormcaseisdirappend)dirsZnormdirsdirnormdirr/usr/lib64/python3.9/pydoc.pypathdirsRs    rcCst|ot|tj SN)inspectZisclass isinstancetypes GenericAliasobjectrrr_isclass^srcCsNtj|j}|durdS|jdddD]}t||}q.t|sJdS|S)Nr)rmodulesget __module__ __qualname__splitgetattrr)funcclsnamerrr _findclassas r'c Cst|rH|jj}|j}t|r>tt||dd|jur>|}n|j}n"t|r||j}t |}|dusvt|||urzdSnt |r|j}|j}t|r|j d||j kr|}n|j}nt |t r|j}|j}t |}|dust|||urdSntt|st|rf|j}|j}t|||ur.dSt|rjt|dd}t |trj||vrj||SndS|jD]F}ztt||}WntyYqpYn0|durp|SqpdS)N__func__r __slots__)rismethodr(__name____self__rr# __class__ isfunctionr' isbuiltinr!rpropertyfgetZismethoddescriptorisdatadescriptor __objclass__ismemberdescriptordict__mro__ _getowndocAttributeError)objr&selfr%r$slotsbasedocrrr_finddocksZ            r>cCsdzJt|d}|durWdS|turFt|j}t|trF||krFWdS|WSty^YdS0dS)N__doc__)r__getattribute__typer?rstrr8)r9r=Ztypedocrrrr7s   r7c CsNt|}|dur6z t|}Wnttfy4YdS0t|tsDdSt|Sr)r7r>r8 TypeErrorrrBrZcleandoc)rr=rrr_getdocs  rDcCs,t|pt|}|r(tdd|p*dS)Nz^ * )rDrZ getcommentsresubrstrip)rresultrrrgetdocsrJcCsf|d}t|dkr&|ddfSt|dkrX|dsX|dd|ddfSdd|fS)N rrE)stripr"lenrHjoin)r=linesrrrsplitdocs   rRcCs"|j}|j|kr|jd|}|Sr)r+r )rmodnamer&rrr classnames rTcCs<t|p8t|p8t|p8t|p8t|p8t| Sr)rismoduler isroutineZisframeZ istracebackZiscoderrrrisdatasrWcGs.|r*|d||d}|dd}q|S)NrLrrM)rPr")textpairsrrrreplacesrZcCsXt||krTtd|dd}td|d|}|d|d|t||dS|S)NrrM...)rOmax)rXmaxlenpreZpostrrrcrams  $r`z at 0x[0-9a-f]{6,16}(>+)$cCs td|S)Nz\1) _re_stripidrGrXrrrstripidsrccCs<t|rdSt|r8t|dd}t|p4|du SdS)NTr,F)rr*r/r#rU)fnr:rrr_is_bound_methods    recCs^i}t|tjD]\}}d||<q|jD]}|t|q*|D]}t||||<qF|SNrL)r getmembersrV __bases__update allmethodskeysr#)clmethodskeyvaluer<rrrrjs   rjcCs8g}g}|D]"}||r$||q ||q ||fSrr)s predicateZyesnoxrrr _split_lists  rucCs\|dvr dS|dr$|dr$dS|dr __credits__ __loader__ __cached____spec__r!__file__r+ __author__r? __version__r __path__ __builtins__r)__date__ __package__r__rL__fieldsT) startswithendswithhasattr)r&allr9rrr visiblenamesrcCsXg}t|D]D\}}}}t|r@d}t|tr@|jdur@d}|||||fq|S)Ndata descriptorreadonly property)rclassify_class_attrsr2rr0fsetr)rresultsr&kindr%rorrrr)s rcsZt|dgzfddtDWnty<iYn0fdd}|j|ddS)Nrcsi|]\}}||tqSr)rO).0ir&)fieldsrr :z#sort_attributes..cs|dd|dfSNr)r)attr) field_orderrr=rz!sort_attributes..rn)r# enumeraterCsort)attrsrZkeyfuncr)rrrsort_attributes4s    rcCs:tj|r6dD]$}tjtj|d|rdSqdS)N)z.pyz.pyc__init__TF)r r r isfilerP)r extrrr ispackageBs  rcCs|}|dddks |s0|}|sq0q|}|dddkrT|dd}|dddkr|dd}|dddkr|dd}|s|}|sqq|dd }nd}|S) NrL#zr"""r["""r\r)readlinerNr")filelinerIrrrsource_synopsisJs rc Cs2t|j}||d\}}|dus.||kr.|ttjjrJtjj }n |ttjj rftjj }nd}|durzt |}WntyYdS0|t|}Wdn1s0Yn^|d|}tjjd||d}ztj|} WnYdS0tjd=| jr| jdnd}||f||<|S)N)NNZ__temp__loaderr)r statst_mtimerrtuple importlib machineryBYTECODE_SUFFIXESSourcelessFileLoaderEXTENSION_SUFFIXESExtensionFileLoadertokenizeopenOSErrorrutilspec_from_file_location _bootstrap_loadrrr? splitlines) filenamecachemtimeZ lastupdaterIZ loader_clsrrspecmodulerrrsynopsis[s6    (   rc@seZdZddZddZdS)ErrorDuringImportcCs||_|\|_|_|_dSr)rexcrotb)r:rexc_inforrrrszErrorDuringImport.__init__cCs|jj}d|j||jfS)Nzproblem in %s - %s: %s)rr+rro)r:rrrr__str__szErrorDuringImport.__str__N)r+r r!rrrrrrrsrc Cstjj}t|d"}||t|k}Wdn1s:0Ytj|}tj |\}}|rttj ||}ntj ||}tjj |||d}ztj|WSt|tYn0dS)Nrbr)rr MAGIC_NUMBERrreadrOr r basenamesplitext_bootstrap_externalrSourceFileLoaderrrrrrr) r magicrZ is_bytecoderr&rrrrrr importfiles 0 rc sz^|rTtjvrTtjvrTfddtjD}g|D]}tj|||<tj|=q8t}Wnzt\}}}} tjvrttjj| n>|turt|j| n(t |t r|j krYdSttYn0 dddD],} zt || }WqtyYdS0q|S)Ncsg|]}|dr|qS)r)r)rmr rr rzsafeimport..rrL)rrbuiltin_module_names __import__rrrz SyntaxErrorr issubclass ImportErrorr&r"r#r8) r forceloadrZsubsrnrrrorinfopartrrr safeimports*    rc@sfeZdZejddejddZd ddZ d ddZ e Z Z Z ZZZed fd d ZdS)Doc PYTHONDOCSz%https://docs.python.org/%d.%d/libraryNrMcGs||f|}zDt|r$|j|WSt|r8|j|WSt|rN|j|WSWntybYn0t|rx|j |S|j |Sr) rrU docmodulerdocclassrV docroutiner8r2docdatadocother)r:rr&argsrrrdocuments  z Doc.documentcGs*d|odt|t|jf}t|dS)Nz.don't know how to document object%s of type %s )reprrAr+rC)r:rr&rmessagerrrfailszDoc.failZstdlibcCszt|}Wnty$d}Yn0tjd|j}tj|}t |t tr|j dvsx| |r| tj |ds|j dvr| drd|d|j f}qtj ||j d }nd}|S) N (built-in)r) errno exceptionsgcimpmarshalposixsignalr_thread zipimportz site-packages)z xml.etreeztest.pydoc_mod)zhttp://zhttps://z%s/%s/.html)r getabsfilerCr environrrr r rrAr+rrPrHlower)r:rZbasedirrdoclocrrr getdoclocs(    z Doc.getdocloc)N)N)r+r r!r rrr version_inforrrrrrr docpropertyr sysconfigZget_pathrrrrrrs   rc@sDeZdZddZddZddZddZd d ZeZd d Z eZ d S)HTMLReprcCs,t|d|_|_d|_d|_|_dSN drrmaxlistmaxtuplemaxdict maxstringmaxotherr:rrrr s  zHTMLRepr.__init__cCst|ddddddS)N&z&z>)rZr:rXrrrescapeszHTMLRepr.escapecCs t||Sr)rrr:rrrrrsz HTMLRepr.reprcCsZtt|dr@ddt|j}t||r@t||||S|ttt ||j SNr+repr_r) rrArPr+r"r#r r`rcrrr:rtlevelZ methodnamerrrrepr1s  zHTMLRepr.repr1cCs^t||j}t|}d|vrJdt|ddvrJd|d|||dStdd||S)Nr\\rErrz-((\\[\\abfnrtv\'"]|\\[0-9]..|\\x..|\\u....)+)z\1)r`rrrZr rFrGr:rtrtestZtestreprrrr repr_strings zHTMLRepr.repr_stringcCs@z|ttt||jWS|d|jjYS0dSNz <%s instance>)r r`rcrrr-r+r:rtrrrr repr_instance*szHTMLRepr.repr_instanceN) r+r r!rr rrrrepr_strrZ repr_unicoderrrrrs rc@seZdZeZejZejZddZd0ddZd1d d Z d d Z d dZ d2ddZ ddZ ddZddZddZddZddZdiiifddZd3d d!Zd4d"d#Zddiifd$d%Zd&d'Zddiiidfd(d)Zd5d*d+ZeZd6d,d-Zd7d.d/ZdS)8HTMLDoccCs d||fS)Nz Python: %s %s r)r:titlecontentsrrrpage;sz HTMLDoc.pagerEcCsd|||||pdfS)Na'
 
 
%s
%s
 r)r:rfgcolbgcolextrasrrrheadingEszHTMLDoc.headingNr!c Cs^|durdd|d}d|||f} |r@| d||||f} n| d|||f} | d|S)Nzr!zz

zR z( z'
 
%s
%s %s
%s
%s%s%s
r) r:rr"r#rwidthZpreludeZ marginaliaZgaprIrrrsectionPs zHTMLDoc.sectioncGsd|}|j|g|RS)Nz%s)r()r:rrrrr bigsectionfszHTMLDoc.bigsectionc Cs&||}t|dddddddd S)N z rr!rK
)r  expandtabsrZr rrr preformatks zHTMLDoc.preformatrcCsd}t||d|}t|D]X}|dd|}t|||||D]$}|t|krJ||||d}qJ|d}q d|S)NrErLzrr+zz7%s
)rOrange)r:listformatZcolsrIrowscolrrrr multicolumnqs   zHTMLDoc.multicolumncCsd|S)Nz%srr rrrgrey}rz HTMLDoc.greycGs*|D] }||vrd|||fSq|S)N%sr)r:r&Zdictsr5rrrnamelinkszHTMLDoc.namelinkcCsN|jtj|j}}t||rDt|||urDd|j|t||fSt||S)Nz%s)r+rrrr rr#rT)r:rrSr&rrrr classlinks zHTMLDoc.classlinkcCsd|j|jfSNz%s)r+rrrr modulelinkszHTMLDoc.modulelinkcCsR|\}}}}|r||S|r,d||f}nd|}|rBd|}n|}d||fS)Nz %s.%s.htmlz%s.htmlz"%s (package)r5)r4)r:Z modpkginfor&r rshadowedurlrXrrr modpkglinks   zHTMLDoc.modpkglinkcCs d||fS)Nz%sr)r:r;r rrrfilelinkszHTMLDoc.filelinkcCs|p|j}g}d}td}|||} | s0qh| \} } ||||| | \} } }}}}| r|| dd}|d||fn|rdt|}|d||| fn|rdt|}|d||| fn|r"|| | dd kr|d | ||n|d |n@|| | dd krP|| ||||n|| ||| }q||||dd |S) NrzJ\b((http|https|ftp)://\S+[\w/]|RFC[- ]?(\d+)|PEP[- ]?(\d+)|(self\.)?(\w+))"z"r5z'http://www.rfc-editor.org/rfc/rfc%d.txtz)https://www.python.org/dev/peps/pep-%04d/rL(zself.zself.%srE) r rFcompilesearchspanrgroupsrZintr6rP)r:rXr funcsclassesrmrherepatternmatchstartendrschemeZrfcZpepZselfdotr&r;rrrmarkups8      zHTMLDoc.markupc Csd}|D]}t|tdur|\}}|d}||||}|r||fkrg}|D]} ||| |qR|dd|d}|d}qt|tgur|d||||}qd |S) NrErz"

r?, )z
z
%s
z
%s
)rAr7rrP formattree) r:treerSparentrIentrycbasesparentsr<rrrrPs"  zHTMLDoc.formattreec# s|j}z |j}Wnty&d}Yn0|d}g}tt|dD],}|dd|d|d||fqFd||dd} d| } z&t |} t j | } | | } Wntyd} Yn0g}t|dr2t|j}|ddd kr|ddd kr|dd}|d |t|d rT|t|j|rl| d d|} |}|durdt}nd}| ddd| |}t|tj}gi}}t|tD]Z\}}|dust|p||urt|||r|||fd|||<||<q|D]\}}|jD]n}|j|j}}tj !|}||kr:|r:t||r:t"|||ur:||vr:|d|||<||<q:q,gi}}t|tj#D]p\}}|dust$|st||urt|||r|||fd|||<t%|r||||<qg}t|t&D]&\}}t|||rH|||fqH't(|j)||}|od|}|d|}t|drg}t*+|j,D]\}}} |||| dfq|-.|j/}!|0ddd|!}n.|r6.|fdd}!|0ddd|!}|rd d!|D}"1t2|"d|g}!|D]"\}}|!3|||||qd|0d"dd#d$|!}|rg}!|D]"\}}|!3|||||q|0d%dd&d$|!}|r4g}!|D]\}}|!3||q|0d'dd(d)|!}t|d*rh't|j4j)}!|0d+dd|!}t|d,r't|j5j)}!|0d-dd|!}|S).NrrLz5%sr)%srr| $Revision: $z version %srz (%s)rNz-
Module ReferencerE#ffffff#7799eezindex
rz.html#z#-z %sz

%s

r}rzPackage Contentsz#aa55cccs|dSrf)r9trrrr9rz#HTMLDoc.docmodule..ZModulescSsg|] \}}|qSrrrrnrorrrr>rz%HTMLDoc.docmodule..ZClasses#ee77aarZ Functionsz#eeaa77ZDataz#55aa55r+r{ZAuthorrvZCredits)6r+__all__r8r"r.rOrrPrrurllibparsequoter=rCrrBr|rNr rrlocalsr%rgrUr getmodulerrhr rrrr#rVr/r.rWrMrJr-pkgutil iter_modulesr}rr3r<r)rP getclasstreerr{rv)#r:rr&modignoredrpartsZlinksrZ linkednameheadr r;r=rversionrrIrrFZcdictrnror<rSrrEZfdictdatar=modpkgsimporterispkgr classlistrrrrs          $                        zHTMLDoc.docmodulec sj}|p |}j}g} | jGfddd} | tt} t| dkrd| D]} d| j qddfdd} fd d }fd d }fd dt D}i|D]j\}}}}d|d||<}zt |}Wnt y2Yn0z ||<Wqt yTYq0q|rf| rn| n |ddt|fdd\}}tjurtjur|}qXn"urd}ndj }|d7}t|| d||dd}| d||dd}| d||dd}|d||dd}|d||d d}|d!||d"d}|}qXd#| } ||krd$||f}nd%|||f}|rg}|D]} || j q|d&d'|}d#}zt}Wntt fyd}Yn0|r2t|}|r2|d(kr2||d)}t}|rN||pJd#}|j}|ond*|}|d+d,| d-|S).Ncs eZdZddZfddZdS)z(HTMLDoc.docclass..HorizontalRulecSs d|_dSrZneedonerrrrrhsz1HTMLDoc.docclass..HorizontalRule.__init__cs|jrdd|_dS)Nz
rLrtrpushrrmaybejsz.HTMLDoc.docclass..HorizontalRule.maybeNr+r r!rrwrrurrHorizontalRulegsryrMz&
Method resolution order:
z
%s

c st||\}}|r||D]b\}}}}zt|}Wn$tyd||Yn0||dq&|S)NrKrurwr# Exceptionrrmsgrrrokr&rhomeclsrorFrEhrmdictrjrrvr:rrspillzs   zHTMLDoc.docclass..spillcsJt||\}}|rF||D]\}}}}||q&|Srrurwrr}rrjrvr:rrspilldescriptorssz*HTMLDoc.docclass..spilldescriptorsc st||\}}|r||D]r\}}}}t||}t|} | s`d|n0t|j} d| } d|| fdq&|S)Nz
%s
z
%sz
%s%s
rK)rurwrr#rJrMr-) r~rrrrr&rrror<r=rrr spilldatas  z#HTMLDoc.docclass..spilldatacs,g|]$\}}}}t|dr||||fqS)r9rrr&rr%rorrrrs  z$HTMLDoc.docclass..r-rcs |duSNrMrr] thisclassrrrrz"HTMLDoc.docclass.. defined hereinherited from %sz:
z Methods %scSs |ddkSNrLmethodrr]rrrrrzClass methods %scSs |ddkSNrLz class methodrr]rrrrrzStatic methods %scSs |ddkSNrLz static methodrr]rrrrrzReadonly properties %scSs |ddkSNrLrrr]rrrrrzData descriptors %scSs |ddkSNrLrrr]rrrrrzData and other attributes %scSs |ddkSNrLrorr]rrrrrrEz*class %sz/%s = class %s(%s)rN()r*z%s
 
z#000000z#ffc8d8r[)r+rhrrrgetmrorOrwr7r rr#r|rCpopleftrubuiltinsrrrP signature ValueErrorrBr rJrMr-r()r:rr&rjrErFrkrealnamerUrrymror<rrrrrnrrroanchor inheritedtagrrVdeclrargspecr=r) rFrErrrjrrvr:rrr\s                   zHTMLDoc.docclasscCs|d||SN=)r4rrrrr formatvalueszHTMLDoc.formatvaluec Cs|j}|p |}|r|jpdd|} d} d} t|r|jj} |rZ| |urd|| |} n0|jdurzd||jj|} nd|| |} t|st|rd} nd} ||krd| |f}nD|rt||g|urd |jd||f}d } n|}d | ||f}d}t |rjzt |}Wnt t fy<d}Yn0|rjt |}|d krjd |}|d d}|std}| |||| o|d| }| rd|S|t||j|||}|od|}d||fSdS)NrErr from  method of %s instance unbound %s methodasync z$%sz%srLz)%s = %sz$%s lambda r(...)z'%sz
%s
z
%s
z
%s
%s
)r+rer,r-r7riscoroutinefunctionisasyncgenfunctiongetattr_staticrVrrrCrBr r4rMrJr-)r:rr&rjrErFrmrlrrnoteskipdocsimclassasyncqualifierrZreallinkrrrr=rrrrsl       zHTMLDoc.docroutinecCsNg}|j}|r|d||t||j}|r<|d||dd|S)Nz!
%s
z
%s
rzrE)rrMrJr-rPr:rr&rjrlrrvr=rrrrCs  zHTMLDoc.docdatacGs|r d|pd}|||S)Nz%s = rEr)r:rr&rjrkZlhsrrrrSszHTMLDoc.docothercCsg}|duri}t|gD]<\}}}tdd|Dr:q||d|||vfd||<q||||j}||dd|S)Ncss*|]"}dt|kodknVqdS)iiN)ordrZchrrr ]rz HTMLDoc.index..rErLr[r`)rgrhanyrrr3r<r))r:rr:rprqr&rrrrrrindexXs  z HTMLDoc.index)rE)r&rENr!)r)N)NN)NNN)NN)N)r+r r!r_repr_instancerr r r%r(r)r-r3r4r6r7r9r<r=rMrPrrrrrrrrrrrrr2s<   +  y# A  rc@s0eZdZddZddZddZeZddZd S) TextReprcCs,t|d|_|_d|_d|_|_dSrrrrrrrks  zTextRepr.__init__cCsTtt|dr@ddt|j}t||r@t||||Sttt||j Sr) rrArPr+r"r#r`rcrrrrrrrqs  zTextRepr.repr1cCsHt||j}t|}d|vrDdt|ddvrDd|d||dS|S)NrrrErr)r`rrrZrrrrrxs  zTextRepr.repr_stringcCs4zttt||jWSd|jjYS0dSr)r`rcrrr-r+rrrrrszTextRepr.repr_instanceN)r+r r!rrrrrrrrrris  rc@szeZdZeZejZddZdddZddZdd d Z dd d Z dddZ ddZ dddZ dddZeZdddZdS)TextDoccCsddd|DS)NrEcss|]}|d|VqdS)NrrrrrrrzTextDoc.bold..)rPr rrrboldsz TextDoc.bold cs>|sdSfdd|dD}|r4|d|d<d|S)NrEcsg|] }|qSrrrrprefixrrrrz"TextDoc.indent..rKr)r"rHrP)r:rXrrQrrrindentszTextDoc.indentcCs$||}||d|dS)NrKr*)rrHr)r:rrZclean_contentsrrrr(szTextDoc.sectionNrEc sd}|D]}t|tdurr|\}}||t|}|rh||fkrhfdd|D} |dd| }|d}qt|tgur|||||d}q|S) NrErc3s|]}t|VqdSrrT)rrTrSrrrrz%TextDoc.formattree..rrNrKr)rArTrPrP) r:rQrSrRrrIrSrTrUrVrrrrPs  zTextDoc.formattreec Cs|j}tt|\}}|d||o(d|}t|dd}||}|dur`||d|d}|rt||d|}g} t|tD]<\} } |dust | p||urt | ||r| | | fqg} t|tj D]B\} } |dust | st | |urt | ||r| | | fqg} t|tD]&\} } t | ||r(| | | fq(g}t}t|drt|jD]6\}}}|||r| |dn | |qr|||d d |}g}t|tjD]0\} } | j|d r| |vr| | q|r0|||d d |}| rd d| D}|t|d|g}| D]\} } | || | |q^||dd |}| rg}| D]\} } | || | |q||dd |}| r g}| D]"\} } | |j| | |ddq||dd |}t|drzt|j}|dddkrj|dddkrj|dd}||d|}t|dr||dt|j }t|dr||dt|j!}t|dr||d t|j"}zt#|}Wnt$yd!}Yn0||d"|}|S)#NNAME - razMODULE 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. Z DESCRIPTIONr} (package)zPACKAGE CONTENTSrKrZ SUBMODULEScSsg|] \}}|qSrrr_rrrrrz%TextDoc.docmodule..rLCLASSES FUNCTIONSF)r^ZDATAr|rXrYrrZVERSIONrZDATEr{ZAUTHORrvZCREDITSrFILE)%r+rRrJr(r#rrrgrrfrrrVr/rWsetrrgrhr}addrrPrUrrPrirrrBr|rNrr{rvrrC)r:rr&rjZsynopdescrIrrrFrnrorErorpZ modpkgs_namesrqrSrrZ submodulesrsrrnrrrrrs                $    zTextDoc.docmodulec sJj}|p |}j}jfdd}||kr:d|}n|d|}|rlt||} |dd| }g} | jzt} Wnt t fyd} Yn0| rt | } | r| dkrȈ|| dt } | r| dt t}t|d kr(d |D]}d ||qd td dtDt jd}t|}d}|rd|d|D]}d |ql||krdt ||dd Gfddd}|fdd}fdd}fdd}fddtD}|r|r(|n |dd t|fdd \}}tjurltjurl|}qn ur|d!}nd"tj}t||d#||d$d }|d%||d&d }|d'||d(d }|d)||d*d }|d+||d,d }|d-||d.d }|}qd| } | s.|dS|d| d/dS)0NcSs t||Srr)rTrrrrmakenamesz"TextDoc.docclass..makenameclass z = class rrNrrKrMzMethod resolution order:rrEcss.|]&}|jds|jdkrt|jVqdS)rrN)r+rr rB)rr%rrrrCsz#TextDoc.docclass..rrzBuilt-in subclasses:z ... and z other subclassescs eZdZddZfddZdS)z(TextDoc.docclass..HorizontalRulecSs d|_dSrrtrrrrrUsz1TextDoc.docclass..HorizontalRule.__init__cs|jrdd|_dS)NzF----------------------------------------------------------------------rLrtrrurrrwWsz.TextDoc.docclass..HorizontalRule.maybeNrxrrurrryTsryc st||\}}|r|||D]T\}}}}zt|}Wn$tyd||Yq&0||q&|Srr{r}rrjrrvr:rrr]s zTextDoc.docclass..spillcsJt||\}}|rF||D]\}}}}||q&|Srrr}rrrrnsz*TextDoc.docclass..spilldescriptorsc st||\}}|r||D]\\}}}}t|}zt|} Wntyd|j|} Yn0j| |d|ddq&|S)Nr)r^r=rK)rurwrJr#r8__dict__r) r~rrrrr&rrror=r9rrrrws z#TextDoc.docclass..spilldatacs,g|]$\}}}}t|dr||||fqSrrrrrrrs  z$TextDoc.docclass..rcs |duSrrr]rrrrrz"TextDoc.docclass..rrz Methods %s: cSs |ddkSrrr]rrrrrzClass methods %s: cSs |ddkSrrr]rrrrrzStatic methods %s: cSs |ddkSrrr]rrrrrzReadonly properties %s: cSs |ddkSrrr]rrrrrzData descriptors %s: cSs |ddkSrrr]rrrrrzData and other attributes %s: cSs |ddkSrrr]rrrrrz | )r+rhr rmaprPrrrrrCrBrJrrrOsortedrA__subclasses__rrrrurrrTrrrH)r:rr&rjrkrrUrrrVrrrr=rr<Z subclassesZno_of_subclassesZMAX_SUBCLASSES_TO_DISPLAYZ subclassnameryrrrrrrr)rrjrrvr:rrrs                   zTextDoc.docclasscCsd||SrrrrrrrszTextDoc.formatvaluec Cs|j}|p |}d}d}t|rn|jj}|rB||urndt||}n,|jdur`dt|jj|}ndt||}t|st|rd} nd} ||kr||} n,|rt ||g|urd}||d|} d} t |r:zt |} Wnt t fyd} Yn0| r:t| } |d kr:||d } | dd } | sDd } | | | |} |rb| d St|pnd}| d |o||d SdS)NrErrrrrrL = rz lambda rrrK)r+rer,r-rTrrrrrrVrrrCrBrJrrH)r:rr&rjrlrrrrrrrrrr=rrrrsT       zTextDoc.docroutinecCsTg}|j}|r$||||dt|p.d}|rJ||||dd|S)NrKrE)rrrJrrPrrrrrs zTextDoc.docdatac Cs||}|rF|r|dpd|}|t|} | dkrF|d| d}|rX||dpZd|}|slt|}|r|d|t|d7}|S)NrrErr\rK)rrOrrJrrB) r:rr&rjrRr^r=rrZchoprrrrs  zTextDoc.docother)r)NrE)NN)NN)NNN)NNN)NNNNN)r+r r!rrrrrr(rPrrrrrrrrrrrrs   e  7 rc@seZdZddZdS) _PlainTextDoccCs|Srrr rrrr sz_PlainTextDoc.boldN)r+r r!rrrrrr srcCstat|dSr)getpagerpagerrbrrrrsrc sZttjdstSttjds tStjr4tjs8tStjdpNtjdrtj dkrjfddStjddvrfd dSfd dStjddvrtStj dkrd dSttd rt d dkrddSddl }| \}}t |zRttd r,t d|dkr,ddWt|StWt|SWt|n t|0dS)NisattyZMANPAGERZPAGERwin32cstt|Sr tempfilepagerplainrbZ use_pagerrrr#rzgetpager..ZTERM)ZdumbZemacscstt|Sr) pipepagerrrbrrrr%rcs t|Srrrbrrrr'rcSstt|dS)Nzmore /dev/nullrcSs t|dS)NZlessrrbrrrr-rz more "%s"cSs t|dS)NZmorerrbrrrr4r)rrstdin plainpagerstdoutrr rrplatformrtempfilemkstempcloseunlinkttypager)rfdrrrrrs>            rcCstdd|S)Nz.rE)rFrGrbrrrr:src Csddl}|j|d|jd}zVtj|jdd2}z||WntyNYn0Wdn1sd0YWntyYn0z| WqWqtyYq0qdS)NrT)shellrbackslashreplace)errors) subprocessPopenPIPEio TextIOWrapperrwriteKeyboardInterruptrwait)rXcmdrprocpiperrrr>s (  rc Csddl}|}tj|d}t|ddtjdkr) rTemporaryDirectoryr r rPrrrdevice_encodingrr)rXrrtempdirrrrrrrUs  (rcCs$ttjddpd}||d|S)Nrutf-8r)r#rrencodedecode)rXrrrr_escape_stdoutasr c Cstt|d}z2ddl}tj}||}||dd}Wn&t t t j fyjd}dd}Yn0zDzt tjdd}Wntyd}Yn0|dkrd}|d}}tjd|d|d||drtjd tj|} | d vrtjd qn,| d vrFtjd ||d|d}q| d vrj|||}|dkrjd}tjdd||||d||}qW|r|||j|n|r|||j|0dS)NrKrcSs tjdSrf)rrrrrrrrnrzttypager..cSstjddddS)NrrL)rrrrrrrrqrLINESrLz -- more --)qQz ) rK)bB)rr r"ttyrrfilenoZ tcgetattrZ setcbreakrr8rUnsupportedOperationrDr rrrrrrPflushZ tcsetattrZ TCSAFLUSH) rXrQrroldZgetcharhrZincrTrrrrfsN              & rcCstjtt|dSr)rrrrr rbrrrrsrcCst|r>|jtjvr d|jSt|dr4d|jSd|jSt|rRd|jSt|rtd|jj |jj|jfSt |rd|jj |jj|jfSt |rd|jSt |rd |jSt |rd |jSt|jS) Nzbuilt-in module r}zpackage zmodule zbuilt-in function zgetset descriptor %s.%s.%szmember descriptor %s.%s.%srz function zmethod )rrUr+rrrr/Zisgetsetdescriptorr3r r4rr.r*rA)thingrrrdescribes2                 rc Csdd|dD}d\}}|t|kr\td|d|d|}|r\||d}}qq\q|rf|}nt}||dD]*}zt||}WqvtyYdS0qv|S)NcSsg|] }|r|qSrr)rrrrrrrzlocate..rrrL)r"rOrrPrr#r8)r rrlrnZ nextmodulerrrrrlocates   rcCsVt|tr0t||}|dur(td|||fSt|dd}|t|trL|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+)rrBrrr#)rrrr&rrrresolves   r Python Library Documentation: %scCs|dur t}t||\}}t|}t|}|rTd|vrT|d|d|d7}n|rn||urn|d|j7}t|st|st |st |st |st |dr|j }nt|}|d7}||d|||S)Nrz in z in module __origin__z objectr*)rXrrrrfrfindr+rUrrVr2rDrrrAr)rrrZrendererrr&rrrrr render_docs.     r c Cshz2|durtt|||n|t|||tWn0ttfyb}zt|WYd}~n d}~00dSr)rr r plaintextrrprint)rrroutputrorrrr=s r=c Csztt||\}}tt|t||}t|dddd}||Wdn1sZ0Ytd|dWn0tt fy}zt|WYd}~n d}~00dS)Nrrr)rZwrote) rhtmlr rrrrr"rr)rrrr&r rrorrrwritedocs(r%rEcCs2|dur i}t|g|D]\}}}t|qdSr)rg walk_packagesr%)rpkgpathdonerqrSrrrrr writedocs s  r)cJ@s.eZdZdddddddddddd d d d d ddddddddddddddddddddd$Zd d!d"DZd#d$d%d&geRd'd(d)d*d+d,d-Zd.d/d0d1d2d3d4d5d6d7d8d9d9d:d:d;ZeD]:\ZZ e D],Z e e eZ ee vre d<eZ e ee <qqd=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdLdMdNdOdPdQddRdSdSdTdUdVdWdXdYdZd[d\d]d^d_d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{dd d|d}d~ddIZ dddZ eddZeddZddZeZefddZddZddZddZddZdddZddZddZddZdddZdddZddZdddZ dS)HelperrEBOOLEANwith)assertrE)asyncrE)awaitrE)break while for)classzCLASSES SPECIALMETHODS)continuer1)functionrE)del BASICMETHODSif)elser1try)forzbreak continue whileimport)globalznonlocal NAMESPACES)r7 TRUTHVALUE)r;MODULES)inSEQUENCEMETHODS COMPARISON)lambdar)nonlocalzglobal NAMESPACES)passrE)raise EXCEPTIONS)returnr)r9rF)whilezbreak continue if TRUTHVALUE)r,z CONTEXTMANAGERS EXCEPTIONS yield)yieldrE)$FalseNoneTrue__peg_parser__andasr-r.r/r0r2r3defr5elifr8exceptfinallyr:fromr<r7r;r?isrBrCnotorrDrErGr9rHr,rIcCsg|]}dD] }||q qS)'r>r)rpr rrrrErzHelper.)rfrurYz'''r>r)+r***rz//%<<>>r |^~r r <=>===!=<>)r r rfrgrhrirj)rre) z+=z-=z*=z/=z%=z&=z|=z^=z<<=z>>=z**=z//=)rarbr rcrdre)jJ)STRINGS OPERATORSrAUNARYAUGMENTEDASSIGNMENTBITWISECOMPLEXzOPERATORS FORMATTINGPOWERzTUPLES LISTS FUNCTIONSz ATTRIBUTES FLOAT MODULES OBJECTSELLIPSISzSLICINGS DICTIONARYLITERALSz def classrm PRIVATENAMESzPRIVATENAMES SPECIALMETHODSZ BACKQUOTESzTUPLES FUNCTIONS CALLSzLISTS SUBSCRIPTS SLICINGS)r`r_,rr\:@rrr`r?rO[]r)rzRSTRINGS UNICODE NUMBERS SEQUENCES MAPPINGS FUNCTIONS CLASSES MODULES FILES inspect)stringsz4str UNICODE SEQUENCES STRINGMETHODS FORMATTING TYPES)zstring-methodszSTRINGS FORMATTING)Z formatstringsrn)r|z:encodings unicode SEQUENCES STRINGMETHODS FORMATTING TYPES)ZnumberszINTEGER FLOAT COMPLEX TYPES)Zintegersz int range)Zfloatingz float math)Z imaginaryz complex cmath)Ztypesseqz$STRINGMETHODS FORMATTING range LISTS DICTIONARIES)Ztypesfunctionsz def TYPES)Z typesmethodszclass def CLASSES TYPES)zbltin-code-objectszcompile FUNCTIONS TYPES)zbltin-type-objectsz types TYPESTYPES)zbltin-null-objectrE)zbltin-ellipsis-objectSLICINGS)Z specialattrsrE)rz!class SPECIALMETHODS PRIVATENAMES)Z typesmodulesr;)zoperator-summaryzlambda or and not in is BOOLEAN COMPARISON BITWISE SHIFTING BINARY FORMATTING POWER UNARY ATTRIBUTES SUBSCRIPTS SLICINGS CALLS TUPLES LISTS DICTIONARIES EXPRESSIONS)Zobjectsr~)Z specialnameszbBASICMETHODS ATTRIBUTEMETHODS CALLABLEMETHODS SEQUENCEMETHODS MAPPINGMETHODS NUMBERMETHODS CLASSES)Z customizationzhash repr str SPECIALMETHODS)zattribute-accesszATTRIBUTES SPECIALMETHODS)zcallable-typeszCALLS SPECIALMETHODS)sequence-typesz(SEQUENCES SEQUENCEMETHODS SPECIALMETHODS)rzMAPPINGS SPECIALMETHODS)z numeric-typesz*NUMBERS AUGMENTEDASSIGNMENT SPECIALMETHODS)Z execmodelz%NAMESPACES DYNAMICFEATURES EXCEPTIONS)Znamingz3global nonlocal ASSIGNMENT DELETION DYNAMICFEATURES)zdynamic-featuresrE NAMESPACES)rztry except finally raise)Z conversionsrE)Z identifierszkeywords SPECIALIDENTIFIERS)z id-classesrE)zatom-identifiersrE)z atom-literalsz=STRINGS NUMBERS TUPLELITERALS LISTLITERALS DICTIONARYLITERALS SEQUENCES)Z exprlistszTUPLES LITERALS)ztypesseq-mutable LISTLITERALS)ZlistszLISTS LITERALS)Z typesmappingDICTIONARYLITERALS)r5zDICTIONARIES LITERALS)zattribute-referencesz(getattr hasattr setattr ATTRIBUTEMETHODS)Z subscriptionsr@)Zslicingsr@)Zcallsr)Zpowerr)Zunaryr)binaryr)Zshiftingr)Zbitwiser)Z comparisonszEXPRESSIONS BASICMETHODS)ZbooleanszEXPRESSIONS TRUTHVALUEr-)Z assignmentrp)Z augassign NUMBERMETHODSr5rG)Zcompoundzfor while break continue)truthz if while and or not BASICMETHODS)ZdebuggerZpdb)zcontext-managersr,)Ir~rmZ STRINGMETHODSZ FORMATTINGUNICODEZNUMBERSZINTEGERFLOATrrrZMAPPINGSrZMETHODSZ CODEOBJECTSZ TYPEOBJECTSZ FRAMEOBJECTSZ TRACEBACKSNONErtZSPECIALATTRIBUTESrr>ZPACKAGESrrnZ PRECEDENCEZOBJECTSZSPECIALMETHODSr6ZATTRIBUTEMETHODSZCALLABLEMETHODSr@ZMAPPINGMETHODSrZ EXECUTIONrZDYNAMICFEATURESZSCOPINGZFRAMESrFZ CONVERSIONSZ IDENTIFIERSZSPECIALIDENTIFIERSruZLITERALSZTUPLESZ TUPLELITERALSZLISTSrr}rZ ATTRIBUTESZ SUBSCRIPTSrZCALLSrsroZBINARYZSHIFTINGrqrAr+Z ASSERTIONZ ASSIGNMENTrpZDELETIONZ RETURNINGZ IMPORTINGZ CONDITIONALZLOOPINGr=Z DEBUGGINGZCONTEXTMANAGERSNcCs||_||_dSr)_input_output)r:inputr#rrrrszHelper.__init__cCs |jp tjSr)rrrrrrrrsz Helper.inputcCs |jp tjSr)rrrrrrrr#sz Helper.outputcCs2tdddkr|dSd|jj|jjfS)NrLr[?rEz<%s.%s instance>)rstackr-r r!rrrr__repr__s zHelper.__repr__cCs6||jur||n|||jddS)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. )_GoInteractiverintrointeractr#rr:Zrequestrrr__call__s   zHelper.__call__c Cs|jdz|d}|s WqWnttfy<YqYn0|}t|dkr|d|dkrndvrnn |d|ddvr|dd}|dvrq|d kr|q | |q dS) NrKzhelp> rMrrrXrL)r quitr) r#rgetlinerEOFErrorrNrOrrrrrrrrs    ,  zHelper.interactcCs8|jtjurt|S|j||j|jSdSr)rrrr#rrr)r:promptrrrrs    zHelper.getlinecCs<t|tdur|}|dkr,|n|dkr>|n|dkrP|n|dkrb|n|dddkr||dn||jvr||nj|d vrt t |d nR||j vr| |n<||j vr| |n&|rt |d |jd nt td |jd n$t|tr|nt |d |jd |jd dS) NrEkeywordssymbolstopicsrzmodules rL)rLrJrKz Help on %s:)r#rK)rArN listkeywords listsymbols listtopics listmodulesr"r showsymbolr=evalr showtopicrrrBrr*r#rrrrrrs$z Helper.helpcCs$|jddtjdddS)Na Welcome to Python {0}'s help utility! If this is your first time using Python, you should definitely check out the tutorial on the Internet at https://docs.python.org/{0}/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". z%d.%drM)r#rr0rrrrrrrs z Helper.introrPc Cstt|}||}t||d|}t|D]v}t|D]\}|||}|t|kr<|j||||dkr<|jdd|dt||q<|jdq0dS)NrLrrK)r/rrOr.r#r) r:itemscolumnsr'Zcolwr1rowr2rrrrr/%s      &z Helper.listcCs |jd||jdS)NzN Here is a list of the Python keywords. Enter any keyword to get more help. )r#rr/rrkrrrrr2s zHelper.listkeywordscCs |jd||jdS)Nzx Here is a list of the punctuation symbols which Python assigns special meaning to. Enter any symbol to get more help. )r#rr/rrkrrrrr9s zHelper.listsymbolscCs |jd||jdS)NzN Here is a list of available topics. Enter any topic name to get more help. )r#rr/rrkrrrrrAs zHelper.listtopicsc Cs,z ddl}Wn ty,|jdYdS0|j||j|}|s`|jdt|dSt|tdur|| ||S|\}}z|jj|}Wn(t y|jdt|YdS0| d}|r|pdd|}|r ddl }dd |d} || d } |d d | 7}t|dS) Nrt Sorry, topic and keyword documentation is not available because the module "pydoc_data.topics" could not be found. zno documentation found for %s rErKrRelated help topics: rNHz %s )pydoc_data.topicsrr#rrrrrrArKeyErrorrNtextwraprPr"wrapr) r:topic more_xrefs pydoc_datatargetlabelxrefsr=rrXZ wrapped_textrrrrHs4       zHelper.showtopiccCsz ddl}Wnty YdS0|j||j|}|sDtdt|trZ|||S|\}}|jj|}|r|pxdd|}||fS)Nr)rrEzcould not find topicrEr) rrrrrrrrB _gettopic)r:rrrrrrr=rrrrhs      zHelper._gettopiccCs*|j|}|d\}}}|||dS)Nr)r partitionr)r:symbolrrrrrrrrs zHelper.showsymbolcsv|r |jd|t|nR|jdi}|fddfdd}tj|d|||jddS) 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... cSs>|r$|dddkr$|ddd}|ddkr:d||<dS)N .__init__rrrrL)find)r rSrrrrrcallbacksz$Helper.listmodules..callbackcsd|ddSrrrrrronerrorsz#Helper.listmodules..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". )r#rr0apropos ModuleScannerrunr/rk)r:rnrrrrrrs     zHelper.listmodules)NN)rr)rE)rE)rE)!r+r r!rZ _strprefixesZ_symbols_inverserrrZsymbols_rrrrr0rr#rrrrrrrrr/rrrrrrrrrrrr*sD(    W       r*c@seZdZdddZdS)rNc Cs|r |}d|_i}tjD]p}|dkrd||<|durF|d|dqt|jpRd}|dd}|d|}||dkr|d||qtj |dD]V\} }} |jrq|dur|d|dqzt | |} Wnt yYqYn0| j } t | d rjz| |} Wn&ty6|r.||YqYn0tt| pJd}t | d rd| |}nd}n^ztj| }Wn&ty|r||YqYn0|jr|jdnd}t|d d}|d|}||dkr||||q|r|dS) NF__main__rLrErKrrr get_source get_filenamerz)rrrrrr?r"rrgr& _get_specrrrrr|rrStringIOrrrrrrr#)r:rrnZ completerrseenrSr&rrqrrrrsourcer rrrrrs^            zModuleScanner.run)NNN)r+r r!rrrrrrsrcCsXdd}dd}t,tdtj|||dWdn1sJ0YdS)NcSs6|dddkr |ddd}t||o.d|dSNrrrz- )r"r rSrrrrrszapropos..callbackcSsdSrrrrrrrszapropos..onerrorignorer)warningscatch_warningsfilterwarningsrr)rnrrrrrrs   rcsddlddlddlddlGdddjjGfdddjjGfdddj}||||}||j s|j st dq~|S) Nrc@seZdZddZddZdS)z!_start_server..DocHandlercSsX|jdrd}nd}|d|dd|||j||j|ddS)Nz.csstext/css text/htmlz Content-Typez%s; charset=UTF-8r) r rZ send_responseZ send_headerZ end_headersZwfiler urlhandlerr)r: content_typerrrdo_GET0 s   z(_start_server..DocHandler.do_GETcWsdSrr)r:rrrr log_message@ sz-_start_server..DocHandler.log_messageN)r+r r!rrrrrr DocHandler. srcs(eZdZddZfddZddZdS)z _start_server..DocServercSs6||_|j|f|_||_|j||j|jd|_dSNF)hostaddressrr<rhandlerr)r:rportrrrrrF s  z)_start_server..DocServer.__init__cs>|js2|jgggd\}}}|r|q|dSrf)rselectsocketrZhandle_requestZ server_close)r:Zrdwrexrrrserve_until_quitM s  z1_start_server..DocServer.serve_until_quitcSs |j||jr||dSr)r<server_activaterrrrrrT s z0_start_server..DocServer.server_activateN)r+r r!rrrrrrr DocServerD s rcs:eZdZfddZfddZddZddZd S) z#_start_server..ServerThreadcs2||_||_t||_j|d|_d|_dSr)rrrDrThreadrservingerror)r:rrr) threadingrrr[ s   z,_start_server..ServerThread.__init__c szzJjj__jj_t|j_|j |j |j }||_ | Wn*tyt}z||_WYd}~n d}~00dSr)server HTTPServerr<rrZMessageZ MessageClass staticmethodrrrready docserverrr|r)r:Zdocsvre)rremailhttprrrc s    z'_start_server..ServerThread.runcSs,d|_|j|_|j|_d|j|jf|_dS)NTz http://%s:%d/)rrZ server_portrr;)r:rrrrrp sz)_start_server..ServerThread.readycSs&d|j_|d|_d|_d|_dS)NTF)rrrPrr;rrrrstopv s z(_start_server..ServerThread.stopN)r+r r!rrrrr)rrrrrrr ServerThreadY s  rg{Gz?) Z http.serverZ email.messagerrrZBaseHTTPRequestHandlerrrrJrrtimesleep)rhostnamerrthreadr)rrrrrrr _start_servers8'   rrcs6Gfdddt}|fddfddfddfd d fd d fd dfddfddfdd}|dr|dd}|dkrtjtjt}tj||}t|}d| WdS1s0Yn|dkr"||St d||fdS)NcseZdZfddZdS)z_url_handler.._HTMLDoccsd}d|}d|||fS)Nzpydoc_data/_pydoc.cssz1a  Pydoc: %s %s%s
%s
r)r:rrcss_pathZcss_link html_navbarrrr  s z#_url_handler.._HTMLDoc.pageN)r+r r!r rrrr_HTMLDoc srcs>dttdtf}d|tjddfS)Nz %s [%s, %s]raZ
Python %s
%s
T)Zterse)r rZpython_versionZ python_buildZpython_compiler)rnr$rrr s  z!_url_handler..html_navbarcsdd}ddd}ddtjD}||}|dd dd |g}i}tjD]}|||qT|d d d |fS)NcSs d||fSr8rr&rrr bltinlink sz3_url_handler..html_index..bltinlinkz7Index of Modulesr[r\cSsg|]}|dkr|qS)rr)rr&rrrr sz4_url_handler..html_index..z

zBuilt-in Modulesr`z|

pydoc by Ka-Ping Yee<ping@lfw.org>zIndex of ModulesrE) r%rrr3r)r rrrP)rr%namesrrrrrr html_index s"  z _url_handler..html_indexc sgfdd}t4tddd}tj|||dWdn1sR0Ydd}g}d d d }D]\}}||||qz|d |d d d|}d|fS)Ncs:|dddkr |ddd}||o0d|fdSrrprZ search_resultrrr sz3_url_handler..html_search..callbackrcSsdSrrrrrrr sz2_url_handler..html_search..onerrorrcSs d||fSr8rrrrrr sz4_url_handler..html_search..bltinlinkz5Search Resultsr[r\zkey = %sr`
zSearch Results) rrrrrr%rr)rP) rnrrrrr%r&rrrrr html_search s$   0 z!_url_handler..html_searchcsLdd}ddd}ttj}||}|ddd|}d|fS)NcSs d||fSNz%srrrrrr sz4_url_handler..html_topics..bltinlink,INDEXr[r\ZTopicsr`)r%rr*rrkr3r))rr%rrrrr html_topics s z!_url_handler..html_topicscsLddd}ttj}dd}||}|ddd|}d|fS)Nrr[r\cSs d||fSrrrrrrr sz6_url_handler..html_keywords..bltinlinkZKeywordsr`)r%rr*rrkr3r))r%rrrrrr html_keywords s z#_url_handler..html_keywordscst}t||}||\}}||jvr0d}nd}d|dd}d|}|dd|}|rt| }dd } ||} d dd|}d ||fd |||ffS) NZKEYWORDZTOPICrWr[r\z

%s
r`cSs d||fSrrrrrrr& sz7_url_handler..html_topicpage..bltinlinkrz%s %srE) rrr*rrr%rMr)rr"r3r(rP)rbufZhtmlhelprrrr%rrrrhtml_topicpage s,     z$_url_handler..html_topicpagecs@t|dd}|dur$|dkr$tdt|}||}||fS)NrL)rrKzcould not find object)rrrr)r;r9rcontentrrr html_getobj/ s   z!_url_handler..html_getobjcsPddd}dfddtt||D}||dd|}d||fS) Nz,Errorr[r\rc3s|]}|VqdSr)r rrrrr; rz3_url_handler..html_error..z#bb0000z Error - %s)r%rPrrAr))r;rr%rrrr html_error7 s  z _url_handler..html_errorc sp|}|dr|dd}z|dvr2\}}n|dkrF\}}n|dkrZ\}}nd|vr |d\}}}|dkr|\}}n|dkrz|\}}Wnty|\}}Yn0nZ|d kr|dvr\}}n2z|\}}Wn ty|\}}Yn0ntd n |\}}Wn4tyb}z||\}}WYd}~n d}~00||S) Nr)rErrrrz search?keyz topic?keyzget?keyz bad pydoc url)rrrr|r )r;Z complete_urlrr oprr)r$r r rrrr rrr get_html_pageA s>          $z#_url_handler..get_html_pagerrLrrErz"unknown content type %r for url %s) rrr r dirnamerealpathrzrPr readlinesrC)r;rrrZ path_hererfpr) r$r r rrrrr rr _url_handler s*         (    0 rT localhost) open_browserrc Csddl}tt||}|jr(t|jdS|jrd}|rB||jzzZtd|jt||jrtd}| }|dkr|qqZ|dkr||jqZt|qZWnt t fytYn0W|jr| tdn|jr| td0dS)Nrz"Server commands: [b]rowser, [q]uitzServer ready atzserver> r rzServer stopped) webbrowserrrrr"rrr;rrrrr)rrrrZ serverthreadZserver_help_msgrrrrbrowsev s8     rcCst|to|tjdkSr)rrBrr sep)rtrrrispath srcCsvd|vstj|vst|vr"dStjt}tj|}|}||vrbtj||sb||| dt|S)NrEr) r curdirgetcwdr rrzcopysamefileremoveinsert)Z given_pathZargv0Z stdlib_dirZ script_dir revised_pathrrr_get_revised_path s    r#cCs,ttjtjd}|dur(|tjdd<dSr)r#rr argv)r"rrr_adjust_cli_sys_path sr%c Csddl}Gdddt}tzx|tjddd\}}d}d}d}d}d}|D]\\} } | dkrld }d }| d krt| WdS| d krd }| }| d krd }| d krTd }| }qT|rt|||dWdS|s||D]} t| rtj | st d| qz`t| r&tj | r&t | } |rXt| rNtj | rNt| nt| n t| Wqty} zt | WYd} ~ qd} ~ 00qWnL|j|fytj tj tjdd} t dj| tjdYn0dS)Nrc@s eZdZdS)zcli..BadUsageN)r+r r!rrrrBadUsage rr&rLzbk:n:p:wFrz-bTz-kz-pz-wz-n)rrzfile %r does not existapydoc - the Python documentation tool {cmd} ... Show text documentation on something. 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 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 Search for a keyword in the synopsis lines of all available modules. {cmd} -n Start an HTTP server with the given hostname (default: localhost). {cmd} -p 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. This option can be used in combination with -n and/or -p. {cmd} -w ... Write out the HTML documentation for a module to a file in the current directory. If contains a '{sep}', it is treated as a filename; if it names a directory, documentation is written for all the contents. )rr)getoptr|r%rr$rrrr r existsr"rrr r)r%rrrrrr0r)r'r&ZoptsrwritingZ start_serverrrroptvalargrorrrrcli s`    $r-r)NN)r)r)rrN)rrN)r)rEN)r)r)_rar{rrvrZimportlib._bootstraprZimportlib._bootstrap_externalimportlib.machineryimportlib.utilrrr rgrrFrrrrr urllib.parserbr collectionsrreprlibr tracebackrrrr'r>r7rDrJrRrTrWrZr`r@ IGNORECASErarcrerjrurrrrrrr|rrrrrrrrrrrrrrr rrrrrXr!r$rr r=r%r)r*rrrrrrrr#r%r-r+rrrr(s      3      ' 0:*; " ,    = n% U