feature(utils): a hopefully reusable waitloop

pull/35/head
Houkime 2023-07-10 10:33:01 +00:00 committed by Inex Code
parent be95b84d52
commit 8e29634d02
1 changed files with 15 additions and 0 deletions

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()