summaryrefslogtreecommitdiffstats
path: root/Doc/tools/listmodules
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/tools/listmodules')
-rwxr-xr-xDoc/tools/listmodules19
1 files changed, 18 insertions, 1 deletions
diff --git a/Doc/tools/listmodules b/Doc/tools/listmodules
index e0c4fc6..7751a9e 100755
--- a/Doc/tools/listmodules
+++ b/Doc/tools/listmodules
@@ -25,6 +25,7 @@ Limitation: Modules loadable as shared objects are not listed.
__version__ = '$Revision$'
import getopt
+import glob
import os
import re
import string
@@ -76,7 +77,6 @@ def main():
srcdir = os.path.normpath(os.path.join(
os.path.dirname(sys.argv[0]), os.pardir, os.pardir))
os.chdir(srcdir)
- fp = os.popen("find Lib -name \*.py -print", "r")
modules_by_name = {}
modules_by_dir = {}
if builtin:
@@ -87,6 +87,7 @@ def main():
modules_by_name[name] = "<built-in>"
l.append(name)
rx = re.compile("Lib/plat-[a-z0-9]*/", re.IGNORECASE)
+ fp = os.popen("find Lib -name \*.py -print", "r")
while 1:
line = fp.readline()
if not line:
@@ -105,6 +106,22 @@ def main():
modules_by_dir[dir] = l
if name not in l:
l.append(name)
+ # load up extension modules:
+ pwd = os.getcwd()
+ try:
+ os.chdir("Modules")
+ dir = "<extension>"
+ for line in glob.glob("*module.c"):
+ name = line[:-8]
+ if ignore(name) or modules_by_name.has_key(name) or name == "xx":
+ continue
+ modules_by_name[name] = dir
+ l = modules_by_dir.get(dir, [])
+ modules_by_dir[dir] = l
+ if name not in l:
+ l.append(name)
+ finally:
+ os.chdir(pwd)
#
# Dump the results:
#