import time import timeit # sleep can be lower than requested value in some platforms: https://bugs.python.org/issue31539 # We add padding here to compensate for that. sleep_padding = 15.0 def sleep_at_least(sleep_in_ms): sleep_until = timeit.default_timer() + (sleep_in_ms / 1E3) time.sleep((sleep_in_ms + sleep_padding) / 1E3) # Check if the padding was sufficient; if not, sleep again. while timeit.default_timer() < sleep_until: time.sleep(sleep_padding / 1E3)