mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -05:00
Handled malformed xml generated by Doxygen for QgsDocCoverage test
This commit is contained in:
parent
6deb520ff1
commit
075d6f2ad5
@ -86,15 +86,26 @@ def parseClassElem(e):
|
||||
def parseFile(f):
|
||||
documentable_members = 0
|
||||
documented_members = 0
|
||||
for event, elem in ET.iterparse(f):
|
||||
if event == 'end' and elem.tag == 'compounddef':
|
||||
if elemIsDocumentableClass(elem):
|
||||
members, documented = parseClassElem(elem)
|
||||
documentable_members += members
|
||||
documented_members += documented
|
||||
if documented < members:
|
||||
print "Class {}, {}/{} members documented".format(elem.find('compoundname').text,documented,members)
|
||||
elem.clear()
|
||||
try:
|
||||
for event, elem in ET.iterparse(f):
|
||||
if event == 'end' and elem.tag == 'compounddef':
|
||||
if elemIsDocumentableClass(elem):
|
||||
members, documented = parseClassElem(elem)
|
||||
documentable_members += members
|
||||
documented_members += documented
|
||||
if documented < members:
|
||||
print "Class {}, {}/{} members documented".format(elem.find('compoundname').text,documented,members)
|
||||
elem.clear()
|
||||
except ET.ParseError as e:
|
||||
#sometimes Doxygen generates malformed xml (eg for < and > operators)
|
||||
line_num, col = e.position
|
||||
with open(f, 'r') as xml_file:
|
||||
for i, l in enumerate(xml_file):
|
||||
if i == line_num - 1:
|
||||
line = l
|
||||
break
|
||||
caret = '{:=>{}}'.format('^', col )
|
||||
print 'ParseError in {}\n{}\n{}\n{}'.format(f,e,line,caret)
|
||||
return documentable_members, documented_members
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user