From 8e29634d0295c3ceda27594828afee49c9ab8e9f Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Mon, 10 Jul 2023 10:33:01 +0000 Subject: [PATCH] feature(utils): a hopefully reusable waitloop --- selfprivacy_api/utils/waitloop.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 selfprivacy_api/utils/waitloop.py diff --git a/selfprivacy_api/utils/waitloop.py b/selfprivacy_api/utils/waitloop.py new file mode 100644 index 0000000..a375b8e --- /dev/null +++ b/selfprivacy_api/utils/waitloop.py @@ -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() + +