B
� f& � @ s: d Z ddlmZ ddlmZmZmZ G dd� dej�ZdS )zA Fixer for imports of itertools.(imap|ifilter|izip|ifilterfalse) � )�
fixer_base)� BlankLine�syms�tokenc @ s" e Zd ZdZde� Zdd� ZdS )�FixItertoolsImportsTzT
import_from< 'from' 'itertools' 'import' imports=any >
c C sf |d }|j tjks|js"|g}n|j}x�|d d d� D ]z}|j tjkrT|j}|}n|j tjkrdd S |jd }|j}|dkr�d |_|�� q8|dkr8|� � |d dkr�dnd |_q8W |jd d � p�|g}d
} x.|D ]&}| r�|j tj
kr�|�� q�| d
N } q�W x*|�r(|d j tj
k�r(|�� �� �q W |j�s@t|dd ��rL|j
d k�rb|j}
t� }|
|_|S d S )
N�imports� r )ZimapZizipZifilter)ZifilterfalseZizip_longest� �f�filterfalse�zip_longestT������value)�typer Zimport_as_name�childrenr �NAMEr �STAR�removeZchanged�COMMA�pop�getattr�parent�prefixr )�selfZnodeZresultsr r Zchild�memberZ name_node�member_nameZremove_comma�p� r �H/opt/alt/python37/lib64/python3.7/lib2to3/fixes/fix_itertools_imports.py� transform sB
zFixItertoolsImports.transformN)�__name__�
__module__�__qualname__Z
BM_compatible�localsZPATTERNr r r r r r s
r N) �__doc__Zlib2to3r Zlib2to3.fixer_utilr r r ZBaseFixr r r r r �