diff options
author | Fred Drake <fdrake@acm.org> | 2001-11-29 04:30:46 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2001-11-29 04:30:46 (GMT) |
commit | ea4d2c0241f3f32a7ff0fdc0b1b5c8e4bb58e445 (patch) | |
tree | 328feb87615e75721b056a929977ca89e74c9bc7 | |
parent | cffed4bc2162e453a8458d3014e23fa07b627aff (diff) | |
download | cpython-ea4d2c0241f3f32a7ff0fdc0b1b5c8e4bb58e445.zip cpython-ea4d2c0241f3f32a7ff0fdc0b1b5c8e4bb58e445.tar.gz cpython-ea4d2c0241f3f32a7ff0fdc0b1b5c8e4bb58e445.tar.bz2 |
A few small changes:
- Change PREFIX to PREFIXES, which contains a sequence of prefix strings.
This is useful since we want to look for both Py and PY.
- Wrap a long line.
- Collect struct tags as well as typedef names. Since we generally only
use one of the other, that improves coverage.
- Make the script executable on Unix.
This could use a better approach to determine if a symbol is documented,
and could easily avoid keeping the massive string in memory. That would
take time to actually write more code, though, so we'll bail on that
for now.
-rw-r--r-- | Doc/tools/undoc_symbols.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/Doc/tools/undoc_symbols.py b/Doc/tools/undoc_symbols.py index 541984f..d7a9e5d 100644 --- a/Doc/tools/undoc_symbols.py +++ b/Doc/tools/undoc_symbols.py @@ -1,4 +1,7 @@ -"""This script prints out a list of undocumented symbols found in +#! /usr/bin/env python + +"""\ +This script prints out a list of undocumented symbols found in Python include files, prefixed by their tag kind. Pass Python's include files to ctags, parse the output into a @@ -11,14 +14,14 @@ output, prefixed with their tag kind. """ # Which kind of tags do we need? -TAG_KINDS = "dpt" +TAG_KINDS = "dpst" # Doc sections to use DOCSECTIONS = ["api"]# ["api", "ext"] # Only print symbols starting with this prefix, # to get all symbols, use an empty string -PREFIX = "Py" +PREFIXES = ("Py", "PY") INCLUDEPATTERN = "*.h" @@ -45,16 +48,21 @@ INCLUDEPATTERN = "*.h" import os, glob, re, sys, tempfile -def findnames(file, prefix=""): +def findnames(file, prefixes=()): names = {} - for line in file.readlines(): + for line in file.xreadlines(): if line[0] == '!': continue fields = line.split() name, tag = fields[0], fields[-1] if tag == 'd' and name.endswith('_H'): continue - if name.startswith(prefix): + if prefixes: + sw = name.startswith + for prefix in prefixes: + if sw(prefix): + names[name] = tag + else: names[name] = tag return names @@ -69,7 +77,8 @@ def print_undoc_symbols(prefix, docdir, incdir): incfiles = os.path.join(incdir, INCLUDEPATTERN) - fp = os.popen("ctags -IDL_IMPORT --c-types=%s -f - %s" % (TAG_KINDS, incfiles)) + fp = os.popen("ctags -IDL_IMPORT --c-types=%s -f - %s" + % (TAG_KINDS, incfiles)) dict = findnames(fp, prefix) names = dict.keys() names.sort() @@ -82,4 +91,4 @@ if __name__ == '__main__': incdir = os.path.normpath(os.path.join(srcdir, "../../Include")) docdir = os.path.normpath(os.path.join(srcdir, "..")) - print_undoc_symbols(PREFIX, docdir, incdir) + print_undoc_symbols(PREFIXES, docdir, incdir) |