21 lines
528 B
Python
21 lines
528 B
Python
#
|
|
# Copyright(c) 2019-2022 Intel Corporation
|
|
# Copyright(c) 2024 Huawei Technologies Co., Ltd.
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
import time
|
|
from datetime import timedelta, datetime
|
|
|
|
|
|
def wait(predicate, timeout: timedelta, interval: timedelta = None):
|
|
start_time = datetime.now()
|
|
result = False
|
|
while start_time + timeout > datetime.now():
|
|
result = predicate()
|
|
if result:
|
|
break
|
|
if interval is not None:
|
|
time.sleep(interval.total_seconds())
|
|
return result
|