feature(utils): a hopefully reusable waitloop

This commit is contained in:
Houkime 2023-07-10 10:33:01 +00:00
parent 1cefaefa3b
commit 6523105d89

View file

@ -0,0 +1,15 @@
from time import sleep
from typing import Callable
from typing import Optional
def wait_until_true(readiness_checker: Callable[[],bool],*,interval: float =0.1, timeout_sec: Optional[float] = None):
elapsed = 0.0
if timeout_sec is None:
timeout_sec = 10e16
while not readiness_checker or elapsed > timeout_sec:
sleep(interval)
elapsed += interval
if elapsed > timeout_sec:
raise TimeoutError()