Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6cb2ac2

Browse files
committed
A nicety (author lost).
1 parent 41c302f commit 6cb2ac2

2 files changed

Lines changed: 146 additions & 0 deletions

File tree

Doc/custlib.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Generate custlib.tex, which is a site-specific library document.
2+
3+
# Phase I: list all the things that can be imported
4+
5+
import glob, os, sys, string
6+
modules={}
7+
8+
for modname in sys.builtin_module_names:
9+
modules[modname]=modname
10+
11+
for dir in sys.path:
12+
# Look for *.py files
13+
filelist=glob.glob(os.path.join(dir, '*.py'))
14+
for file in filelist:
15+
path, file = os.path.split(file)
16+
base, ext=os.path.splitext(file)
17+
modules[string.lower(base)]=base
18+
19+
# Look for shared library files
20+
filelist=(glob.glob(os.path.join(dir, '*.so')) +
21+
glob.glob(os.path.join(dir, '*.sl')) +
22+
glob.glob(os.path.join(dir, '*.o')) )
23+
for file in filelist:
24+
path, file = os.path.split(file)
25+
base, ext=os.path.splitext(file)
26+
if base[-6:]=='module': base=base[:-6]
27+
modules[string.lower(base)]=base
28+
29+
# Minor oddity: the types module is documented in libtypes2.tex
30+
if modules.has_key('types'):
31+
del modules['types'] ; modules['types2']=None
32+
33+
# Phase II: find all documentation files (lib*.tex)
34+
# and eliminate modules that don't have one.
35+
36+
docs={}
37+
filelist=glob.glob('lib*.tex')
38+
for file in filelist:
39+
modname=file[3:-4]
40+
docs[modname]=modname
41+
42+
mlist=modules.keys()
43+
mlist=filter(lambda x, docs=docs: docs.has_key(x), mlist)
44+
mlist.sort()
45+
mlist=map(lambda x, docs=docs: docs[x], mlist)
46+
47+
modules=mlist
48+
49+
# Phase III: write custlib.tex
50+
51+
# Write the boilerplate
52+
# XXX should be fancied up.
53+
print """\documentstyle[twoside,11pt,myformat]{report}
54+
\\title{Python Library Reference}
55+
\\input{boilerplate}
56+
\\makeindex % tell \\index to actually write the .idx file
57+
\\begin{document}
58+
\\pagenumbering{roman}
59+
\\maketitle
60+
\\input{copyright}
61+
\\begin{abstract}
62+
\\noindent This is a customized version of the Python Library Reference.
63+
\\end{abstract}
64+
\\pagebreak
65+
{\\parskip = 0mm \\tableofcontents}
66+
\\pagebreak\\pagenumbering{arabic}"""
67+
68+
for modname in mlist:
69+
print "\\input{lib%s}" % (modname,)
70+
71+
# Write the end
72+
print """\\input{custlib.ind} % Index
73+
\\end{document}"""

Doc/tools/custlib.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Generate custlib.tex, which is a site-specific library document.
2+
3+
# Phase I: list all the things that can be imported
4+
5+
import glob, os, sys, string
6+
modules={}
7+
8+
for modname in sys.builtin_module_names:
9+
modules[modname]=modname
10+
11+
for dir in sys.path:
12+
# Look for *.py files
13+
filelist=glob.glob(os.path.join(dir, '*.py'))
14+
for file in filelist:
15+
path, file = os.path.split(file)
16+
base, ext=os.path.splitext(file)
17+
modules[string.lower(base)]=base
18+
19+
# Look for shared library files
20+
filelist=(glob.glob(os.path.join(dir, '*.so')) +
21+
glob.glob(os.path.join(dir, '*.sl')) +
22+
glob.glob(os.path.join(dir, '*.o')) )
23+
for file in filelist:
24+
path, file = os.path.split(file)
25+
base, ext=os.path.splitext(file)
26+
if base[-6:]=='module': base=base[:-6]
27+
modules[string.lower(base)]=base
28+
29+
# Minor oddity: the types module is documented in libtypes2.tex
30+
if modules.has_key('types'):
31+
del modules['types'] ; modules['types2']=None
32+
33+
# Phase II: find all documentation files (lib*.tex)
34+
# and eliminate modules that don't have one.
35+
36+
docs={}
37+
filelist=glob.glob('lib*.tex')
38+
for file in filelist:
39+
modname=file[3:-4]
40+
docs[modname]=modname
41+
42+
mlist=modules.keys()
43+
mlist=filter(lambda x, docs=docs: docs.has_key(x), mlist)
44+
mlist.sort()
45+
mlist=map(lambda x, docs=docs: docs[x], mlist)
46+
47+
modules=mlist
48+
49+
# Phase III: write custlib.tex
50+
51+
# Write the boilerplate
52+
# XXX should be fancied up.
53+
print """\documentstyle[twoside,11pt,myformat]{report}
54+
\\title{Python Library Reference}
55+
\\input{boilerplate}
56+
\\makeindex % tell \\index to actually write the .idx file
57+
\\begin{document}
58+
\\pagenumbering{roman}
59+
\\maketitle
60+
\\input{copyright}
61+
\\begin{abstract}
62+
\\noindent This is a customized version of the Python Library Reference.
63+
\\end{abstract}
64+
\\pagebreak
65+
{\\parskip = 0mm \\tableofcontents}
66+
\\pagebreak\\pagenumbering{arabic}"""
67+
68+
for modname in mlist:
69+
print "\\input{lib%s}" % (modname,)
70+
71+
# Write the end
72+
print """\\input{custlib.ind} % Index
73+
\\end{document}"""

0 commit comments

Comments
 (0)