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}.")
 | 
