eaiovnaovbqoebvqoeavibavo B  f@sdgZdZdZdZddlZddlZddlZddlZddl Zddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlmZddlmZddlmZd d Zd d Zd dZddZ ddZ!ddZ"ddZ#e$dej%Z&ddZ'ddZ(ddZ)ddZ*d d!Z+dyd"d#Z,d$d%Z-d&d'Z.d(d)Z/d*d+Z0ifd,d-Z1Gd.d/d/e2Z3d0d1Z4difd2d3Z5Gd4d5d5Z6Gd6d7d7eZ7Gd8d9d9e6Z8Gd:d;d;eZ9Gdd?d?e:Z;d@dAadFdGZ?dHdIZ@dJdKZAdLdMZBdNdOZCdPdQZDdzdRdSZEe:ZFe;ZGe8ZHd{dTdUZId|dWdXZJd}dYdZZKd~d[d\ZLdd^d_ZMGd`dadaZNeNZOGdbdcdcZPdddeZQdfdgZRddidjZSddkdldmdndoZTdpdqZUdrdsZVdtduZWdvdwZXeYdxkreXdS)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}xRtjD]H}tj|p d}tj|}||krtj|r||||qW|S)N.)syspathosabspathnormcaseisdirappend)dirsZnormdirsdirZnormdirr*/opt/alt/python37/lib64/python3.7/pydoc.pypathdirsQs   rcCs.t|pt|}|r*tdd|p,dS)Nz^ * )inspectgetdocZ getcommentsresubrstrip)objectresultrrrr]srcCsf|d}t|dkr&|ddfSt|dkrX|dsX|dd|ddfSdd|fS)N rr)stripsplitlenrjoin)doclinesrrrsplitdocbs   r$cCs"|j}|j|kr|jd|}|S)Nr)__name__ __module__)rmodnamenamerrr classnameks r)cCs>t|p:t|p:t|p:t|p:t|p:t| S)N)rismoduleisclass isroutineZisframeZ istracebackZiscode)rrrrisdatarsr-cGs2x,|r,|d||d}|dd}qW|S)Nrrr)r!r)textZpairsrrrreplacexsr/cCsXt||krTtd|dd}td|d|}|d|d|t||dS|S)Nrrz...)r max)r.maxlenZpreZpostrrrcrams  $r3z at 0x[0-9a-f]{6,16}(>+)$cCs td|S)Nz\1) _re_stripidr)r.rrrstripidsr5cCs(t|p&t|p&t|p&t|S)N)r isfunctionismethod isbuiltinZismethoddescriptor)objrrr_is_some_methods   r:cCs<t|rdSt|r8t|dd}t|p4|dk SdS)NT__self__F)rr7r8getattrr*)fnselfrrr_is_bound_methods    r?cCshi}x t|tD]\}}d||<qWx|jD]}|t|q.Wx|D]}t||||<qNW|S)Nr)r getmembersr: __bases__update allmethodskeysr<)clmethodskeyvaluebaserrrrCs  rCcCs<g}g}x*|D]"}||r&||q||qW||fS)N)r )s predicateZyesnoxrrr _split_lists  rNcCs\|dkr dS|dr$|dr$dS|dr__file__ __slots__r& __loader__ __package____path__ __author____doc__ __cached____spec____date__ __builtins__ __qualname__ __credits__r% __version__r__r__fieldsT) startswithendswithhasattr)r(allr9rrr visiblenamesrdcCsDg}x:t|D],\}}}}t|r*d}|||||fqW|S)Nzdata descriptor)rclassify_class_attrsisdatadescriptorr )rresultsr(kindclsrHrrrres  recs\t|dgyfddtDWntk r>iYnXfdd}|j|ddS)Nr_csi|]\}}|t|qSr)r ).0ir()fieldsrr sz#sort_attributes..cs|dd|dfS)Nr)get)attr) field_orderrrz!sort_attributes..)rG)r< enumerate TypeErrorsort)attrsrZkeyfuncr)rprlrsort_attributess   rwcCs<tj|r8x*dD]"}tjtj|d|rdSqWdS)N)z.pyz.pyc__init__TF)r rr isfiler!)rextrrr ispackages   r{cCs|}x*|dddks"|s2|}|s Pq W|}|dddkrX|dd}|dddkr|dd}|dddkr|dd}x|s|}|sPqW|dd }nd}|S) Nr#zr"""r0z"""\r)readlinerr)filelinerrrrsource_synopsiss&    rc Cst|j}||d\}}|dks.||kr|ttjjrJtjj }n |ttjj rftjj }nd}|dkryt |}Wntk rdSX|t|}WdQRXnZ|d|}tjjd||d}ytj|} Wn dStjd=| jr| jdnd}||f||<|S)N)NNZ__temp__)loaderr)r statst_mtimernratuple importlib machineryBYTECODE_SUFFIXESSourcelessFileLoaderEXTENSION_SUFFIXESExtensionFileLoadertokenizeopenOSErrorrutilspec_from_file_location _bootstrap_loadrmodulesrU splitlines) filenamecachemtimeZ lastupdaterZ loader_clsrrspecmodulerrrsynopsiss4      rc@seZdZddZddZdS)ErrorDuringImportcCs||_|\|_|_|_dS)N)rexcrHtb)r>rexc_inforrrrx(szErrorDuringImport.__init__cCs|jj}d|j||jfS)Nzproblem in %s - %s: %s)rr%rrH)r>rrrr__str__,szErrorDuringImport.__str__N)r%r&rZrxrrrrrr&src Cstjj}t|d}||t|k}WdQRXtj|}tj |\}}|r`tj ||}ntj ||}tjj |||d}y tj|St|tYnXdS)Nrb)r)rr MAGIC_NUMBERrreadr r rbasenamesplitext_bootstrap_externalrSourceFileLoaderrrrrrr) rmagicrZ is_bytecoderr(rzrrrrr importfile0s   rc s"yb|rXtjkrXtjkrXfddtjD}x(g|D]}tj|||<tj|=q:Wt}Wnxt\}}}} tjkrttjj| n<|tkrt|j| n&t |t r|j krdSttYnXx@ dddD]*} yt || }Wqtk rdSXqW|S)Ncsg|]}|dr|qS)r)r`)rjm)rrr Vszsafeimport..rr)rrbuiltin_module_names __import__rrrO SyntaxErrorr issubclass ImportErrorr(rr<AttributeError) r forceloadrZsubsrGrrrHrinfopartr)rr safeimportBs.     rc@sfeZdZejddejddZd ddZ d ddZ e Z Z Z ZZZed fd d ZdS)Doc PYTHONDOCSz%https://docs.python.org/%d.%d/libraryNrcGs||f|}t|r |j|St|r4|j|Sy@t|rJ|j|St|r^|j|St|rr|j |SWnt k rYnXt |t r|j |S|j|S)N)risgetsetdescriptordocdataismemberdescriptorr* docmoduler+docclassr, docroutiner isinstanceproperty docpropertydocother)r>rr(argsrrrdocumentxs"       z Doc.documentcGs*d|odt|t|jf}t|dS)Nz.don't know how to document object%s of type %s )reprtyper%rt)r>rr(rmessagerrrfailszDoc.failZstdlibcCsyt|}Wntk r&d}YnXtjd|j}tj|}t |t tr|j dksz| |r| tj |ds|j dkr| drd|d|j f}qtj ||j d }nd}|S) Nz (built-in)r) errno exceptionsZgcZimpmarshalposixsignalr_threadZ zipimportz site-packages)z xml.etreeztest.pydoc_mod)zhttp://zhttps://z%s/%s/z.html)r getabsfilertr environrnrrr rrr%r`r!rlower)r>rZbasedirrdoclocrrr getdoclocs       z Doc.getdocloc)N)N)r%r&rZr rrnr version_inforrrrrrrrr sysconfigZget_pathrrrrrrrs  rc@sDeZdZddZddZddZddZd d ZeZd d Z eZ d S)HTMLReprcCs,t|d|_|_d|_d|_|_dS)N d)rrxmaxlistmaxtuplemaxdict maxstringmaxother)r>rrrrxs  zHTMLRepr.__init__cCst|ddddddS)N&z&z>)r/)r>r.rrrescapeszHTMLRepr.escapecCs t||S)N)rr)r>rrrrrsz HTMLRepr.reprcCsZtt|dr@ddt|j}t||r@t||||S|ttt ||j S)Nr%repr_r^) rbrr!r%rr<rr3r5rr)r>rMlevel methodnamerrrrepr1s  zHTMLRepr.repr1cCs^t||j}t|}d|krJdt|ddkrJd|d|||dStdd||S)Nrz\\rrrz-((\\[\\abfnrtv\'"]|\\[0-9]..|\\x..|\\u....)+)z\1)r3rrr/rrr)r>rMrtesttestreprrrr repr_strings zHTMLRepr.repr_stringcCs8y|ttt||jS|d|jjSdS)Nz <%s instance>)rr3r5rr __class__r%)r>rMrrrr repr_instanceszHTMLRepr.repr_instanceN) r%r&rZrxrrrrrepr_strrZ repr_unicoderrrrrs rc@s eZdZeZejZejZddZd4ddZd5d d Z d d Z d dZ d6ddZ ddZ ddZddZddZddZddZdiiifddZd7d d!Zd8d"d#Zddiifd$d%Zd&d'Zddiiidfd(d)Zd*d+Zd9d,d-Zd:d.d/Zd;d0d1Zd Python: %s %s r)r>titlecontentsrrrpagesz HTMLDoc.pagercCsd|||||pdfS)Na'
 
 
%s
%s
z r)r>rfgcolbgcolextrasrrrheadings zHTMLDoc.headingN c Cs^|dkrdd|d}d|||f} |r@| d||||f} n| d|||f} | d|S)Nzz zz

zR z( z'
 
%s
%s %s
%s
%s%s%s
r) r>rrrrwidthZpreludeZ marginaliaZgaprrrrsectionszHTMLDoc.sectioncGsd|}|j|f|S)Nz%s)r)r>rrrrr bigsection szHTMLDoc.bigsectionc Cs&||}t|dddddddd S)Nz z rz rz
)r expandtabsr/)r>r.rrr preformats zHTMLDoc.preformatr}cCsd}t||d|}xht|D]\}|dd|}x>t|||||D]$}|t|krN||||d}qNW|d}q"Wd|S)Nrrzrz
zz7%s
)r range)r>listformatZcolsrrowscolrkrrr multicolumns  zHTMLDoc.multicolumncCsd|S)Nz%sr)r>r.rrrgrey#rrz HTMLDoc.greycGs*x$|D]}||krd|||fSqW|S)Nz%sr)r>r(Zdictsdictrrrnamelink%s zHTMLDoc.namelinkcCsN|jtj|j}}t||rDt|||krDd|j|t||fSt||S)Nz%s)r%rrrnr&rbr<r))r>rr'r(rrrr classlink,s zHTMLDoc.classlinkcCsd|j|jfS)Nz%s)r%)r>rrrr modulelink4szHTMLDoc.modulelinkcCsR|\}}}}|r||S|r,d||f}nd|}|rBd|}n|}d||fS)Nz %s.%s.htmlz%s.htmlz"%s (package)z%s)r)r>Z modpkginfor(rr{shadowedurlr.rrr modpkglink8s   zHTMLDoc.modpkglinkcCs d||fS)Nz%sr)r>r rrrrfilelinkGszHTMLDoc.filelinkcCs|p|j}g}d}td}xL|||} | s2P| \} } ||||| | \} } }}}}| r|| dd}|d||fn|rdt|}|d||| fn|rdt|}|d||| fn|r$|| | dd kr|d | ||n|d |n@|| | dd krR|| ||||n|| ||| }q W||||dd |S) NrzD\b((http|ftp)://\S+[\w/]|RFC[- ]?(\d+)|PEP[- ]?(\d+)|(self\.)?(\w+))"z"z%sz'http://www.rfc-editor.org/rfc/rfc%d.txtz(http://www.python.org/dev/peps/pep-%04d/r(zself.zself.%sr) rrcompilesearchspanr groupsr/intrr!)r>r.rfuncsclassesrFrgherepatternmatchstartendrcZschemeZrfcZpepZselfdotr(r rrrmarkupKs<      zHTMLDoc.markupc Csd}x|D]}t|tdkr|\}}|d}||||}|r||fkrg}x|D]} ||| |qVW|dd|d}|d}q t|tgkr |d||||}q Wd |S) Nrrz"

rz, )z
z
%s
z
%s
)rrr r! formattree) r>treer'parentrentrycbasesparentsrIrrrrvs    zHTMLDoc.formattreec# s|j}y |j}Wntk r(d}YnX|d}g}x@tt|dD],}|dd|d|d||fqJWd||dd} d| } y&t |} t j | } | | } Wntk rd} YnXg}t|dr:t|j}|ddd kr&|ddd kr&|dd}|d |t|d r\|t|j|rt| d d|} |}|dk rdt}nd}| ddd| |}t|tj}gi}}xlt|tjD]Z\}}|dk st|p||krt|||r|||fd|||<||<qWx|D]\}}xx|jD]n}|j|j}}tj !|}||krL|rLt||rLt"|||krL||krL|d|||<||<qLWq%sr~z)%sz (built-in)r\ z $Revision: $z version %srXz (%s)z, z-
Module Referencerz#ffffffz#7799eezindex
r|z.html#z#-z %sz

%s

rSrzPackage Contentsz#aa55cccs|dS)Nr)r )t)r>rrrqrrz#HTMLDoc.docmodule..ZModulescSsg|] \}}|qSrr)rjrGrHrrrrsz%HTMLDoc.docmodule..ZClassesz#ee77aarZ Functionsz#eeaa77ZDataz#55aa55z
rTZAuthorr[ZCredits)6r%__all__rrrr r r!rrurllibparseZquoter rtrbstrr\rrrXrlocalsrr@r*r+ getmodulerdrAr&rrrnr<r,r8r6r-rrrpkgutil iter_modulesrSrurr rr getclasstreerrTr[)#r>rr(modignoredrcpartsZlinksrkZ linkednameheadrr r rversionrrrrZcdictrGrHrIr'rrZfdictdatar"modpkgsimporterispkgr classlistr)r>rrs   &     $         $        zHTMLDoc.docmodulec szj}|p |}j}g} | jGfddd} | tt} t| dkrdx"| D]} d| j qfWdfdd} fd d }fd d }fd dt D}ixv|D]n\}}}}d|d||<}yt |}Wnt k r:YnXy ||<Wqt k r^YqXqWx|rT| r|| n |ddt|fdd\}}tjkr|}qfn"krd}ndj }|d7}t|| d||dd}| d||dd}| d||dd}|d||dd}|d||d d}|}qfWd!| } ||krxd"||f}nd#|||f}|rg}x"|D]} || j qW|d$d%|}d!}yt}Wntt fk rd}YnX|r(t|}|r(|d&kr(||d'}t}|rD||p@d!}|j}|odd(|}|d)d*| d+|S),Ncs eZdZddZfddZdS)z(HTMLDoc.docclass..HorizontalRulecSs d|_dS)Nr)needone)r>rrrrxsz1HTMLDoc.docclass..HorizontalRule.__init__cs|jrdd|_dS)Nz
r)r;)r>)pushrrmaybesz.HTMLDoc.docclass..HorizontalRule.maybeN)r%r&rZrxr=r)r<rrHorizontalRule sr>rz&
Method resolution order:
z
%s
z
c st||\}}|r|xl|D]d\}}}}yt|}Wn&tk rh||YnX||dq(W|S)Nr)rNr=r< Exception_docdescriptorr)msgrvrKokr(rhhomeclsrH)rrhrmdictr1rr<r>rrspill s  zHTMLDoc.docclass..spillcsNt||\}}|rJ|x&|D]\}}}}||q(W|S)N)rNr=r@)rArvrKrBr(rhrCrH)rDr1r<r>rrspilldescriptors2sz*HTMLDoc.docclass..spilldescriptorsc st||\}}|r|x|D]\}}}}t||}t|sZt|rht|dd} nd} | dkrd|n0t|j } d| } d|| fdq(W|S)NrUz
%s
z
%sz
%s%s
r) rNr=rr<callablerrfrrr) rArvrKrBr(rhrCrHrIr")rrrDrEr1rr<r>rr spilldata;s"  z#HTMLDoc.docclass..spilldatacs,g|]$\}}}}t|dr||||fqS))r9)rd)rjr(rhrirH)rrrrPs z$HTMLDoc.docclass..r|-rcs |dkS)Nrr)r') thisclassrrrqirrz"HTMLDoc.docclass..z defined herezinherited from %sz:
z Methods %scSs |ddkS)Nrmethodr)r'rrrrqyrrzClass methods %scSs |ddkS)Nrz class methodr)r'rrrrq{rrzStatic methods %scSs |ddkS)Nrz static methodr)r'rrrrq}rrzData descriptors %scSs |ddkS)Nrzdata descriptorr)r'rrrrqrrzData and other attributes %scSs |ddkS)Nrr6r)r'rrrrqrrrz*class %sz/%s = class %sz(%s)z, z()z z%s
 
z#000000z#ffc8d8r0)r%rAr rrgetmror r=rr&rer<r?rtpopleftrNbuiltinsrrwr! signature ValueErrorr+rrrrr)r>rr(r1rrr2realnamer#rr>mrorIrFrGrIrvrGrhrCrHanchor inheritedtagrr$declrPargspecr"r) rrrDrEr1rr<r>rKrrs                               zHTMLDoc.docclasscCs|d||S)N=)rr)r>rrrr formatvalueszHTMLDoc.formatvaluec Cs|j}|p |}|r|jpdd|} d} d} t|r|jj} |rZ| |k rd|| |} n0|jdk rzd||jj|} nd|| |} ||krd| |f} nD|rt||g|krd|jd||f}d } n|}d | ||f} d}t|rNyt|}Wnt t fk r d}YnX|rNt |}|d krNd |} |d d }|sXd}| | || ov| d| }| rd|S|t||j|||}|od|}d||fSdS)NrrJrz from z method of %s instancez unbound %s methodz$%sz%srz)%s = %szz$%s lambda r~z(...)z'%sz
%s
z
%s
z
%s
%s
)r%r?r;rrrgetattr_staticr,rPrQrtr+rrrrr)r>rr(r1rrrFrErRrTnoteskipdocsimclassrZreallinkrXrPrWr"rrrrsX       zHTMLDoc.docroutinecCsTg}|j}|r|d||jdk rB|t||j}|d||dd|S)Nz!
%s
z
%s
z
r)r rUrrrr!)r>r(rHr1rgr<r"rrrr@s   zHTMLDoc._docdescriptorcCs||||S)N)r@)r>rr(r1rErrrrszHTMLDoc.docpropertycGs|r d|pd}|||S)Nz%s = r)r)r>rr(r1r2ZlhsrrrrszHTMLDoc.docothercCs||||S)N)r@)r>rr(r1rErrrrszHTMLDoc.docdatacCsg}|dkri}xLt|gD]<\}}}tdd|Drsz HTMLDoc.index..rrz#ffffffz#ee77aa)r.r/anyr rurr r)r>rr r7r8r(r9rrrrindexs z HTMLDoc.index)r)rrNr)r})N)NN)NNN)NN)NNN)N)r%r&rZr_repr_instancerrrrrrrrrrrr r r rrrrrZrr@rrrrcrrrrrs:   +  y$:   rc@s0eZdZddZddZddZeZddZd S) TextReprcCs,t|d|_|_d|_d|_|_dS)Nrrr)rrxrrrrr)r>rrrrxs  zTextRepr.__init__cCsTtt|dr@ddt|j}t||r@t||||Sttt||j S)Nr%rr^) rbrr!r%rr<r3r5rr)r>rMrrrrrrs  zTextRepr.repr1cCsHt||j}t|}d|krDdt|ddkrDd|d||dS|S)Nrz\\rrr)r3rrr/)r>rMrrrrrrrs  zTextRepr.repr_stringcCs,yttt||jSd|jjSdS)Nz <%s instance>)r3r5rrrr%)r>rMrrrrr)szTextRepr.repr_instanceN)r%r&rZrxrrrrrrrrres  rec@seZdZeZejZddZdddZddZdd d Z dd d Z dddZ ddZ d ddZ ddZd!ddZd"ddZd#ddZdS)$TextDoccCsddd|DS)Nrcss|]}|d|VqdS)Nr)rjr`rrrra9szTextDoc.bold..)r!)r>r.rrrbold7sz TextDoc.bold cs>|sdSfdd|dD}|r4|d|d<d|S)Nrcsg|] }|qSrr)rjr)prefixrrr>sz"TextDoc.indent..rr~)rrr!)r>r.rjr#r)rjrindent;s zTextDoc.indentcCs$||}||d|dS)Nrz )rkrrh)r>rrZclean_contentsrrrrBszTextDoc.sectionNrc sd}x|D]}t|tdkrt|\}}||t|}|rj||fkrjfdd|D} |dd| }|d}q t|tgkr |||||d}q W|S) Nrrc3s|]}t|VqdS)N)r))rjr")r'rrraQsz%TextDoc.formattree..z(%s)z, rz )rr)r!r) r>rr'r rjrr!r"r#r$r)r'rrIs  zTextDoc.formattreec CsD|j}tt|\}}|d||o(d|}t|dd}||}|dk r`||d|d}|rt||d|}g} xNt|tjD]<\} } |dk st | p||krt | ||r| | | fqWg} xXt|tj D]F\} } |dk st | st | |krt | ||r| | | fqWg} x6t|tD]&\} } t | ||r8| | | fq8Wg}t}t|drxFt|jD]6\}}}|||r| |dn | |qW|||d d |}g}xBt|tjD]0\} } | j|d r| |kr| | qW|rJ|||d d |}| rd d| D}|t|d|g}x&| D]\} } | || | |qzW||dd |}| rg}x&| D]\} } | || | |qW||dd |}| rFg}x*| D]"\} } | |j| | |ddq W||dd |}t|drt|j}|dddkr|dddkr|dd}||d|}t|dr||dt|j }t|dr||dt|j!}t|dr||d t|j"}yt#|}Wnt$k r.d!}YnX||d"|}|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. Z DESCRIPTIONrSz (package)zPACKAGE CONTENTSrrZ SUBMODULEScSsg|] \}}|qSrr)rjrGrHrrrrsz%TextDoc.docmodule..rCLASSES FUNCTIONSF)r2ZDATAr\r%z $Revision: r~r&ZVERSIONrXZDATErTZAUTHORr[ZCREDITSz (built-in)FILE)%r%r$rrr<rrr@r+r-rdr r,r8r-setrbr.r/rSaddrur!r*r`rr0rrr+r\rrXrTr[rrt)r>rr(r1ZsynopdescrrcrrrGrHrr6r7Z modpkgs_namesr8r'r9Z submodulesr:rr5rrrrrYs           $    zTextDoc.docmodulec sj}|p |}j}jfdd}||kr:d|}n|d|}|rlt||} |dd| }g} | jyt} Wnt t fk rd} YnX| rt | } | r| dkrʈ|| dt } | r| dt t}t|d kr.d x|D]}d ||q Wd Gfd dd}|fdd}fdd}fdd}fddtD}x|r||r|n |dd t|fdd\}}tjkr|}qn krd}ndtj}t||d||dd}|d||dd}|d ||d!d}|d"||d#d}|d$||d%d}|}qWd| } | s|dS|d| d&dS)'NcSs t||S)N)r))r"rrrrmakenamesz"TextDoc.docclass..makenamezclass z = class z(%s)z, z()rrzMethod resolution order:z rcs eZdZddZfddZdS)z(TextDoc.docclass..HorizontalRulecSs d|_dS)Nr)r;)r>rrrrxsz1TextDoc.docclass..HorizontalRule.__init__cs|jrdd|_dS)NzF----------------------------------------------------------------------r)r;)r>)r<rrr=sz.TextDoc.docclass..HorizontalRule.maybeN)r%r&rZrxr=r)r<rrr>sr>c st||\}}|r|x^|D]V\}}}}yt|}Wn&tk rh||Yq(X||q(W|S)N)rNr=r<r?r@r)rArvrKrBr(rhrCrH)rDr1rr<r>rrrFszTextDoc.docclass..spillcsNt||\}}|rJ|x&|D]\}}}}||q(W|S)N)rNr=r@)rArvrKrBr(rhrCrH)rDr1r<r>rrrGsz*TextDoc.docclass..spilldescriptorsc st||\}}|r|x~|D]v\}}}}t|sFt|rPt|}nd}yt|} Wntk r|j|} YnXj | |d|ddq(W|S)Nro)r2r"r) rNr=rHrrfrr<r__dict__r) rArvrKrBr(rhrCrHr"r9)rDr1rr<r>rrrI s  z#TextDoc.docclass..spilldatacs,g|]$\}}}}t|dr||||fqS))r9)rd)rjr(rhrirH)rrrrs z$TextDoc.docclass..rcs |dkS)Nrr)r')rKrrrq&rrz"TextDoc.docclass..z defined herezinherited from %sz Methods %s: cSs |ddkS)NrrLr)r'rrrrq5rrzClass methods %s: cSs |ddkS)Nrz class methodr)r'rrrrq7rrzStatic methods %s: cSs |ddkS)Nrz static methodr)r'rrrrq9rrzData descriptors %s: cSs |ddkS)Nrzdata descriptorr)r'rrrrq;rrzData and other attributes %s: cSs |ddkS)Nrr6r)r'rrrrq=rrz | )r%rAr&rhmapr!r rrPrQrtr+rrrMr rerNrNrOrr)rwrkr)r>rr(r1r2rRr#rtrr$rrPrXr"rSrIr>rFrGrIrvrUrVr)rDr1rr<r>rKrrs                          zTextDoc.docclasscCsd||S)NrY)r)r>rrrrrZGszTextDoc.formatvaluec Csr|j}|p |}d}d}t|rn|jj}|rB||k rndt||}n,|jdk r`dt|jj|}ndt||}||kr||} n,|rt||g|krd}||d|} d} t|ryt |} Wnt t fk rd} YnX| rt | } |dkr||d } | dd } | s&d } | | |} |r@| d St |pLd} | d | oj|| d SdS) Nrrz from z method of %s instancez unbound %s methodrz = zz lambda r~z(...)r)r%r?r;rr)rhrr[r,rPrQrtr+rrkr)r>rr(r1rErRr\r]r^rrXrPrWr"rrrrKsH       zTextDoc.docroutinecCsTg}|j}|r$||||dt|p.d}|rJ||||dd|S)Nrr)r rhrrkr!)r>r(rHr1rgr<r"rrrr@|s zTextDoc._docdescriptorcCs||||S)N)r@)r>rr(r1rErrrrszTextDoc.docpropertycCs||||S)N)r@)r>rr(r1rErrrrszTextDoc.docdatac Cs||}|rF|r|dpd|}|t|} | dkrF|d| d}|rX||dpZd|}|dk r~|d|t|7}|S)Nz = rrz...r)rr rhrkr+) r>rr(r1r r2r"rrZchoprrrrs  zTextDoc.docother)ri)Nr)NN)NN)NNN)NNN)NNN)NNNNN)r%r&rZrerdrrhrkrrrrrZrr@rrrrrrrrf/s   e   1  rfc@seZdZddZdS) _PlainTextDoccCs|S)Nr)r>r.rrrrhsz_PlainTextDoc.boldN)r%r&rZrhrrrrrwsrwcCstat|dS)N)getpagerpager)r.rrrrysryc s8ttjdstSttjds tStjr4tjs8tStjdpNtjdrtj dkrjfddStjddkrfd dSfd dStjddkrtStj dkrd dSttd rt d dkrddSddl }| \}}t |z0ttd r t d|dkr ddStSWdt|XdS)NisattyZMANPAGERZPAGERwin32cstt|S)N) tempfilepagerplain)r.) use_pagerrrrqrrzgetpager..ZTERM)ZdumbZemacscstt|S)N) pipepagerr})r.)r~rrrqrrcs t|S)N)r)r.)r~rrrqrrcSstt|dS)Nzmore <)r|r})r.rrrrqrrsystemz(less) 2>/dev/nullrcSs t|dS)NZless)r)r.rrrrqrrz more "%s"cSs t|dS)NZmore)r)r.rrrrqrr)rbrstdin plainpagerstdoutrzr rrnplatformrtempfileZmkstempclosettypagerunlink)rfdrr)r~rrxs6          rxcCstdd|S)Nz.r)rr)r.rrrr}sr}c Csddl}|j|d|jd}yDtj|jdd*}y||Wntk rPYnXWdQRXWntk rrYnXx(y| PWqvtk rYqvXqvWdS)NrT)shellrbackslashreplace)errors) subprocessPopenPIPEio TextIOWrapperrwriteKeyboardInterruptrwait)r.cmdrprocpiperrrrs rc Cs`ddl}|}t|ddd}||WdQRXzt|d|dWdt|XdS)Nrwr)rz "r)rZmktemprrr rr)r.rrrrrrrr|sr|cCs$ttjddpd}||d|S)Nencodingzutf-8r)r<rrencodedecode)r.rrrr_escape_stdoutsrc Cstt|d}y2ddl}tj}||}||dd}Wn(t t t j fk rld}dd}YnXz2yt tjdd}Wntk rd}YnX|dkrd}|d}}tjd|d|dx||drtjd tj|} | d krtjd Pn,| d krJtjd ||d|d}q| d krn|||}|dkrnd}tjdd||||d||}qWWd|r|||j|XdS)NrrcSs tjdS)Nr)rrrrrrrrqrrzttypager..cSstjddddS)Nr~r)rrrrrrrrqrrZLINESrz -- more --)qQz ) r)bB)r}rrttyrrfilenoZ tcgetattrZ setcbreakrrrUnsupportedOperationrr rrnrQrrr!flushZ tcsetattrZ TCSAFLUSH) r.r#rroldZgetcharhrZincr"rrrrsL              &rcCstjtt|dS)N)rrrr}r)r.rrrr#srcCst|r>|jtjkr 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 rSzpackage zmodule zbuilt-in function zgetset descriptor %s.%s.%szmember descriptor %s.%s.%szclass z function zmethod )rr*r%rrrbr8r __objclass__r&rr+r6r7r)thingrrrdescribe's.                    rc Csdd|dD}d\}}xB|t|kr^td|d|d|}|rZ||d}}qPqW|rj|}nt}x8||dD](}yt||}Wq|tk rdSXq|W|S)NcSsg|] }|r|qSrr)rjrrrrrDszlocate..r)Nrr)rr rr!rOr<r)rrr3rnZ nextmodulerrrrrlocateBs  rcCsVt|tr0t||}|dkr(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%)rr+rrr<)rrrr(rrrresolve[s    r Python Library Documentation: %scCs|dkr t}t||\}}t|}t|}|rTd|krT|d|d|d7}n|rn||k rn|d|j7}t|st|st |st |st |st |t st|}|d7}||d|||S)Nrz in z in module z objectz )r.rrrr-rfindr%r*r+r,rrrrrr)rrrZrendererrr(rsrrrr render_docis$         rc Csfy2|dkrtt|||n|t|||tWn.ttfk r`}z t|Wdd}~XYnXdS)N)ryrr plaintextrrprint)rrroutputrHrrrr"s r"c Csy`t||\}}tt|t||}t|dddd}||WdQRXtd|dWn.tt fk r}z t|Wdd}~XYnXdS)Nz.htmlrzutf-8)rZwrote) rhtmlrrrrrrrr)rrrr(rrrHrrrwritedocsrrcCs6|dkr i}x$t|g|D]\}}}t|qWdS)N)r. walk_packagesr)rpkgpathZdoner8r'r9rrr writedocss  rcJ@s*eZdZddddddddddd d d d d ddddddddddddddddddddd#Zd d!d"DZded'd(d)d*d+d,d-Zd.d/d0d1d2d3d4d5d6d7d8d9d9d:d:d;ZxJeD]>\ZZ x4e D],Z e e eZ ee kre d<eZ e ee <qWqWd=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdLdMdNdOdPdQddRdSdSdTdUdVdWdXdYdZd[d\d]d^d_d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{dd d|d}d~ddIZ dddZ eddZeddZddZeZefddZddZddZddZddZdddZddZddZddZdddZdddZddZdddZ dS)HelperrBOOLEANwith)assertr)asyncr)awaitr)breakz while for)classzCLASSES SPECIALMETHODS)continuez while for)Zfunctionr)del BASICMETHODSif)elsez while fortry)forzbreak continue whileimport)globalznonlocal NAMESPACES)r TRUTHVALUE)rMODULES)inSEQUENCEMETHODS COMPARISON)lambdarn)nonlocalzglobal NAMESPACES)passr)raise EXCEPTIONS)returnrn)rr)whilezbreak continue if TRUTHVALUE)rz CONTEXTMANAGERS EXCEPTIONS yield)yieldr)#FalseNoneTrueandasrrrrrrdefrelifrexceptfinallyrfromrrrrisrrnotorrrrrrrrcCsg|]}dD] }||q qS))'rr)rjprrrrrszHelper.)rfrur'''r""")+rJ*z**rz//%z<>r|^~rrz<=z>=z==z!=z<>)rrz<=z>=z==z!=z<>)rJr) z+=z-=z*=z/=z%=z&=z|=z^=z<<=z>>=z**=z//=)z<>rrrr)jJ)STRINGS OPERATORSrUNARYAUGMENTEDASSIGNMENTBITWISECOMPLEXzOPERATORS FORMATTINGPOWERzTUPLES LISTS FUNCTIONSz ATTRIBUTES FLOAT MODULES OBJECTSELLIPSISzSLICINGS DICTIONARYLITERALSz def classr PRIVATENAMESzPRIVATENAMES SPECIALMETHODSZ BACKQUOTESzTUPLES FUNCTIONS CALLSzLISTS SUBSCRIPTS SLICINGS)rz**,rz...:@rr^r]`rr[]r)typeszRSTRINGS UNICODE NUMBERS SEQUENCES MAPPINGS FUNCTIONS CLASSES MODULES FILES inspect)stringsz4str UNICODE SEQUENCES STRINGMETHODS FORMATTING TYPES)zstring-methodszSTRINGS FORMATTING)Z formatstringsr)rz: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-objectr)zbltin-ellipsis-objectSLICINGS)Z specialattrsr)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)zsequence-typesz(SEQUENCES SEQUENCEMETHODS SPECIALMETHODS)zsequence-typeszMAPPINGS SPECIALMETHODS)z numeric-typesz*NUMBERS AUGMENTEDASSIGNMENT SPECIALMETHODS)Z execmodelz%NAMESPACES DYNAMICFEATURES EXCEPTIONS)Znamingz3global nonlocal ASSIGNMENT DELETION DYNAMICFEATURES)zdynamic-featuresr NAMESPACES)rztry except finally raise)Z conversionsr)Z identifierszkeywords SPECIALIDENTIFIERS)z id-classesr)zatom-identifiersr)z atom-literalsz=STRINGS NUMBERS TUPLELITERALS LISTLITERALS DICTIONARYLITERALS SEQUENCES)Z exprlistszTUPLES LITERALS)ztypesseq-mutable LISTLITERALS)ZlistszLISTS LITERALS)Z typesmappingDICTIONARYLITERALS)rzDICTIONARIES LITERALS)zattribute-referencesz(getattr hasattr setattr ATTRIBUTEMETHODS)Z subscriptionsr)Zslicingsr)Zcallsr)Zpowerr)Zunaryr)Zbinaryr)Zshiftingr)Zbitwiser)Z comparisonszEXPRESSIONS BASICMETHODS)ZbooleanszEXPRESSIONS TRUTHVALUEr)Z assignmentr)Z augassign NUMBERMETHODSrr)Zcompoundzfor while break continue)truthz if while and or not BASICMETHODS)ZdebuggerZpdb)zcontext-managersr)IrrZ STRINGMETHODSZ FORMATTINGUNICODEZNUMBERSZINTEGERZFLOATrr ZMAPPINGSrnZMETHODSZ CODEOBJECTSZ TYPEOBJECTSZ FRAMEOBJECTSZ TRACEBACKSZNONErZSPECIALATTRIBUTESrmrZPACKAGESrrZ PRECEDENCEZOBJECTSZSPECIALMETHODSrZATTRIBUTEMETHODSZCALLABLEMETHODSrZMAPPINGMETHODSr Z EXECUTIONr ZDYNAMICFEATURESZSCOPINGZFRAMESrZ CONVERSIONSZ IDENTIFIERSZSPECIALIDENTIFIERSrZLITERALSZTUPLESZ TUPLELITERALSZLISTSr rr Z ATTRIBUTESZ SUBSCRIPTSrZCALLSrrZBINARYZSHIFTINGrrrZ ASSERTIONZ ASSIGNMENTrZDELETIONZ RETURNINGZ IMPORTINGZ CONDITIONALZLOOPINGrZ DEBUGGINGZCONTEXTMANAGERSNcCs||_||_dS)N)_input_output)r>inputrrrrrxNszHelper.__init__cCs |jp tjS)N)rrr)r>rrrrRsz Helper.inputcCs |jp tjS)N)rrr)r>rrrrVsz Helper.outputcCs2tdddkr|dSd|jj|jjfS)Nrr0?rz<%s.%s instance>)rstackrr&rZ)r>rrr__repr__Zs zHelper.__repr__cCs6||jk r||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. )_GoInteractiverintrointeractrr)r>requestrrr__call__bs   zHelper.__call__c Cs|jdxy|d}|s PWnttfk r<PYnX|}t|dkr|d|dkrndkrnn |d|ddkr|dd}|dkrP|d kr|q| |qWdS) Nrzhelp> rrr~)rrr)rquitr) rrgetlinerEOFErrorrr rrr)r>rrrrros"  ,   zHelper.interactcCs8|jtjkrt|S|j||j|jSdS)N)rrrrrrr)r>promptrrrrs    zHelper.getlinecCs<t|tdkr|}|dkr,|n|dkr>|n|dkrP|n|dkrb|n|dddkr||dn||jkr||nj|d krt t |d nR||j kr| |n<||j kr| |n&|rt |d |jd nt td |jd n$t|tr|nt |d |jd |jd dS) Nrkeywordssymbolstopicsrzmodules r)rrrz Help on %s:)rr)rr listkeywords listsymbols listtopics listmodulesrr  showsymbolr"evalr showtopicr!rr+rrrr)r>rrrrrs6        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.%dr)rrrrr)r>rrrrsz Helper.intror}Pc Cstt|}||}t||d|}xt|D]z}xht|D]\}|||}|t|kr@|j||||dkr@|jdd|dt||q@W|jdq2WdS)Nrrr)rsortedr rrr) r>itemscolumnsrZcolwrrowrrkrrrrs    (z Helper.listcCs |jd||jdS)NzN Here is a list of the Python keywords. Enter any keyword to get more help. )rrrrrD)r>rrrr#szHelper.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. )rrrr rD)r>rrrr$szHelper.listsymbolscCs |jd||jdS)NzN Here is a list of available topics. Enter any topic name to get more help. )rrrr!rD)r>rrrr%szHelper.listtopicsc Cs,y ddl}Wn tk r,|jddSX|j||j|}|s`|jdt|dSt|tdkr|| ||S|\}}y|jj|}Wn(t k r|jdt|dSX| d}|r|pdd|}|r ddl }dd |d} || d } |d d | 7}t|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.topicsrrrr!rnrrrr)KeyErrorrtextwrapr!rwrapry) r>topic more_xrefs pydoc_datatargetlabelxrefsr"r2r.Z wrapped_textrrrr)s6    zHelper.showtopiccCsy ddl}Wntk r dSX|j||j|}|sDtdt|trZ|||S|\}}|jj|}|r|pxdd|}||fS)Nr)zt Sorry, topic and keyword documentation is not available because the module "pydoc_data.topics" could not be found. rzcould not find topicrr) r0rr!rnrrQrr+ _gettopic)r>r4r5r6r7r8r9r"rrrr:s     zHelper._gettopiccCs*|j|}|d\}}}|||dS)Nr)r  partitionr))r>symbolr7r4r^r9rrrr's 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)Niz .__init__z (package)rrr)find)rr'rsrrrrcallback$sz$Helper.listmodules..callbackcsd|ddS)Nr)r')r>rronerror)sz#Helper.listmodules..onerror)r?z 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 ModuleScannerrunrrD)r>rGrr?r)r>rr&s    zHelper.listmodules)rrrr)NN)r}r*)r)r)r)!r%r&rZrZ _strprefixesZ_symbols_inverser r,r4Zsymbols_r<rnr!rxrrrrrrrrrrrrr#r$r%r)r:r'r&rrrrrs6          rc@seZdZdddZdS)rANc Cs |r |}d|_i}xztjD]p}|dkrd||<|dkrH|d|dqt|jpTd}|dd}|d|}||dkr|d||qWxdtj |dD]R\} }} |jrP|dkr|d|dqyt | |} Wnt k rwYnX| j } t | d rny| |} Wn&tk r:|r4||wYnXtt| pNd}t | d rh| |}nd}n^ytj| }Wn&tk r|r||wYnX|jr|jdnd}t|d d}|d|}||dkr||||qW|r|dS) NF__main__rrrrz - )r? get_source get_filenamerO)rrrrrrUrr=r.r _get_specrrrbrDr?rrStringIOrErrrrrr<)r>r>rGZ completerr?seenr'r(rsr8r9rrsourcerrrrrrB7s`       zModuleScanner.run)NNN)r%r&rZrBrrrrrA4srAc CsDdd}dd}t"tdtj|||dWdQRXdS)NcSs6|dddkr |ddd}t||o.d|dS)Niz .__init__z (package)z- )r)rr'rsrrrr>sszapropos..callbackcSsdS)Nr)r'rrrr?wszapropos..onerrorignore)r?)warningscatch_warningsfilterwarningsrArB)rGr>r?rrrr@qs   r@csddlddlddlddlGdddjjGfdddjjGfdddj}||||}|x|j s|j st dqW|S) Nrc@seZdZddZddZdS)z!_start_server..DocHandlercSsX|jdrd}nd}|d|dd|||j||j|ddS)Nz.cssztext/cssz text/htmlz Content-Typez%s; charset=UTF-8zutf-8) rraZ send_responseZ send_headerZ end_headersZwfiler urlhandlerr)r> content_typerrrdo_GETs   z(_start_server..DocHandler.do_GETcWsdS)Nr)r>rrrr log_messagesz-_start_server..DocHandler.log_messageN)r%r&rZrQrRrrrr DocHandlersrScs(eZdZddZfddZddZdS)z _start_server..DocServercSs6||_|j|f|_||_|j||j|jd|_dS)NF)hostZaddressr>rIrxhandlerr)r>rTportr>rrrrxs  z)_start_server..DocServer.__init__csBx4|js4|jgggd\}}}|r|qW|dS)Nr)rselectZsocketrZhandle_requestZ server_close)r>ZrdZwrZex)rWrrserve_until_quits  z1_start_server..DocServer.serve_until_quitcSs |j||jr||dS)N)rIserver_activater>)r>rrrrYs z0_start_server..DocServer.server_activateN)r%r&rZrxrXrYr)rWrr DocServers rZcs:eZdZfddZfddZddZddZd S) z#_start_server..ServerThreadcs2||_||_t||_j|d|_d|_dS)NF)rOrTrrVThreadrxservingerror)r>rOrTrV) threadingrrrxs   z,_start_server..ServerThread.__init__c sxyJjj__jj_t|j_|j |j |j }||_ | Wn(tk rr}z ||_Wdd}~XYnXdS)N)server HTTPServerrIrUrZMessageZ MessageClass staticmethodrOrTrVready docserverrXr?r])r>Zdocsvre)rSrZemailhttprrrBs    z'_start_server..ServerThread.runcSs,d|_|j|_|j|_d|j|jf|_dS)NTz http://%s:%d/)r\rTZ server_portrVr )r>r_rrrrbsz)_start_server..ServerThread.readycSs&d|j_|d|_d|_d|_dS)NTF)rcrr!r\r )r>rrrstop s z(_start_server..ServerThread.stopN)r%r&rZrxrBrbrgr)rSrZrerfr^rr ServerThreads  rhg{Gz?) Z http.serverZ email.messagerWr^r_ZBaseHTTPRequestHandlerr`r[rr]r\timeZsleep)rOhostnamerVrhZthreadr)rSrZrerfrWr^r _start_servers8' rk text/htmlc sGfdddt}|fddfddfddfd d fd d fd dfddfddfdd}|dr|dd}|dkrtjtjt}tj||}t|}d| SQRXn|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" sz#_url_handler.._HTMLDoc.pageN)r%r&rZrr)rnrr_HTMLDoc srocs>dttdtf}d|tjddfS)Nz %s [%s, %s]raZ
Python %s
%s
T)Zterse)rrZpython_versionZ python_buildZpython_compiler)r5)rrrrn2 s  z!_url_handler..html_navbarcsdd}ddd}ddtjD}||}|dd dd |g}i}x tjD]}|||qVW|d d d |fS)NcSs d||fS)Nz%sr)r(rrr bltinlinkP sz3_url_handler..html_index..bltinlinkz7Index of Modulesz#ffffffz#7799eecSsg|]}|dkr|qS)rCr)rjr(rrrrV sz4_url_handler..html_index..z

zBuilt-in Modulesz#ee77aaz|

pydoc by Ka-Ping Yee<ping@lfw.org>zIndex of Modulesr) rrrrrrr rcr!)rprnamesrrHr)rrr html_indexM s  z _url_handler..html_indexc sgfdd}t*tddd}tj|||dWdQRXdd}g}d d d }x"D]\}}||||qhW|d |d d d|}d|fS)Ncs:|dddkr |ddd}||o0d|fdS)Niz .__init__z (package)z- )r )rr'rs) search_resultrrr>k sz3_url_handler..html_search..callbackrJcSsdS)Nr)r'rrrr?r sz2_url_handler..html_search..onerror)r?cSs d||fS)Nz%sr)r(rrrrpw sz4_url_handler..html_search..bltinlinkz5Search Resultsz#ffffffz#7799eezkey = %sz#ee77aaz
zSearch Results) rKrLrMrArBrr rr!) rGr>r?rprgrr(rsr)r)rsr html_searchf s    z!_url_handler..html_searchcsLdd}ddd}ttj}||}|ddd|}d|fS)NcSs d||fS)Nz%sr)r(rrrrp sz4_url_handler..html_topics..bltinlinkz,INDEXz#ffffffz#7799eeZTopicsz#ee77aa)rr+rr!rDrr)rprrqr)rrr html_topics s z!_url_handler..html_topicscsLddd}ttj}dd}||}|ddd|}d|fS)Nz,INDEXz#ffffffz#7799eecSs d||fS)Nz%sr)r(rrrrp sz6_url_handler..html_keywords..bltinlinkZKeywordsz#ee77aa)rr+rrrDrr)rrqrpr)rrr html_keywords s z#_url_handler..html_keywordscst}t||}||\}}||jkr0d}nd}d|dd}d|}|dd|}|rt| }dd } ||} d dd|}d ||fd |||ffS) NZKEYWORDZTOPICz)%sz#ffffffz#7799eez

%s
z#ee77aacSs d||fS)Nz%sr)r(rrrrp sz7_url_handler..html_topicpage..bltinlinkzRelated help topics: z%s %sr) rrGrr:rrrrr+rrrr!)r4bufZhtmlhelprr9rrrp)rrrhtml_topicpage s&      z$_url_handler..html_topicpagecs@t|dd}|dkr$|dkr$tdt|}||}||fS)Nr)rrzcould not find object)rrQrr)r r9rcontent)rrr html_getobj s   z!_url_handler..html_getobjcsPddd}dfddtt||D}||dd|}d||fS) Nz,Errorz#ffffffz#7799eez
c3s|]}|VqdS)N)r)rjr)rrrra sz3_url_handler..html_error..z#bb0000z Error - %s)rr!rrr)r rrr)rrr html_error s z _url_handler..html_errorc sr|}|dr|dd}y|dkr2\}}n|dkrF\}}n|dkrZ\}}nd|kr$|d\}}}|dkr|\}}n|dkry|\}}Wn tk r|\}}YnXn\|d kr|dkr\}}n4y|\}}Wn"tk r|\}}YnXntd n |\}}Wn2tk rd}z||\}}Wdd}~XYnX||S) Nz.html)rrcr!rrYz search?keyz topic?keyzget?keyz bad pydoc url)rar;rQr?r)r Z complete_urlrryopr^r)rr{rzrrrvrtrxrurr get_html_page s>          z#_url_handler..get_html_pagerrztext/cssrz text/htmlz"unknown content type %r for url %s) rr`r rdirnamerealpathrOr!r readlinesrt)r rPror~Z path_herermfpr) rr{rzrrrvrnrtrxrur _url_handler s*         (    rT localhost) open_browserrjc Csddl}tt||}|jr(t|jdS|jrd}|rB||jzy^td|jt|xD|jrtd}| }|dkr~Pq\|dkr||jq\t|q\WWnt t fk rtYnXWd|jr| tdXdS)Nrz"Server commands: [b]rowser, [q]uitzServer ready atzserver> rrzServer stopped) webbrowserrkrr]rr\rr rrrrrg)rVrrjrZ serverthreadZserver_help_msgrrrrbrowse s2    rcCst|to|tjdkS)Nr)rr+r=r sep)rMrrrispath) srcCsvd|kstj|kst|kr"dStjt}tj|}|}||krbtj||sb||| dt|S)Nrr) r curdirgetcwdrrrOcopysamefileremoveinsert)Z given_pathZargv0Z stdlib_dirZ script_dir revised_pathrrr_get_revised_path, s    rcCs,ttjtjd}|dk r(|tjdd<dS)Nr)rrrargv)rrrr_adjust_cli_sys_pathH src Csddl}Gdddt}typ|tjddd\}}d}d}d}d}d}x`|D]X\} } | dkrnd }d }| d krt| dS| d krd }| }| d krd }| d krVd }| }qVW|rt|||ddS|s|x|D]} t| rtj | st d| Py`t| rtj | rt | } |rPt| rFtj | rFt| nt| n t| Wqtk r} z t | Wdd} ~ XYqXqWWnN|j|fk rtj tj tjdd} t dj| tjdYnXdS)Nrc@s eZdZdS)zcli..BadUsageN)r%r&rZrrrrBadUsageU srrzbk:n:p:wFrz-bTz-kz-pz-wz-n)rjrzfile %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?rrrr@rrr rexistsrryrr rrrrr]rrrr)rrZoptsrZwritingZ start_serverrrVrjoptvalargrHrrrrcliR s`    "rrC)NN)r)r)rrN)rrN)r)rN)rl)r)Zr(rTrXr[rOZimportlib._bootstraprZimportlib._bootstrap_externalZimportlib.machineryimportlib.utilrrr r.rrrrrirZ urllib.parser)rK collectionsrreprlibr tracebackrrrr$r)r-r/r3r IGNORECASEr4r5r:r?rCrNrdrerwr{rrr?rrrrrrrerfrwryrxr}rr|rrrrrr.rrrrr"rrrrrAr@rkrrrrrrr%rrrr(s           ' 0<*; p" ,    = n% U