warningstracker.py 672 B

123456789101112131415161718192021
  1. class WarningsTracker(object):
  2. def __init__(self, warning_level):
  3. self.warning_level = warning_level
  4. self._checked = {}
  5. def check_warning(self, warning):
  6. if self.warning_level > 0 and not warning.canceled:
  7. self.warning_level -= 1
  8. return True
  9. else:
  10. return False
  11. def is_warning_active(self, warning):
  12. try:
  13. return self._checked[warning.pk]
  14. except KeyError:
  15. self._checked[warning.pk] = self.check_warning(warning)
  16. return self._checked[warning.pk]
  17. def is_warning_expired(self, warning):
  18. return not self.is_warning_active(warning)