From 0847a80bdc79bbcdd272e4a005c57b64e187f03a Mon Sep 17 00:00:00 2001 From: Fabien Castan Date: Mon, 6 Nov 2017 20:46:59 +0100 Subject: [PATCH] [core] Attribute: add isDefault and getPrimitiveValue --- meshroom/core/graph.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/meshroom/core/graph.py b/meshroom/core/graph.py index 2be2b8a2..af1e4293 100644 --- a/meshroom/core/graph.py +++ b/meshroom/core/graph.py @@ -225,6 +225,12 @@ class Attribute(BaseObject): return self.desc.value return self._value + def isDefault(self): + return self._value == self.desc.value + + def getPrimitiveValue(self, exportDefault=True): + return self._value + name = Property(str, getName, constant=True) label = Property(str, getLabel, constant=True) type = Property(str, getType, constant=True) @@ -286,6 +292,15 @@ class ListAttribute(Attribute): def getExportValue(self): return [attr.getExportValue() for attr in self._value] + def isDefault(self): + return bool(self._value) + + def getPrimitiveValue(self, exportDefault=True): + if exportDefault: + return [attr.getPrimitiveValue(exportDefault=exportDefault) for attr in self._value] + else: + return [attr.getPrimitiveValue(exportDefault=exportDefault) for attr in self._value if not attr.isDefault()] + # Override value property setter value = Property(Variant, Attribute._get_value, _set_value, notify=Attribute.valueChanged) @@ -331,6 +346,15 @@ class GroupAttribute(Attribute): def getExportValue(self): return {key: attr.getExportValue() for key, attr in self._value.objects.items()} + def isDefault(self): + return len(self._value) == 0 + + def getPrimitiveValue(self, exportDefault=True): + if exportDefault: + return {name: attr.getPrimitiveValue(exportDefault=exportDefault) for name, attr in self._value.items()} + else: + return {name: attr.getPrimitiveValue(exportDefault=exportDefault) for name, attr in self._value.items() if not attr.isDefault()} + # Override value property value = Property(Variant, Attribute._get_value, _set_value, notify=Attribute.valueChanged)