From 07f6165290b1e5f288262cf0f204c775a3f1b23a Mon Sep 17 00:00:00 2001 From: Thomas Gubler Date: Sun, 3 May 2015 10:01:27 +0200 Subject: [PATCH] make parameter parser work with python3 --- Tools/px4params/srcparser.py | 10 +++++++--- Tools/px4params/xmlout.py | 3 +-- makefiles/firmware.mk | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Tools/px4params/srcparser.py b/Tools/px4params/srcparser.py index 0d2413a75f..048836a4eb 100644 --- a/Tools/px4params/srcparser.py +++ b/Tools/px4params/srcparser.py @@ -57,10 +57,10 @@ class Parameter(object): def GetType(self): return self.type - + def GetDefault(self): return self.default - + def SetField(self, code, value): """ Set named field value @@ -80,6 +80,10 @@ class Parameter(object): """ Return value of the given field code or None if not found. """ + fv = self.fields.get(code) + if not fv: + # required because python 3 sorted does not accept None + return "" return self.fields.get(code) class SourceParser(object): @@ -89,7 +93,7 @@ class SourceParser(object): re_split_lines = re.compile(r'[\r\n]+') re_comment_start = re.compile(r'^\/\*\*') - re_comment_content = re.compile(r'^\*\s*(.*)') + re_comment_content = re.compile(r'^\*\s*(.*)') re_comment_tag = re.compile(r'@([a-zA-Z][a-zA-Z0-9_]*)\s*(.*)') re_comment_end = re.compile(r'(.*?)\s*\*\/') re_parameter_definition = re.compile(r'PARAM_DEFINE_([A-Z_][A-Z0-9_]*)\s*\(([A-Z_][A-Z0-9_]*)\s*,\s*([^ ,\)]+)\s*\)\s*;') diff --git a/Tools/px4params/xmlout.py b/Tools/px4params/xmlout.py index 07cced4786..b072ab79f8 100644 --- a/Tools/px4params/xmlout.py +++ b/Tools/px4params/xmlout.py @@ -52,5 +52,4 @@ class XMLOutput(): self.xml_document = ET.ElementTree(xml_parameters) def Save(self, filename): - with codecs.open(filename, 'w', 'utf-8') as f: - self.xml_document.write(f) + self.xml_document.write(filename, encoding="UTF-8") diff --git a/makefiles/firmware.mk b/makefiles/firmware.mk index af3ca249e5..ebe7a09c20 100644 --- a/makefiles/firmware.mk +++ b/makefiles/firmware.mk @@ -494,7 +494,7 @@ $(filter %.S.o,$(OBJS)): $(WORK_DIR)%.S.o: %.S $(GLOBAL_DEPS) $(PRODUCT_BUNDLE): $(PRODUCT_BIN) @$(ECHO) %% Generating $@ ifdef GEN_PARAM_XML - python $(PX4_BASE)/Tools/px_process_params.py --src-path $(PX4_BASE)/src --board CONFIG_ARCH_BOARD_$(CONFIG_BOARD) --xml + $(Q) $(PYTHON) $(PX4_BASE)/Tools/px_process_params.py --src-path $(PX4_BASE)/src --board CONFIG_ARCH_BOARD_$(CONFIG_BOARD) --xml $(Q) $(MKFW) --prototype $(IMAGE_DIR)/$(BOARD).prototype \ --git_identity $(PX4_BASE) \ --parameter_xml $(PRODUCT_PARAMXML) \