import datetime import sys import time class ArcTimer(object): def __init__(self, sleep=3, timeout=None): self.start = datetime.datetime.now() self.sleep = sleep self.timeout = timeout def count_seconds(self): self.seconds = (datetime.datetime.now() - self.start).total_seconds() def is_timeout(self): try: assert(self.timeout is not None) assert(self.seconds >= self.timeout) sys.stdout.write("\rHit timeout when waiting for archive to complete ({} seconds)".format(self.seconds)) sys.stdout.flush() return True except: return False def report(self): self.count_seconds() sys.stdout.write("\rWaiting for archive to complete ({} seconds)".format(self.seconds)) sys.stdout.flush() time.sleep(self.sleep)