From: Fred Drake Date: Fri, 29 Jan 1999 21:31:12 +0000 (+0000) Subject: fixup_descriptors(): Change the way we look for descriptor nodes; X-Git-Tag: v1.5.2b2~203 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3a7ff998aca0301659bb906d3631a4e02326615d;p=thirdparty%2FPython%2Fcpython.git fixup_descriptors(): Change the way we look for descriptor nodes; this takes 5 minutes off the conversion of the whole tree by reducing the number of tree-traversals from 14 to 1. --- diff --git a/Doc/tools/sgmlconv/docfixer.py b/Doc/tools/sgmlconv/docfixer.py index 0b7312655160..68fd4a373117 100755 --- a/Doc/tools/sgmlconv/docfixer.py +++ b/Doc/tools/sgmlconv/docfixer.py @@ -131,10 +131,21 @@ DESCRIPTOR_ELEMENTS = ( ) def fixup_descriptors(doc): - for tagName in DESCRIPTOR_ELEMENTS: - nodes = find_all_elements(doc, tagName) - for node in nodes: - rewrite_descriptor(doc, node) + sections = find_all_elements(doc, "section") + for section in sections: + find_and_fix_descriptors(doc, section) + + +def find_and_fix_descriptors(doc, container): + children = container.childNodes + for child in children: + if child.nodeType == xml.dom.core.ELEMENT: + tagName = child.tagName + if tagName in DESCRIPTOR_ELEMENTS: + rewrite_descriptor(doc, child) + elif tagName == "subsection": + find_and_fix_descriptors(doc, child) + def rewrite_descriptor(doc, descriptor): #