diff options
Diffstat (limited to 'Doc/tools/listmodules')
-rwxr-xr-x | Doc/tools/listmodules | 19 |
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: # |