Mercurial > cpython-lru_cache-weakref
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 |
| 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() |
