format unit properly in the case of nested arrays
The unit is shown at the end of nested arrays. Change-Id: I235bc40e61161e09a7b00cd1e186d8d8c1769d89 Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/30734 Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de> Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
parent
dd6ee398f2
commit
39f0180f40
@ -844,9 +844,16 @@ class ArrayOf(DataType):
|
|||||||
return self(value)
|
return self(value)
|
||||||
|
|
||||||
def format_value(self, value, unit=None):
|
def format_value(self, value, unit=None):
|
||||||
|
innerunit = ''
|
||||||
if unit is None:
|
if unit is None:
|
||||||
unit = self.unit or self.members.unit
|
members = self.members
|
||||||
res = '[%s]' % (', '.join([self.members.format_value(elem, '') for elem in value]))
|
while isinstance(members, ArrayOf):
|
||||||
|
members = members.members
|
||||||
|
if members.unit:
|
||||||
|
unit = members.unit
|
||||||
|
else:
|
||||||
|
innerunit = None
|
||||||
|
res = '[%s]' % (', '.join([self.members.format_value(elem, innerunit) for elem in value]))
|
||||||
if unit:
|
if unit:
|
||||||
return ' '.join([res, unit])
|
return ' '.join([res, unit])
|
||||||
return res
|
return res
|
||||||
|
@ -420,6 +420,9 @@ def test_ArrayOf():
|
|||||||
dt = ArrayOf(EnumType('myenum', single=0), 5)
|
dt = ArrayOf(EnumType('myenum', single=0), 5)
|
||||||
copytest(dt)
|
copytest(dt)
|
||||||
|
|
||||||
|
dt = ArrayOf(ArrayOf(FloatRange(unit='m')))
|
||||||
|
assert dt.format_value([[0, 1], [2, 3]]) == '[[0, 1], [2, 3]] m'
|
||||||
|
|
||||||
|
|
||||||
def test_TupleOf():
|
def test_TupleOf():
|
||||||
# test constructor catching illegal arguments
|
# test constructor catching illegal arguments
|
||||||
|
Loading…
x
Reference in New Issue
Block a user