mirror of https://github.com/python/cpython.git
A nicety (author lost).
This commit is contained in:
parent
41c302fc68
commit
6cb2ac226e
|
@ -0,0 +1,73 @@
|
||||||
|
# Generate custlib.tex, which is a site-specific library document.
|
||||||
|
|
||||||
|
# Phase I: list all the things that can be imported
|
||||||
|
|
||||||
|
import glob, os, sys, string
|
||||||
|
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[string.lower(base)]=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[string.lower(base)]=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}"""
|
|
@ -0,0 +1,73 @@
|
||||||
|
# Generate custlib.tex, which is a site-specific library document.
|
||||||
|
|
||||||
|
# Phase I: list all the things that can be imported
|
||||||
|
|
||||||
|
import glob, os, sys, string
|
||||||
|
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[string.lower(base)]=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[string.lower(base)]=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}"""
|
Loading…
Reference in New Issue