def __init__(self, lower, upper=None, msg=None, **kwds):
lower, upper, msg = _normalize_deviation_args(lower, upper, msg)
normalize_numbers = lambda x: x if x else 0
def function(diff):
if not isinstance(diff, xDeviation):
return False
value = normalize_numbers(diff.value) # Closes over normalize_numbers().
required = normalize_numbers(diff.required)
if isnan(value) or isnan(required):
return False
if value != 0 and required == 0:
return False
percent = value / required if required else 0 # % error calc.
return lower <= percent <= upper # Closes over *lower* and *upper*.
function.__name__ = self.__class__.__name__
super(allow_percent_deviation, self).__init__(function, msg, **kwds)
#_prettify_deviation_signature(allow_percent_deviation.__init__)
评论列表
文章目录