diff options
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/tools/undoc_symbols.py | 42 |
1 files changed, 15 insertions, 27 deletions
diff --git a/Doc/tools/undoc_symbols.py b/Doc/tools/undoc_symbols.py index 355610e..541984f 100644 --- a/Doc/tools/undoc_symbols.py +++ b/Doc/tools/undoc_symbols.py @@ -1,10 +1,8 @@ """This script prints out a list of undocumented symbols found in Python include files, prefixed by their tag kind. -First, a temporary file is written which contains all Python include -files, with DL_IMPORT simply removed. This file is passed to ctags, -and the output is parsed into a dictionary mapping symbol names to tag -kinds. +Pass Python's include files to ctags, parse the output into a +dictionary mapping symbol names to tag kinds. Then, the .tex files from Python docs are read into a giant string. @@ -16,12 +14,14 @@ output, prefixed with their tag kind. TAG_KINDS = "dpt" # Doc sections to use -DOCSECTIONS = ["api", "ext"] +DOCSECTIONS = ["api"]# ["api", "ext"] -# Only print symbols starting with this prefix +# Only print symbols starting with this prefix, # to get all symbols, use an empty string PREFIX = "Py" +INCLUDEPATTERN = "*.h" + # end of customization section @@ -58,40 +58,28 @@ def findnames(file, prefix=""): names[name] = tag return names -def print_undoc_symbols(prefix): - incfile = tempfile.mktemp(".h") - - fp = open(incfile, "w") - - for file in glob.glob(os.path.join(INCDIR, "*.h")): - text = open(file).read() - # remove all DL_IMPORT, they will confuse ctags - text = re.sub("DL_IMPORT", "", text) - fp.write(text) - fp.close() - +def print_undoc_symbols(prefix, docdir, incdir): docs = [] for sect in DOCSECTIONS: - for file in glob.glob(os.path.join(DOCDIR, sect, "*.tex")): + for file in glob.glob(os.path.join(docdir, sect, "*.tex")): docs.append(open(file).read()) docs = "\n".join(docs) - fp = os.popen("ctags --c-types=%s -f - %s" % (TAG_KINDS, incfile)) + incfiles = os.path.join(incdir, INCLUDEPATTERN) + + fp = os.popen("ctags -IDL_IMPORT --c-types=%s -f - %s" % (TAG_KINDS, incfiles)) dict = findnames(fp, prefix) names = dict.keys() names.sort() for name in names: if docs.find(name) == -1: print dict[name], name - os.remove(incfile) if __name__ == '__main__': - global INCDIR - global DOCDIR - SRCDIR = os.path.dirname(sys.argv[0]) - INCDIR = os.path.normpath(os.path.join(SRCDIR, "../../Include")) - DOCDIR = os.path.normpath(os.path.join(SRCDIR, "..")) + srcdir = os.path.dirname(sys.argv[0]) + incdir = os.path.normpath(os.path.join(srcdir, "../../Include")) + docdir = os.path.normpath(os.path.join(srcdir, "..")) - print_undoc_symbols(PREFIX) + print_undoc_symbols(PREFIX, docdir, incdir) |