mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	svn+ssh://pythondev@svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r61626 | david.wolever | 2008-03-19 17:19:16 +0100 (Mi, 19 Mär 2008) | 1 line Added fixer for implicit local imports. See #2414. ........ r61628 | david.wolever | 2008-03-19 17:57:43 +0100 (Mi, 19 Mär 2008) | 1 line Added a class for tests which should not run if a particular import is found. ........ r61629 | collin.winter | 2008-03-19 17:58:19 +0100 (Mi, 19 Mär 2008) | 1 line Two more relative import fixes in pgen2. ........ r61635 | david.wolever | 2008-03-19 20:16:03 +0100 (Mi, 19 Mär 2008) | 1 line Fixed print fixer so it will do the Right Thing when it encounters __future__.print_function. 2to3 gets upset, though, so the tests have been commented out. ........ r61637 | david.wolever | 2008-03-19 21:37:17 +0100 (Mi, 19 Mär 2008) | 3 lines Added a fixer for itertools imports (from itertools import imap, ifilterfalse --> from itertools import filterfalse) ........ r61645 | david.wolever | 2008-03-19 23:22:35 +0100 (Mi, 19 Mär 2008) | 1 line SVN is happier when you add the files you create... -_-' ........ r61654 | david.wolever | 2008-03-20 01:09:56 +0100 (Do, 20 Mär 2008) | 1 line Added an explicit sort order to fixers -- fixes problems like #2427 ........ r61664 | david.wolever | 2008-03-20 04:32:40 +0100 (Do, 20 Mär 2008) | 3 lines Fixes #2428 -- comments are no longer eatten by __future__ fixer. ........ r61673 | david.wolever | 2008-03-20 17:22:40 +0100 (Do, 20 Mär 2008) | 1 line Added 2to3 node pretty-printer ........ r61679 | david.wolever | 2008-03-20 20:50:42 +0100 (Do, 20 Mär 2008) | 1 line Made node printing a little bit prettier ........ r61723 | martin.v.loewis | 2008-03-22 00:59:27 +0100 (Sa, 22 Mär 2008) | 2 lines Fix whitespace. ........
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			875 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			875 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""
 | 
						|
Fixer that changes zip(seq0, seq1, ...) into list(zip(seq0, seq1, ...)
 | 
						|
unless there exists a 'from future_builtins import zip' statement in the
 | 
						|
top-level namespace.
 | 
						|
 | 
						|
We avoid the transformation if the zip() call is directly contained in
 | 
						|
iter(<>), list(<>), tuple(<>), sorted(<>), ...join(<>), or for V in <>:.
 | 
						|
"""
 | 
						|
 | 
						|
# Local imports
 | 
						|
from . import basefix
 | 
						|
from .util import Name, Call, in_special_context
 | 
						|
 | 
						|
class FixZip(basefix.ConditionalFix):
 | 
						|
 | 
						|
    PATTERN = """
 | 
						|
    power< 'zip' args=trailer< '(' [any] ')' >
 | 
						|
    >
 | 
						|
    """
 | 
						|
 | 
						|
    skip_on = "future_builtins.zip"
 | 
						|
 | 
						|
    def transform(self, node, results):
 | 
						|
        if self.should_skip(node):
 | 
						|
            return
 | 
						|
 | 
						|
        if in_special_context(node):
 | 
						|
            return None
 | 
						|
 | 
						|
        new = node.clone()
 | 
						|
        new.set_prefix("")
 | 
						|
        new = Call(Name("list"), [new])
 | 
						|
        new.set_prefix(node.get_prefix())
 | 
						|
        return new
 |