fix LimitsType to be actually used and validated

Change-Id: Id0f67e91f4ff57d4c29c33960e736c8c3ae77209
Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/33683
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
This commit is contained in:
Georg Brandl
2024-05-15 17:19:47 +02:00
committed by Markus Zolliker
parent caaefec6db
commit 6cd83eabcc
2 changed files with 12 additions and 14 deletions

View File

@@ -1244,16 +1244,20 @@ UInt64 = IntRange(0, (1 << 64) - 1)
# Goodie: Convenience Datatypes for Programming
class LimitsType(TupleOf):
def __init__(self, members):
super().__init__(members, members)
def __init__(self, member):
super().__init__(member, member)
def __call__(self, value):
def validate(self, value, previous=None):
"""accepts an ordered tuple of numeric member types"""
limits = TupleOf.validate(self, value)
limits = TupleOf.validate(self, value, previous)
if limits[1] < limits[0]:
raise RangeError(f'Maximum Value {limits[1]} must be greater than minimum value {limits[0]}!')
raise RangeError(f'maximum value {limits[1]} must be greater than '
f'minimum value {limits[0]}')
return limits
def copy(self):
return LimitsType(TupleOf.copy(self).members[0])
class StatusType(TupleOf):
"""convenience type for status