From 774c8583b199de8c742041f8be29b76506f750aa Mon Sep 17 00:00:00 2001 From: Pierre Kancir Date: Tue, 15 Sep 2020 12:27:21 +0200 Subject: [PATCH] Tools: make apm.pdef.xml more readable. --- Tools/autotest/param_metadata/xmlemit.py | 49 +++++++++++++----------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/Tools/autotest/param_metadata/xmlemit.py b/Tools/autotest/param_metadata/xmlemit.py index 3d7d86e674..476228c6af 100644 --- a/Tools/autotest/param_metadata/xmlemit.py +++ b/Tools/autotest/param_metadata/xmlemit.py @@ -5,22 +5,27 @@ from xml.sax.saxutils import escape, quoteattr from emit import Emit from param import known_param_fields, known_units +INDENT2 = " " +INDENT4 = " " +INDENT6 = " " +INDENT8 = " " +INDENT10 = " " # Emit APM documentation in an machine readable XML format class XmlEmit(Emit): def __init__(self): Emit.__init__(self) - wiki_fname = 'apm.pdef.xml' - self.f = open(wiki_fname, mode='w') - preamble = ''' - - - - ''' - self.f.write(preamble) + self.wiki_fname = 'apm.pdef.xml' + self.f = open(self.wiki_fname, mode='w') + self.preamble = ''' + +''' + self.f.write(self.preamble) + self.f.write(''' + \n''') def close(self): - self.f.write('') + self.f.write(INDENT2 + '\n') self.f.write('''\n''') self.f.close() @@ -28,18 +33,18 @@ class XmlEmit(Emit): self.f.write("") def start_libraries(self): - self.f.write('') - self.f.write('') + self.f.write(INDENT2 + '\n') + self.f.write(INDENT2 + '\n') def emit(self, g): - t = '''\n''' % quoteattr(g.name) # i.e. ArduPlane + t = INDENT4 + '''\n''' % quoteattr(g.name) # i.e. ArduPlane for param in g.params: # Begin our parameter node if hasattr(param, 'DisplayName'): - t += '\n" values = (param.__dict__[field]).split(',') for value in values: v = value.split(':') if len(v) != 2: raise ValueError("Bad value (%s)" % v) - t += '''%s\n''' % (quoteattr(v[0]), escape(v[1])) # i.e. numeric value, string label + t += INDENT10 + '''%s\n''' % (quoteattr(v[0]), escape(v[1])) # i.e. numeric value, string label - t += "\n" + t += INDENT8 + "\n" elif field == 'Units': abreviated_units = param.__dict__[field] if abreviated_units != '': units = known_units[abreviated_units] # use the known_units dictionary to convert the abreviated unit into a full textual one - t += '''%s\n''' % (quoteattr(field), escape(abreviated_units)) # i.e. A/s - t += '''%s\n''' % (quoteattr('UnitText'), escape(units)) # i.e. ampere per second + t += INDENT8 + '''%s\n''' % (quoteattr(field), escape(abreviated_units)) # i.e. A/s + t += INDENT8 + '''%s\n''' % (quoteattr('UnitText'), escape(units)) # i.e. ampere per second else: - t += '''%s\n''' % (quoteattr(field), escape(param.__dict__[field])) # i.e. Range: 0 10 + t += INDENT8 + '''%s\n''' % (quoteattr(field), escape(param.__dict__[field])) # i.e. Range: 0 10 - t += '''\n''' - t += '''\n''' + t += INDENT6 + '''\n''' + t += INDENT4 + '''\n''' # print t self.f.write(t)