Skip to content

Instantly share code, notes, and snippets.

@tlasica
Created December 14, 2015 19:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tlasica/be074f4d89f8b63fce31 to your computer and use it in GitHub Desktop.
Save tlasica/be074f4d89f8b63fce31 to your computer and use it in GitHub Desktop.
SleepTimer in python, not to sleep to long
class SleepTimer(object):
"""
timer = SleepTime(10)
do_something_for_3_sec()
timer.sleep() # will sleep 7
"""
def __init__(self, how_long):
self.how_long = how_long
self.start_time = datetime.datetime.now()
self.i_have_slept = False
def sleep(self):
assert not self.i_have_slept, "I have already slept, create new object please."
self.i_have_slept = True
end_time = datetime.datetime.now()
sec_already_passed = int((end_time - self.start_time).total_seconds())
if sec_already_passed < self.how_long:
time.sleep(self.how_long - sec_already_passed)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment