Mercurial > cpython-lru_cache-weakref
annotate Doc/tools/listmodules @ 25838:8540887bcec6 2.2
Backport of 2.183:
Fix memory leak in add_subclass() found by NealN with valgrind.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Fri, 18 Oct 2002 13:42:21 +0000 |
| parents | 0f00b6c7b9b9 |
| children | 92eb5ae4c18f 6b18a095c2e7 |
| 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 |
|
15415
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
11 -a, --annotate Annotate the module names with the subdirectory they |
|
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
12 live in |
|
10288
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
13 -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
|
14 -i <file>, |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
15 |
|
15415
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
16 --ignore-from <file> Ignore the modules listed in <file>. <file> may |
|
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
17 contain a list of module names or a module index file |
|
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
18 as produced when formatting the Python documentation |
|
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
19 (.idx or .html flavor). |
|
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
20 |
|
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
21 If neither -a nor -c are given, the modules are listed in alphabetical |
|
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
22 order. |
|
10288
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 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
|
25 |
|
15415
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
26 Limitation: Modules loadable as shared objects may not be listed, |
|
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
27 though this script attempts to locate such modules. |
|
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
28 |
|
10288
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
29 """ |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
30 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
31 __version__ = '$Revision$' |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
32 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
33 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
|
34 import glob |
|
10288
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
35 import os |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
36 import re |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
37 import string |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
38 import sys |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
39 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
40 |
|
15415
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
41 REMOVE_DIRS = ["dos-8x3", "encodings", "distutils", |
|
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
42 "lib-old", "lib-stdwin", "test"] |
|
10288
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
43 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
44 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
45 def main(): |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
46 args = sys.argv[1:] |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
47 annotate = 0 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
48 builtin = 0 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
49 categorize = 0 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
50 ignore_dict = {} |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
51 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
|
52 try: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
53 opts, args = getopt.getopt( |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
54 args, "abchi:", |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
55 ["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
|
56 except getopt.error, msg: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
57 sys.stdout = sys.stderr |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
58 print msg |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
59 print |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
60 usage() |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
61 sys.exit(2) |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
62 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
|
63 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
|
64 annotate = 1 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
65 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
|
66 builtin = 1 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
67 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
|
68 categorize = 1 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
69 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
|
70 usage() |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
71 sys.exit() |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
72 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
|
73 data = open(arg).read() |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
74 if data[:1] == "\\": |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
75 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
|
76 else: |
|
10298
cc0c906c2415
ignore_from_idx(): Fixed bug in regular expression.
Fred Drake <fdrake@acm.org>
parents:
10288
diff
changeset
|
77 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
|
78 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
|
79 usage() |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
80 sys.exit(2) |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
81 # |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
82 # Populate the database: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
83 # |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
84 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
|
85 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
|
86 os.chdir(srcdir) |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
87 modules_by_name = {} |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
88 modules_by_dir = {} |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
89 if builtin: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
90 l = [] |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
91 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
|
92 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
|
93 if not ignore(name): |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
94 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
|
95 l.append(name) |
|
15415
0f00b6c7b9b9
Note that readframes() returns data in linear format, even if the original
Fred Drake <fdrake@acm.org>
parents:
11008
diff
changeset
|
96 rx = re.compile("Lib/plat-[a-zA-Z0-9]*/") |
|
11008
4818cb8e1110
When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents:
10298
diff
changeset
|
97 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
|
98 while 1: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
99 line = fp.readline() |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
100 if not line: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
101 break |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
102 m = rx.match(line) |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
103 if m: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
104 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
|
105 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
|
106 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
|
107 dir = dir or "<standard>" |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
108 if ignore(name): |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
109 continue |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
110 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
|
111 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
|
112 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
|
113 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
|
114 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
|
115 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
|
116 # 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
|
117 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
|
118 try: |
|
4818cb8e1110
When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents:
10298
diff
changeset
|
119 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
|
120 dir = "<extension>" |
|
4818cb8e1110
When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents:
10298
diff
changeset
|
121 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
|
122 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
|
123 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
|
124 continue |
|
4818cb8e1110
When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents:
10298
diff
changeset
|
125 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
|
126 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
|
127 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
|
128 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
|
129 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
|
130 finally: |
|
4818cb8e1110
When looking for things that might be modules, include *module.c from
Fred Drake <fdrake@acm.org>
parents:
10298
diff
changeset
|
131 os.chdir(pwd) |
|
10288
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
132 # |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
133 # Dump the results: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
134 # |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
135 if annotate: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
136 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
|
137 modules.sort() |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
138 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
|
139 format = "%%-%ds %%s" % width |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
140 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
|
141 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
|
142 print format % (name, dir) |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
143 else: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
144 print name |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
145 elif categorize: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
146 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
|
147 modules.sort() |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
148 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
|
149 format = "%%-%ds %%s" % width |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
150 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
|
151 names.sort() |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
152 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
|
153 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
|
154 print format % ('', name) |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
155 print |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
156 else: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
157 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
|
158 modules.sort() |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
159 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
|
160 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
161 |
|
10298
cc0c906c2415
ignore_from_idx(): Fixed bug in regular expression.
Fred Drake <fdrake@acm.org>
parents:
10288
diff
changeset
|
162 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
|
163 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
|
164 ignore_dict[name] = name |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
165 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
166 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
|
167 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
|
168 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
|
169 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
|
170 m = rx.match(line) |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
171 if m: |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
172 name = m.group(1) |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
173 ignore_dict[name] = name |
|
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 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
176 def usage(): |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
177 vars = {} |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
178 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
|
179 print __doc__ % vars |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
180 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
181 |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
182 if __name__ == "__main__": |
|
5c0c061de2ae
Script to help identify undocumented modules. Use -h or --help for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
183 main() |
