X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2Fbertos_utils.py;h=50758645a78459a7336cecd5622ecf04baf24c0e;hb=70736533af22afef6727cedb0f75504f98688cad;hp=5c6bf3c1f841ba9eafefbdbd8ada4b4f4c582973;hpb=0670557698b1a21af4415c4f1e539e57e6c3921c;p=bertos.git diff --git a/wizard/bertos_utils.py b/wizard/bertos_utils.py index 5c6bf3c1..50758645 100644 --- a/wizard/bertos_utils.py +++ b/wizard/bertos_utils.py @@ -114,16 +114,34 @@ def formatModuleNameValue(text): block = re.findall("\s*([^\s]+)\s*(.+?)\s*$", text, re.MULTILINE) return block[0] +def getDescriptionInformations(text): + """ + Take the doxygen comment and strip the wizard informations, returning the tuple + (comment, wizard_informations) + """ + index = text.find("$WIZARD") + if index != -1: + exec(text[index + 1:]) + informations = WIZARD + return text[:index].strip(), informations + else: + return text.strip(), {} + def loadModuleInfos(path): """ Return the module configurations found in the given path as a dict with the name as key - and a list of tuple as value. The tuple have the format (name, value, description). + and a dict as value. The value dict has the parameter name as key and has "value" and "description" + fields. """ moduleInfos = {} for definition in findDefinitions(const.MODULE_CONFIGURATION, path): moduleName = definition[0].replace("cfg_", "").replace(".h", "") - moduleInfos[moduleName] = [] - for description, define in getDefinitionBlocks(open(definition[1] + "/" + definition[0], "r").read()): + moduleInfos[moduleName] = {} + for comment, define in getDefinitionBlocks(open(definition[1] + "/" + definition[0], "r").read()): name, value = formatModuleNameValue(define) - moduleInfos[moduleName].append((name, value, description)) + description, informations = getDescriptionInformations(comment) + moduleInfos[moduleName][name] = {} + moduleInfos[moduleName][name]["value"] = value + moduleInfos[moduleName][name]["informations"] = informations + moduleInfos[moduleName][name]["description"] = description return moduleInfos