+++ /dev/null
-"""\r
-Fixer that changes zip(seq0, seq1, ...) into list(zip(seq0, seq1, ...)\r
-unless there exists a 'from future_builtins import zip' statement in the\r
-top-level namespace.\r
-\r
-We avoid the transformation if the zip() call is directly contained in\r
-iter(<>), list(<>), tuple(<>), sorted(<>), ...join(<>), or for V in <>:.\r
-"""\r
-\r
-# Local imports\r
-from .. import fixer_base\r
-from ..fixer_util import Name, Call, in_special_context\r
-\r
-class FixZip(fixer_base.ConditionalFix):\r
-\r
- BM_compatible = True\r
- PATTERN = """\r
- power< 'zip' args=trailer< '(' [any] ')' >\r
- >\r
- """\r
-\r
- skip_on = "future_builtins.zip"\r
-\r
- def transform(self, node, results):\r
- if self.should_skip(node):\r
- return\r
-\r
- if in_special_context(node):\r
- return None\r
-\r
- new = node.clone()\r
- new.prefix = u""\r
- new = Call(Name(u"list"), [new])\r
- new.prefix = node.prefix\r
- return new\r