mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-07-21 10:37:18 +02:00
[core] Add support for lambda function in Attribute desc value
Allows to dynamically configure the default value of the Attribute in python.
This commit is contained in:
parent
05a93c28a2
commit
bbc56cfb31
2 changed files with 7 additions and 3 deletions
|
@ -3,6 +3,7 @@
|
||||||
import collections
|
import collections
|
||||||
import re
|
import re
|
||||||
import weakref
|
import weakref
|
||||||
|
import types
|
||||||
|
|
||||||
from meshroom.common import BaseObject, Property, Variant, Signal, ListModel, DictModel, Slot
|
from meshroom.common import BaseObject, Property, Variant, Signal, ListModel, DictModel, Slot
|
||||||
from meshroom.core import desc, pyCompatibility, hashValue
|
from meshroom.core import desc, pyCompatibility, hashValue
|
||||||
|
@ -189,7 +190,7 @@ class Attribute(BaseObject):
|
||||||
if self.isLink:
|
if self.isLink:
|
||||||
return self.getLinkParam().asLinkExpr()
|
return self.getLinkParam().asLinkExpr()
|
||||||
if self.isOutput:
|
if self.isOutput:
|
||||||
return self.desc.value
|
return self.defaultValue()
|
||||||
return self._value
|
return self._value
|
||||||
|
|
||||||
def getValueStr(self):
|
def getValueStr(self):
|
||||||
|
@ -201,6 +202,8 @@ class Attribute(BaseObject):
|
||||||
return str(self.value)
|
return str(self.value)
|
||||||
|
|
||||||
def defaultValue(self):
|
def defaultValue(self):
|
||||||
|
if isinstance(self.desc.value, types.FunctionType):
|
||||||
|
return self.desc.value(self)
|
||||||
return self.desc.value
|
return self.desc.value
|
||||||
|
|
||||||
def _isDefault(self):
|
def _isDefault(self):
|
||||||
|
|
|
@ -583,8 +583,9 @@ class BaseNode(BaseObject):
|
||||||
if not isinstance(attr.attributeDesc, desc.File):
|
if not isinstance(attr.attributeDesc, desc.File):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
attr.value = attr.attributeDesc.value.format(**self._cmdVars)
|
defaultValue = attr.defaultValue()
|
||||||
attr._invalidationValue = attr.attributeDesc.value.format(**cmdVarsNoCache)
|
attr.value = defaultValue.format(**self._cmdVars)
|
||||||
|
attr._invalidationValue = defaultValue.format(**cmdVarsNoCache)
|
||||||
v = attr.getValueStr()
|
v = attr.getValueStr()
|
||||||
|
|
||||||
self._cmdVars[name] = '--{name} {value}'.format(name=name, value=v)
|
self._cmdVars[name] = '--{name} {value}'.format(name=name, value=v)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue