Source code for exosim.utils.timed_class

import logging
import time

from exosim.log import Logger


[docs]class TimedClass(Logger): """ This class adds methods to log the elapsed time """ def __init__(self): super().__init__() self.start_time_gen = time.time() self.start_time = time.time()
[docs] def log_runtime(self, message, level="info"): try: log_to_call = getattr(self, level) time_stamp = time.strftime( "%Hh%Mm%Ss", time.gmtime(time.time() - self.start_time) ) full_message = message + ": {}".format(time_stamp) log_to_call(full_message) except AttributeError: self.warning("calling class has no Logger's methods") self.start_time = time.time()
[docs] def log_runtime_complete(self, message, level="info"): try: log_to_call = getattr(self, level) time_stamp = time.strftime( "%Hh%Mm%Ss", time.gmtime(time.time() - self.start_time_gen) ) full_message = message + ": {}".format(time_stamp) log_to_call(full_message) except AttributeError: self.warning("calling class has no Logger's methods")