diff --git a/src/libs/time_watcg.py b/src/libs/time_watcg.py new file mode 100644 index 0000000..7933e1a --- /dev/null +++ b/src/libs/time_watcg.py @@ -0,0 +1,57 @@ +import time + + +class SimpleLogger: + def debug(self, message): + print(message) + + +class TimeWatch: + def __init__(self, logger=None): + if not logger: + logger = SimpleLogger() + self.logger = logger + self.start_time = None + self.end_time = None + + def start(self): + self.start_time = time.time() + self.logger.debug("Timer started.") + + def stop(self): + self.end_time = time.time() + self.logger.debug("Timer stopped.") + + def elapsed_time(self): + if self.start_time is None: + raise ValueError("Timer has not been started.") + if self.end_time is None: + raise ValueError("Timer has not been stopped.") + elapsed = self.end_time - self.start_time + self.logger.debug(f"Elapsed time: {elapsed} seconds") + return elapsed + + def reset(self): + self.start_time = None + self.end_time = None + self.logger.debug("Timer reset.") + + @classmethod + def debug(cls, func): + def wrapper(*args, **kwargs): + instance = cls() # インスタンスを作成 + instance.start() + result = func(*args, **kwargs) + instance.stop() + instance.elapsed_time() + return result + return wrapper + + +if __name__ == "__main__": + @TimeWatch.debug + def test_function(): + time.sleep(2) + return "Function executed." + + test_function() \ No newline at end of file