From 458120dd40db6b4df55a4e96b650e16798ef06a0 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Tue, 3 May 2011 11:25:13 +0000 Subject: add hg and python --- sys/src/cmd/python/Doc/tools/custlib.py | 78 +++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 sys/src/cmd/python/Doc/tools/custlib.py (limited to 'sys/src/cmd/python/Doc/tools/custlib.py') diff --git a/sys/src/cmd/python/Doc/tools/custlib.py b/sys/src/cmd/python/Doc/tools/custlib.py new file mode 100644 index 000000000..15f07baf0 --- /dev/null +++ b/sys/src/cmd/python/Doc/tools/custlib.py @@ -0,0 +1,78 @@ +# Generate custlib.tex, which is a site-specific library document. + +# Phase I: list all the things that can be imported + +import glob +import os.path +import sys + +modules = {} + +for modname in sys.builtin_module_names: + modules[modname] = modname + +for dir in sys.path: + # Look for *.py files + filelist = glob.glob(os.path.join(dir, '*.py')) + for file in filelist: + path, file = os.path.split(file) + base, ext = os.path.splitext(file) + modules[base.lower()] = base + + # Look for shared library files + filelist = (glob.glob(os.path.join(dir, '*.so')) + + glob.glob(os.path.join(dir, '*.sl')) + + glob.glob(os.path.join(dir, '*.o')) ) + for file in filelist: + path, file = os.path.split(file) + base, ext = os.path.splitext(file) + if base[-6:] == 'module': + base = base[:-6] + modules[base.lower()] = base + +# Minor oddity: the types module is documented in libtypes2.tex +if modules.has_key('types'): + del modules['types'] + modules['types2'] = None + +# Phase II: find all documentation files (lib*.tex) +# and eliminate modules that don't have one. + +docs = {} +filelist = glob.glob('lib*.tex') +for file in filelist: + modname = file[3:-4] + docs[modname] = modname + +mlist = modules.keys() +mlist = filter(lambda x, docs=docs: docs.has_key(x), mlist) +mlist.sort() +mlist = map(lambda x, docs=docs: docs[x], mlist) + +modules = mlist + +# Phase III: write custlib.tex + +# Write the boilerplate +# XXX should be fancied up. +print """\documentstyle[twoside,11pt,myformat]{report} +\\title{Python Library Reference} +\\input{boilerplate} +\\makeindex % tell \\index to actually write the .idx file +\\begin{document} +\\pagenumbering{roman} +\\maketitle +\\input{copyright} +\\begin{abstract} +\\noindent This is a customized version of the Python Library Reference. +\\end{abstract} +\\pagebreak +{\\parskip = 0mm \\tableofcontents} +\\pagebreak\\pagenumbering{arabic}""" + +for modname in mlist: + print "\\input{lib%s}" % (modname,) + +# Write the end +print """\\input{custlib.ind} % Index +\\end{document}""" -- cgit v1.2.3