mirror of
https://github.com/python/cpython.git
synced 2025-11-09 18:11:38 +00:00
svn+ssh://pythondev@svn.python.org/python/trunk
................
r72368 | benjamin.peterson | 2009-05-05 18:13:58 -0500 (Tue, 05 May 2009) | 53 lines
Merged revisions 68503,68507,68694,69054,69673,69679-69681,70991,70999,71003,71695 via svnmerge from
svn+ssh://pythondev@svn.python.org/sandbox/trunk/2to3/lib2to3
........
r68503 | benjamin.peterson | 2009-01-10 14:14:49 -0600 (Sat, 10 Jan 2009) | 1 line
use variable
........
r68507 | benjamin.peterson | 2009-01-10 15:13:16 -0600 (Sat, 10 Jan 2009) | 1 line
rewrap
........
r68694 | benjamin.peterson | 2009-01-17 17:55:59 -0600 (Sat, 17 Jan 2009) | 1 line
test for specific node type
........
r69054 | guilherme.polo | 2009-01-28 10:01:54 -0600 (Wed, 28 Jan 2009) | 2 lines
Added mapping for the ttk module.
........
r69673 | benjamin.peterson | 2009-02-16 09:38:22 -0600 (Mon, 16 Feb 2009) | 1 line
fix handling of as imports #5279
........
r69679 | benjamin.peterson | 2009-02-16 11:36:06 -0600 (Mon, 16 Feb 2009) | 1 line
make Base.get_next_sibling() and Base.get_prev_sibling() properties
........
r69680 | benjamin.peterson | 2009-02-16 11:41:48 -0600 (Mon, 16 Feb 2009) | 1 line
normalize docstrings in pytree according to PEP 11
........
r69681 | benjamin.peterson | 2009-02-16 11:43:09 -0600 (Mon, 16 Feb 2009) | 1 line
use a set
........
r70991 | benjamin.peterson | 2009-04-01 15:54:50 -0500 (Wed, 01 Apr 2009) | 1 line
map urllib.urlopen to urllib.request.open #5637
........
r70999 | benjamin.peterson | 2009-04-01 17:36:47 -0500 (Wed, 01 Apr 2009) | 1 line
add very alpha support to 2to3 for running concurrently with multiprocessing
........
r71003 | benjamin.peterson | 2009-04-01 18:10:43 -0500 (Wed, 01 Apr 2009) | 1 line
fix when multiprocessing is not available or used
........
r71695 | benjamin.peterson | 2009-04-17 22:21:29 -0500 (Fri, 17 Apr 2009) | 1 line
refactor multiprocessing support, so it's less hacky to employ and only loads mp when needed
........
................
52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
""" Fixer for imports of itertools.(imap|ifilter|izip|ifilterfalse) """
|
|
|
|
# Local imports
|
|
from lib2to3 import fixer_base
|
|
from lib2to3.fixer_util import BlankLine, syms, token
|
|
|
|
|
|
class FixItertoolsImports(fixer_base.BaseFix):
|
|
PATTERN = """
|
|
import_from< 'from' 'itertools' 'import' imports=any >
|
|
""" %(locals())
|
|
|
|
def transform(self, node, results):
|
|
imports = results['imports']
|
|
if imports.type == syms.import_as_name or not imports.children:
|
|
children = [imports]
|
|
else:
|
|
children = imports.children
|
|
for child in children[::2]:
|
|
if child.type == token.NAME:
|
|
member = child.value
|
|
name_node = child
|
|
else:
|
|
assert child.type == syms.import_as_name
|
|
name_node = child.children[0]
|
|
member_name = name_node.value
|
|
if member_name in ('imap', 'izip', 'ifilter'):
|
|
child.value = None
|
|
child.remove()
|
|
elif member_name == 'ifilterfalse':
|
|
node.changed()
|
|
name_node.value = 'filterfalse'
|
|
|
|
# Make sure the import statement is still sane
|
|
children = imports.children[:] or [imports]
|
|
remove_comma = True
|
|
for child in children:
|
|
if remove_comma and child.type == token.COMMA:
|
|
child.remove()
|
|
else:
|
|
remove_comma ^= True
|
|
|
|
if children[-1].type == token.COMMA:
|
|
children[-1].remove()
|
|
|
|
# If there are no imports left, just get rid of the entire statement
|
|
if not (imports.children or getattr(imports, 'value', None)) or \
|
|
imports.parent is None:
|
|
p = node.get_prefix()
|
|
node = BlankLine()
|
|
node.prefix = p
|
|
return node
|