mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	 966d0e0930
			
		
	
	
		966d0e0930
		
	
	
	
	
		
			
			svn+ssh://pythondev@svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r61730 | martin.v.loewis | 2008-03-22 02:20:58 +0100 (Sa, 22 Mär 2008) | 2 lines More explicit relative imports. ........ r61755 | david.wolever | 2008-03-22 21:33:52 +0100 (Sa, 22 Mär 2008) | 1 line Fixing #2446 -- 2to3 now translates 'import foo' to 'from . import foo' ........ r61824 | david.wolever | 2008-03-24 01:30:24 +0100 (Mo, 24 Mär 2008) | 3 lines Fixed a bug where 'from itertools import izip' would return 'from itertools import' ........
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python2.5
 | |
| """
 | |
| This is a benchmarking script to test the speed of 2to3's pattern matching
 | |
| system. It's equivalent to "refactor.py -f all" for every Python module
 | |
| in sys.modules, but without engaging the actual transformations.
 | |
| """
 | |
| 
 | |
| __author__ = "Collin Winter <collinw at gmail.com>"
 | |
| 
 | |
| # Python imports
 | |
| import os.path
 | |
| import sys
 | |
| from time import time
 | |
| 
 | |
| # Test imports
 | |
| from .support import adjust_path
 | |
| adjust_path()
 | |
| 
 | |
| # Local imports
 | |
| from .. import refactor
 | |
| 
 | |
| ### Mock code for refactor.py and the fixers
 | |
| ###############################################################################
 | |
| class Options:
 | |
|     def __init__(self, **kwargs):
 | |
|         for k, v in kwargs.items():
 | |
|             setattr(self, k, v)
 | |
| 
 | |
|         self.verbose = False
 | |
| 
 | |
| def dummy_transform(*args, **kwargs):
 | |
|     pass
 | |
| 
 | |
| ### Collect list of modules to match against
 | |
| ###############################################################################
 | |
| files = []
 | |
| for mod in sys.modules.values():
 | |
|     if mod is None or not hasattr(mod, '__file__'):
 | |
|         continue
 | |
|     f = mod.__file__
 | |
|     if f.endswith('.pyc'):
 | |
|         f = f[:-1]
 | |
|     if f.endswith('.py'):
 | |
|         files.append(f)
 | |
| 
 | |
| ### Set up refactor and run the benchmark
 | |
| ###############################################################################
 | |
| options = Options(fix=["all"], print_function=False, doctests_only=False)
 | |
| refactor = refactor.RefactoringTool(options)
 | |
| for fixer in refactor.fixers:
 | |
|     # We don't want them to actually fix the tree, just match against it.
 | |
|     fixer.transform = dummy_transform
 | |
| 
 | |
| t = time()
 | |
| for f in files:
 | |
|     print "Matching", f
 | |
|     refactor.refactor_file(f)
 | |
| print "%d seconds to match %d files" % (time() - t, len(sys.modules))
 |