diff --git a/Lib/lib2to3/fixes/fix_itertools_imports.py b/Lib/lib2to3/fixes/fix_itertools_imports.py index c7223de7472..25a2c310395 100644 --- a/Lib/lib2to3/fixes/fix_itertools_imports.py +++ b/Lib/lib2to3/fixes/fix_itertools_imports.py @@ -20,6 +20,9 @@ class FixItertoolsImports(fixer_base.BaseFix): if child.type == token.NAME: member = child.value name_node = child + elif child.type == token.STAR: + # Just leave the import as is. + return else: assert child.type == syms.import_as_name name_node = child.children[0] @@ -44,8 +47,8 @@ class FixItertoolsImports(fixer_base.BaseFix): 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: + if (not (imports.children or getattr(imports, 'value', None)) or + imports.parent is None): p = node.prefix node = BlankLine() node.prefix = p diff --git a/Lib/lib2to3/tests/test_fixers.py b/Lib/lib2to3/tests/test_fixers.py index e8e8e124400..2e31f3ae78c 100644 --- a/Lib/lib2to3/tests/test_fixers.py +++ b/Lib/lib2to3/tests/test_fixers.py @@ -3670,6 +3670,10 @@ class Test_itertools_imports(FixerTestCase): a = "from itertools import bar, filterfalse, foo" self.check(b, a) + def test_import_star(self): + s = "from itertools import *" + self.unchanged(s) + def test_unchanged(self): s = "from itertools import foo"