B � f �@sRdZddlmZddlmZddlmZddlm Z m Z m Z Gdd�dej �Z dS) a7 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 <>:. �)� fixer_base)�Node)�python_symbols)�Name�ArgList�in_special_contextc@s eZdZdZdZdZdd�ZdS)�FixZipTzN power< 'zip' args=trailer< '(' [any] ')' > [trailers=trailer*] > zfuture_builtins.zipcCs�|�|�rdSt|�rdS|d��}d|_g}d|kr^dd�|dD�}x|D] }d|_qPWttjtd�|gdd�}ttjtd�t|g�g|�}|j|_|S) N�args��trailerscSsg|] }|���qS�)�clone)�.0�nr r �:/opt/alt/python37/lib64/python3.7/lib2to3/fixes/fix_zip.py� 'sz$FixZip.transform..�zip)�prefix�list) Z should_skiprr rr�symsZpowerrr)�selfZnodeZresultsr r r�newr r r� transforms    zFixZip.transformN)�__name__� __module__� __qualname__Z BM_compatibleZPATTERNZskip_onrr r r rrsrN)�__doc__r rZpytreerZpygramrrZ fixer_utilrrrZConditionalFixrr r r r�s