a XC?h �@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|vrZdd�|dD�}|D] }d|_qNttjtd�|gdd�}ttjtd�t|g�g|�}|j|_|S) N�args��trailerscSsg|] }|���qS�)�clone)�.0�nr r �:/opt/alt/python39/lib64/python3.9/lib2to3/fixes/fix_zip.py� '�z$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