Source code for lagom.utils.conditioner

[docs]class IntervalConditioner(object): def __init__(self, interval, mode): self.interval = interval assert mode in ['accumulative', 'incremental'] self.mode = mode self.counter = 0 if mode == 'incremental': self.total_n = 0 def __call__(self, n): assert n >= 0 if n == 0: return True else: if self.mode == 'accumulative': check = n >= (self.counter+1)*self.interval elif self.mode == 'incremental': self.total_n += n check = self.total_n >= (self.counter+1)*self.interval if check: self.counter += 1 return check
[docs]class NConditioner(IntervalConditioner): def __init__(self, max_n, num_conditions, mode): self.max_n = max_n self.num_conditions = num_conditions interval = max_n/num_conditions super().__init__(interval, mode) def __call__(self, n): if self.counter >= self.num_conditions: return False else: return super().__call__(n)