annotate Doc/tools/listmodules @ 13163:a09e8635534d legacy-trunk

Don't try to guess the name of a .def file -- if one is supplied, use it, otherwise just generate an '/export:' option.
author Greg Ward <gward@python.net>
date Thu, 29 Jun 2000 23:09:20 +0000
parents 4818cb8e1110
children 0f00b6c7b9b9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10288
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
1 #! /usr/bin/env python
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
2 # -*- Python -*-
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
3 #
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
4 # This script can be used to identify undocumented modules in the Python
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
5 # standard library. Use it like this:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
6 #
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
7 # .../Doc/tools/listmodules --ignore-from .../Doc/paper-<paper>/modlib.idx
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
8
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
9 """%(program)s - list modules in the Python standard library
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
10
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
11 -a, --annotate Annotate the module names with the subdirectory they live in
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
12 -c, --categorize Group the modules by subdirectory
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
13 -i <file>,
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
14 --ignore-from <file> Ignore the modules listed in <file>. <file> may contain
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
15 a list of module names or a module index file as produced
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
16 when formatting the Python documentation (.idx flavor).
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
17
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
18 If neither -a nor -c are given, the modules are listed in alphabetical order.
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
19
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
20 Note that -a and -c are mutually exclusive.
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
21
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
22 Limitation: Modules loadable as shared objects are not listed.
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
23 """
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
24
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
25 __version__ = '$Revision$'
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
26
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
27 import getopt
11008
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
28 import glob
10288
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
29 import os
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
30 import re
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
31 import string
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
32 import sys
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
33
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
34
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
35 REMOVE_DIRS = ["dos-8x3", "lib-old", "lib-stdwin", "test"]
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
36
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
37
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
38 def main():
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
39 args = sys.argv[1:]
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
40 annotate = 0
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
41 builtin = 0
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
42 categorize = 0
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
43 ignore_dict = {}
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
44 ignore = ignore_dict.has_key
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
45 try:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
46 opts, args = getopt.getopt(
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
47 args, "abchi:",
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
48 ["annotate", "built-in", "categorize", "help", "ignore-from="])
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
49 except getopt.error, msg:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
50 sys.stdout = sys.stderr
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
51 print msg
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
52 print
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
53 usage()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
54 sys.exit(2)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
55 for opt, arg in opts:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
56 if opt in ("-a", "--annotate"):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
57 annotate = 1
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
58 elif opt in ("-b", "--built-in"):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
59 builtin = 1
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
60 elif opt in ("-c", "--categorize"):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
61 categorize = 1
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
62 elif opt in ("-h", "--help"):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
63 usage()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
64 sys.exit()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
65 elif opt in ("-i", "--ignore-from"):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
66 data = open(arg).read()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
67 if data[:1] == "\\":
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
68 ignore_from_idx(data, ignore_dict)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
69 else:
10298
cc0c906c2415 ignore_from_idx(): Fixed bug in regular expression.
Fred Drake <fdrake@acm.org>
parents: 10288
diff changeset
70 ignore_from_modulelist(data, ignore_dict)
10288
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
71 if args or (annotate and categorize):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
72 usage()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
73 sys.exit(2)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
74 #
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
75 # Populate the database:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
76 #
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
77 srcdir = os.path.normpath(os.path.join(
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
78 os.path.dirname(sys.argv[0]), os.pardir, os.pardir))
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
79 os.chdir(srcdir)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
80 modules_by_name = {}
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
81 modules_by_dir = {}
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
82 if builtin:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
83 l = []
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
84 modules_by_dir["<builtin>"] = l
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
85 for name in sys.builtin_module_names:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
86 if not ignore(name):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
87 modules_by_name[name] = "<built-in>"
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
88 l.append(name)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
89 rx = re.compile("Lib/plat-[a-z0-9]*/", re.IGNORECASE)
11008
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
90 fp = os.popen("find Lib -name \*.py -print", "r")
10288
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
91 while 1:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
92 line = fp.readline()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
93 if not line:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
94 break
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
95 m = rx.match(line)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
96 if m:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
97 line = "Lib/plat-*/" + line[m.end():]
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
98 line = line[4:-4] # strip off 'Lib/' and '.py\n'
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
99 dir, name = os.path.split(line)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
100 dir = dir or "<standard>"
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
101 if ignore(name):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
102 continue
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
103 if dir not in REMOVE_DIRS:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
104 modules_by_name[name] = dir
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
105 l = modules_by_dir.get(dir, [])
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
106 modules_by_dir[dir] = l
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
107 if name not in l:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
108 l.append(name)
11008
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
109 # load up extension modules:
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
110 pwd = os.getcwd()
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
111 try:
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
112 os.chdir("Modules")
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
113 dir = "<extension>"
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
114 for line in glob.glob("*module.c"):
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
115 name = line[:-8]
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
116 if ignore(name) or modules_by_name.has_key(name) or name == "xx":
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
117 continue
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
118 modules_by_name[name] = dir
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
119 l = modules_by_dir.get(dir, [])
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
120 modules_by_dir[dir] = l
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
121 if name not in l:
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
122 l.append(name)
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
123 finally:
4818cb8e1110 When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents: 10298
diff changeset
124 os.chdir(pwd)
10288
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
125 #
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
126 # Dump the results:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
127 #
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
128 if annotate:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
129 modules = modules_by_name.items()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
130 modules.sort()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
131 width = max(map(len, modules_by_name.keys()))
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
132 format = "%%-%ds %%s" % width
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
133 for name, dir in modules:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
134 if dir and dir[0] != "<":
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
135 print format % (name, dir)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
136 else:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
137 print name
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
138 elif categorize:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
139 modules = modules_by_dir.items()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
140 modules.sort()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
141 width = max(map(len, modules_by_dir.keys()))
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
142 format = "%%-%ds %%s" % width
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
143 for dir, names in modules:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
144 names.sort()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
145 print format % (dir, names[0])
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
146 for name in names[1:]:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
147 print format % ('', name)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
148 print
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
149 else:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
150 modules = modules_by_name.keys()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
151 modules.sort()
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
152 print string.join(modules, "\n")
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
153
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
154
10298
cc0c906c2415 ignore_from_idx(): Fixed bug in regular expression.
Fred Drake <fdrake@acm.org>
parents: 10288
diff changeset
155 def ignore_from_modulelist(data, ignore_dict):
10288
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
156 for name in string.split(data):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
157 ignore_dict[name] = name
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
158
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
159 def ignore_from_idx(data, ignore_dict):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
160 data = string.replace(data, r"\hackscore {}", "_")
10298
cc0c906c2415 ignore_from_idx(): Fixed bug in regular expression.
Fred Drake <fdrake@acm.org>
parents: 10288
diff changeset
161 rx = re.compile(r"\\indexentry\s*{([^@]*)@")
10288
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
162 for line in string.split(data, "\n"):
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
163 m = rx.match(line)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
164 if m:
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
165 name = m.group(1)
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
166 ignore_dict[name] = name
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
167
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
168
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
169 def usage():
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
170 vars = {}
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
171 vars["program"] = os.path.basename(sys.argv[0])
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
172 print __doc__ % vars
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
173
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
174
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
175 if __name__ == "__main__":
5c0c061de2ae Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff changeset
176 main()