Skip to content

Commit

Permalink
Merge pull request #2094 from alicevision/dev/bracketsForGroupAttribute
Browse files Browse the repository at this point in the history
[core] Add brackets option for GroupAttribute
  • Loading branch information
cbentejac committed Jul 4, 2023
2 parents 318a0b5 + 5a62157 commit 1993fc4
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
12 changes: 11 additions & 1 deletion meshroom/core/attribute.py
Original file line number Diff line number Diff line change
Expand Up @@ -581,9 +581,19 @@ def getPrimitiveValue(self, exportDefault=True):
return {name: attr.getPrimitiveValue(exportDefault=exportDefault) for name, attr in self._value.items() if not attr.isDefault}

def getValueStr(self):
# add brackets if requested
strBegin = ''
strEnd = ''
if self.attributeDesc.brackets is not None:
if len(self.attributeDesc.brackets) == 2:
strBegin = self.attributeDesc.brackets[0]
strEnd = self.attributeDesc.brackets[1]
else:
raise AttributeError("Incorrect brackets on GroupAttribute: {}".format(self.attributeDesc.brackets))

# sort values based on child attributes group description order
sortedSubValues = [self._value.get(attr.name).getValueStr() for attr in self.attributeDesc.groupDesc]
return self.attributeDesc.joinChar.join(sortedSubValues)
return strBegin + self.attributeDesc.joinChar.join(sortedSubValues) + strEnd

def updateInternals(self):
super(GroupAttribute, self).updateInternals()
Expand Down
4 changes: 3 additions & 1 deletion meshroom/core/desc.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,12 +112,13 @@ def matchDescription(self, value, strict=True):

class GroupAttribute(Attribute):
""" A macro Attribute composed of several Attributes """
def __init__(self, groupDesc, name, label, description, group='allParams', advanced=False, semantic='', enabled=True, joinChar=' '):
def __init__(self, groupDesc, name, label, description, group='allParams', advanced=False, semantic='', enabled=True, joinChar=' ', brackets=None):
"""
:param groupDesc: the description of the Attributes composing this group
"""
self._groupDesc = groupDesc
self._joinChar = joinChar
self._brackets = brackets
super(GroupAttribute, self).__init__(name=name, label=label, description=description, value={}, uid=(), group=group, advanced=advanced, semantic=semantic, enabled=enabled)

groupDesc = Property(Variant, lambda self: self._groupDesc, constant=True)
Expand Down Expand Up @@ -198,6 +199,7 @@ def retrieveChildrenUids(self):

uid = Property(Variant, retrieveChildrenUids, constant=True)
joinChar = Property(str, lambda self: self._joinChar, constant=True)
brackets = Property(str, lambda self: self._brackets, constant=True)


class Param(Attribute):
Expand Down

0 comments on commit 1993fc4

Please sign in to comment.