summaryrefslogtreecommitdiff
path: root/Lib/lib2to3/fixes
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2011-03-07 22:50:37 -0600
committerBenjamin Peterson <benjamin@python.org>2011-03-07 22:50:37 -0600
commit7b0bc59740e6d4f6294377f7ba53f829b215ff76 (patch)
tree1fc525c9749487ad262de2c93e9de6c04c8c4c71 /Lib/lib2to3/fixes
parentc4cbc1f468b41866f550e3c6b6564a18026dd652 (diff)
downloadcpython-7b0bc59740e6d4f6294377f7ba53f829b215ff76.tar.gz
transform izip_longest #11424
Diffstat (limited to 'Lib/lib2to3/fixes')
-rw-r--r--Lib/lib2to3/fixes/fix_itertools.py5
-rw-r--r--Lib/lib2to3/fixes/fix_itertools_imports.py5
2 files changed, 6 insertions, 4 deletions
diff --git a/Lib/lib2to3/fixes/fix_itertools.py b/Lib/lib2to3/fixes/fix_itertools.py
index 5391a37b25..27f8a49ec6 100644
--- a/Lib/lib2to3/fixes/fix_itertools.py
+++ b/Lib/lib2to3/fixes/fix_itertools.py
@@ -13,7 +13,7 @@ from ..fixer_util import Name
class FixItertools(fixer_base.BaseFix):
BM_compatible = True
- it_funcs = "('imap'|'ifilter'|'izip'|'ifilterfalse')"
+ it_funcs = "('imap'|'ifilter'|'izip'|'izip_longest'|'ifilterfalse')"
PATTERN = """
power< it='itertools'
trailer<
@@ -28,7 +28,8 @@ class FixItertools(fixer_base.BaseFix):
def transform(self, node, results):
prefix = None
func = results['func'][0]
- if 'it' in results and func.value != u'ifilterfalse':
+ if ('it' in results and
+ func.value not in (u'ifilterfalse', u'izip_longest')):
dot, it = (results['dot'], results['it'])
# Remove the 'itertools'
prefix = it.prefix
diff --git a/Lib/lib2to3/fixes/fix_itertools_imports.py b/Lib/lib2to3/fixes/fix_itertools_imports.py
index c1deb038e9..28610cfcb9 100644
--- a/Lib/lib2to3/fixes/fix_itertools_imports.py
+++ b/Lib/lib2to3/fixes/fix_itertools_imports.py
@@ -31,9 +31,10 @@ class FixItertoolsImports(fixer_base.BaseFix):
if member_name in (u'imap', u'izip', u'ifilter'):
child.value = None
child.remove()
- elif member_name == u'ifilterfalse':
+ elif member_name in (u'ifilterfalse', u'izip_longest'):
node.changed()
- name_node.value = u'filterfalse'
+ name_node.value = (u'filterfalse' if member_name[1] == u'f'
+ else u'zip_longest')
# Make sure the import statement is still sane
children = imports.children[:] or [imports]