def inferDefaultValue(props): value = "" if "values" in props: vals = utilities.parseValues(props["values"]) if vals and vals[0][2] in ("=", "<="): value = utilities.parseValues(props["values"])[0][0] if not value: if props["valuetype"] == "bool": value = "false" elif props["valuetype"] != "std::string": value = "0" if value and props["type"] == "multivalue": count = min(a.minDelimiters for a in props["arguments"]) value = "|".join([value] * (count + 1)) return value
def __init__(self, props): self.default = props["default"] self.props = props self.arguments = props["arguments"] self.name = props["name"] self.values = utilities.parseValues(props.get("values", "")) self.valueType = props["valuetype"] self.count = utilities.parseCount(props["count"]) self.minCount, self.maxCount = self.count self.include = props.get("include") self.includeCpp = props.get("includecpp") self.action = props.get("memberaction") self.condition = props.get("membercondition") self.conditionMessage = props.get("memberconditionmessage") self.type = props.get("type") if not self.type: self.type = "value" if self.maxCount == 1 else "list" if self.type in ("list", "multivalue"): self.memberType = "std::vector<%s>" % self.valueType else: self.memberType = self.valueType self.isOption = not any(a for a in self.arguments if not a.flags)