mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 15:41:43 +00:00 
			
		
		
		
	
		
			
	
	
		
			33 lines
		
	
	
	
		
			893 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
	
		
			893 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								class _Utils:
							 | 
						||
| 
								 | 
							
								    """Support class for utility functions which are shared by
							 | 
						||
| 
								 | 
							
								    profile.py and cProfile.py modules.
							 | 
						||
| 
								 | 
							
								    Not supposed to be used directly.
							 | 
						||
| 
								 | 
							
								    """
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def __init__(self, profiler):
							 | 
						||
| 
								 | 
							
								        self.profiler = profiler
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def run(self, statement, filename, sort):
							 | 
						||
| 
								 | 
							
								        prof = self.profiler()
							 | 
						||
| 
								 | 
							
								        try:
							 | 
						||
| 
								 | 
							
								            prof.run(statement)
							 | 
						||
| 
								 | 
							
								        except SystemExit:
							 | 
						||
| 
								 | 
							
								            pass
							 | 
						||
| 
								 | 
							
								        finally:
							 | 
						||
| 
								 | 
							
								            self._show(prof, filename, sort)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def runctx(self, statement, globals, locals, filename, sort):
							 | 
						||
| 
								 | 
							
								        prof = self.profiler()
							 | 
						||
| 
								 | 
							
								        try:
							 | 
						||
| 
								 | 
							
								            prof.runctx(statement, globals, locals)
							 | 
						||
| 
								 | 
							
								        except SystemExit:
							 | 
						||
| 
								 | 
							
								            pass
							 | 
						||
| 
								 | 
							
								        finally:
							 | 
						||
| 
								 | 
							
								            self._show(prof, filename, sort)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def _show(self, prof, filename, sort):
							 | 
						||
| 
								 | 
							
								        if filename is not None:
							 | 
						||
| 
								 | 
							
								            prof.dump_stats(filename)
							 | 
						||
| 
								 | 
							
								        else:
							 | 
						||
| 
								 | 
							
								            prof.print_stats(sort)
							 |