Skip to content
Snippets Groups Projects

GaudiConfig2: strict type checking for list properties

Merged Frank Winklmeier requested to merge fwinkl/Gaudi:conf2_typecheck into master
All threads resolved!
4 files
+ 34
6
Compare changes
  • Side-by-side
  • Inline
Files
4
@@ -148,7 +148,7 @@ class FloatSemantics(PropertySemantics):
if not isinstance(value, Number):
raise TypeError(
"number expected, got {!r} in assignemnt to {}".format(value, self.name)
"number expected, got {!r} in assignment to {}".format(value, self.name)
)
return float(value)
@@ -360,6 +360,12 @@ class SequenceSemantics(PropertySemantics):
self.value_semantics.name = "{} element".format(self._name)
def store(self, value):
if not isinstance(value, (list, _ListHelper, tuple)):
raise TypeError(
"list or tuple expected, got {!r} in assignment to {}".format(
value, self.name
)
)
new_value = _ListHelper(self.value_semantics)
new_value.extend(value)
return new_value
@@ -494,6 +500,7 @@ class MappingSemantics(PropertySemantics):
self.value_semantics.name = "{} value".format(self._name)
def store(self, value):
# No explicit type checking as anything else than dict fails in update call
new_value = _DictHelper(self.key_semantics, self.value_semantics)
new_value.update(value)
return new_value
Loading