mirror of
				https://github.com/MarioSpore/Grinch-AP.git
				synced 2025-10-21 20:21:32 -06:00 
			
		
		
		
	
		
			
	
	
		
			24 lines
		
	
	
		
			588 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			588 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | import time | ||
|  | 
 | ||
|  | 
 | ||
|  | class TimeIt: | ||
|  |     def __init__(self, name: str, time_logger=None): | ||
|  |         self.name = name | ||
|  |         self.logger = time_logger | ||
|  |         self.timer = None | ||
|  |         self.end_timer = None | ||
|  | 
 | ||
|  |     def __enter__(self): | ||
|  |         self.timer = time.perf_counter() | ||
|  |         return self | ||
|  | 
 | ||
|  |     @property | ||
|  |     def dif(self): | ||
|  |         return self.end_timer - self.timer | ||
|  | 
 | ||
|  |     def __exit__(self, exc_type, exc_val, exc_tb): | ||
|  |         if not self.end_timer: | ||
|  |             self.end_timer = time.perf_counter() | ||
|  |         if self.logger: | ||
|  |             self.logger.info(f"{self.dif:.4f} seconds in {self.name}.") |