Source code for mango.time

from mango.debug import debug
from time import time


[docs]class start(): """Set walltime of the program for clean exiting.""" def __init__(self, walltime): self.start_time = time() self.walltime = walltime self.finishtime = self.start_time + self.walltime
[docs]class end(): """Make sure the program exits within the walltime.""" def __init__(self, startinst): self.__dict__.update(startinst.__dict__)
[docs] def gettimeleft(self): """Return time left in run.""" self.current_time = time() self.timeleft = self.finishtime - self.current_time return self.timeleft
[docs] def gettimegone(self): self.current_time = time() self.timegone = self.current_time - self.start_time return self.timegone
[docs] def finished(self): """Return current run time.""" self.finished = time() self.timetaken = self.finished - self.start_time return "Completed in {:.2f} seconds".format(self.timetaken)
[docs]class grace(): def __init__(self, stats): """Allow time for file saving.""" self.time = 10 * len(stats) if 10 * len(stats) > 120 else 120
class _time(): """Time and iteration storage.""" @debug(['time']) def __init__(self, dt, t0): self.dt = dt self.time = t0 self.iter = 0 @debug(['time']) def time_update(self): self.time += self.dt self.iter += 1 if __name__ == '__main__': pass