Source code for simularium_readdy_models.common.repeated_timer

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from threading import Timer


[docs]class RepeatedTimer(object): def __init__(self, interval, function, *args, **kwargs): self._timer = None self.interval = interval self.function = function self.args = args self.kwargs = kwargs self.is_running = False self.start() def _run(self): self.is_running = False self.start() self.function(*self.args, **self.kwargs)
[docs] def start(self): if not self.is_running: self._timer = Timer(self.interval, self._run) self._timer.start() self.is_running = True
[docs] def stop(self): self._timer.cancel() self.is_running = False