;ò ´¥?c @sMdZdkZdkZdkZdkZdkZdkZdkZdkZdkZdk Z dkZdk l Z dkl Z l Z lZlZlZlZlZlZdeifd„ƒYZdefd„ƒYZdfd „ƒYZed joMd d d ddddddg ZdgZededddeƒiƒndS(s@Pydoc sub-class for generating documentation for entire packagesN(sRepr(s expandtabssfindsjoinslowerssplitsstripsrfindsrstripsDefaultFormattercBs,tZeeed„Zd„Zd„ZRS(Nc#Gs|i}t|dƒ}g}xJtt|ƒdƒD]2}|i dt ||d dƒ||fƒq5Wt ||ddƒ}d|}yUt i|ƒ}|} tidjodk}|i|ƒ} nd| |f}!Wntj o d }!nXg}t|d ƒojt|iƒ}|d d d jo|dd jot|d d!ƒ}n|i d|i|ƒƒnt|dƒo#|i |it|iƒƒƒn|o|dt |dƒ}n|i |ddd|!ƒ} t i"|t i#ƒ}ghf\}"}xmt i"|t i'ƒD]V\}}t i*|ƒp||jo-|"i ||fƒd|||<|||i;t|iTƒ|i=ƒ}| |iNd+dd|ƒ} nt|d,ƒo>|i;t|iUƒ|i=ƒ}| |iNd-dd|ƒ} n| SdS(.s/Produce HTML documentation for a module object.s.is5%siÿÿÿÿs)%sswin32Ns%ss (built-in)s __version__i s$s Revision: s version %ss__date__s (%s)s, s#ffffffs#7799eesindex
s#s.html#s#-s __builtins__s__doc__s %ss

%s

s__path__icCs|\}}|i|ƒS(N(skeysvaluesss modulelink(s.0ssskeysvalue((s P:\dispatch\docs\pydoc\pydoc2.pys^ssModuless#fffffs#aa55cccCs|\}}|S(N(skeysvalue(s.0skeysvalue((s P:\dispatch\docs\pydoc\pydoc2.pysdssClassess#ee77aas Functionss#eeaa77sDatas#55aa55s
s __author__sAuthors __credits__sCredits(Vsobjects__name__snamessplitspartsslinkssrangeslensisappendsjoins linkednamesheadsinspects getabsfilespathsurlssyssplatforms nturl2paths pathname2urlsfilelinks TypeErrorsinfoshasattrsstrs __version__sversionsstripsselfsescapes__date__sheadingsresults getmemberssismodulesmodulessclassesscdictsisclassskeysvalues getmodules __bases__sbases __module__smodnamesgetsmodulesgetattrshas_keysfuncssfdicts isroutines isbuiltins isfunctionsdataspydocsisdatasmarkupsgetdocs preformatsdocspackageContextscleansmodpkgssmodnamessosslistdirs__path__sfiles getmodulenames ispackagessorts multicolumns modpkglinkscontentss moduleSections bigsectionsmaps classlists formattrees getclasstreesdocuments __author__s __credits__(#sselfsobjectsnamesmodspackageContextsignoredskeysversionslinkss classlistsmodulesmodnamessresultsfilescontentssmodpkgsspartssheads linkednamesfuncssbases nturl2pathsfdictspathsdatasinfosmodnamesisdocscdictsmodulessvaluesurlsfilelinksclasses((s P:\dispatch\docs\pydoc\pydoc2.pys docmodule sÚ 0   &#   $. & $!  ! && && )  cCsv|itii|iƒf\}}t||ƒot ||ƒ|jod|i||fSnt i ||ƒSdS(sMake a link for a class.s%sN( sobjects__name__ssyssmodulessgets __module__snamesmoduleshasattrsgetattrspydocs classnamesmodname(sselfsobjectsmodnamesnamesmodule((s P:\dispatch\docs\pydoc\pydoc2.pys classlink‚s $&cCs«ti|tiƒ}|i||ƒ|i|ƒt|dƒo g} g}xºt i |i dƒD]¢}t ii|i d|ƒ}ti|ƒ}|o ||jo-| i||iddfƒ|i|ƒqeti|ƒo | i||iddfƒqeqeW| iƒx9| D]1\}}} } |it|i|fdƒƒqWg}xÚ| D]Ò\}}} }y”tid||fƒ}ti ti!|ƒƒ\} }| o0|id|i%||| |fƒ| fƒn#|i|i%||| |fƒƒWq^|i|i%||| |fƒƒq^Xq^Wt&i|dƒ}|i(dd d |ƒ}nB|o4|i*||d „ƒ}|i(d d d |ƒ}nd}|SdS(s;Create a module-links section for the given object (module)s__path__iis.s%s.%ss%s -- %ss
sPackage Contentss#ffffffs#aa55cccCs|\}}|i|ƒS(N(skeysvaluesss modulelink(s.0ssskeysvalue((s P:\dispatch\docs\pydoc\pydoc2.pys½ssModuless#fffffsN(+sinspects getmemberssobjectsismodulesmodulesspackageContextscleans recurseScanshasattrsmodpkgssmodnamessosslistdirs__path__sfilespathsjoins getmodulenamesmodnamesappends__name__spydocs ispackagessortsnamesyasyosaddInterestingsitemss isshadoweds safeimportsmodulessplitdocsgetdocs descriptions documentationsselfs modpkglinksstringscontentss bigsectionsresults multicolumn(sselfsobjectspackageContextsmodulesmodnamess isshadowedsfilescontentssresults ispackagesmodpkgss descriptionsyosyaspathsmodnamesnamesitemss documentationsmodules((s P:\dispatch\docs\pydoc\pydoc2.pys moduleSection‹sL $ #0&*(s__name__s __module__sNones docmodules classlinks moduleSection(((s P:\dispatch\docs\pydoc\pydoc2.pysDefaultFormattersy s AlreadyDonecBstZRS(N(s__name__s __module__(((s P:\dispatch\docs\pydoc\pydoc2.pys AlreadyDoneÅssPackageDocumentationGeneratorcBsntZdZddffed„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z RS( sAA package document generator creates documentation for an entire package using pydoc's machinery. baseModules -- modules which will be included and whose included and children modules will be considered fair game for documentation destinationDirectory -- the directory into which the HTML documentation will be written recursion -- whether to add modules which are referenced by and/or children of base modules exclusions -- a list of modules whose contents will not be shown in any other module, commonly such modules as OpenGL.GL, wxPython.wx etc. recursionStops -- a list of modules which will explicitly stop recursion (i.e. they will never be included), even if they are children of base modules. formatter -- allows for passing in a custom formatter see DefaultFormatter for sample implementation. s.ic Cstii|ƒ|_h|_g|_h|_h|_h|_ ||_ x|D]}d|i |}|idt|ƒƒ|i dt|idƒƒn'ttfj o>}|idt|ƒƒ|i dt|idƒƒnØtj o>}|idt|ƒƒ|i dt|idƒƒnX|iiti|ƒ|ii||i d|ƒƒ}ttii|i|iddƒdƒ}|i|ƒ|iƒ||i|id<|id=qWWd x|iD] }|GHq7WXd S( s¼Having added all of the base and/or interesting modules, proceed to generate the appropriate documentation for each module in the appropriate directory, doing the recursion as we go.isStart %ss ... found %ss ... FAILED %ssUnable to import the module %sspackageContexts.htmlswN(sselfspendings completedshas_keys AlreadyDonesinfosreprspydocslocatesobjects__name__sErrorDuringImportsvalueswarns SystemErrors SystemExits Exceptions formatterspagesdescribes docmodulesopensosspathsjoinsdestinationDirectorysfileswritescloseswarningssitem(sselfsobjectsvaluesitemsfilespage((s P:\dispatch\docs\pydoc\pydoc2.pysprocesssH ""#     c CsÖxÏ|D]Æ\}}x·|iiƒD]¦}t||ƒo ||j oƒt ||ƒ|jpt|dƒo |i djoIgi }|D]-\}}||jo|||fƒq‹q‹~|(qÊq$q$WqWdS(sœcallback from the formatter object asking us to remove those items in the key, value pairs where the object is imported from one of the excluded moduless__name__sNumericN(s objectListskeysvaluesselfs exclusionssvaluess excludeObjectshasattrsobjectsgetattrs__name__sappends_[1]skso( sselfs objectListsobjects excludeObjectsvalues_[1]soskeysk((s P:\dispatch\docs\pydoc\pydoc2.pyscleanOs 6cCs+x$|D]\}}|i|iƒqWdS(sSProcess the list of modules trying to add each to the list of interesting modulesN(s objectListskeysvaluesselfsaddInterestings__name__(sselfs objectListsvalueskey((s P:\dispatch\docs\pydoc\pydoc2.pys recurseScan]s ( s__name__s __module__s__doc__sNones__init__swarnsinfosaddBasesaddInterestings checkScopesprocessscleans recurseScan(((s P:\dispatch\docs\pydoc\pydoc2.pysPackageDocumentationGeneratorÊs       0 s__main__s OpenGL.GLs OpenGL.GLUs OpenGL.GLUTs OpenGL.GLEs OpenGL.GLXs wxPython.wxsNumerics_tkintersTkintersOpenGLContext.debugs baseModulessdestinationDirectorysz:\temps exclusions(s__doc__spydocsinspectsossstringssyssimpsstatsrestypessreprsReprs expandtabssfindsjoinslowerssplitsstripsrfindsrstripsHTMLDocsDefaultFormatters Exceptions AlreadyDonesPackageDocumentationGenerators__name__sexcludessmodulessprocess(sPackageDocumentationGeneratorsDefaultFormattersrfindsstripsfindsexcludessimpsReprs AlreadyDonesressplitsrstripsstatsstringsinspectssysstypesslowersjoinsmoduless expandtabsspydocsos((s P:\dispatch\docs\pydoc\pydoc2.pys?s$? 7½› !