3
\& � @ 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 sl |d }|j tjks|j r$|g}n|j}x�|d d d� D ]z}|j tjkrV|j}|}n|j tjkrfd S |jd }|j}|dkr�d |_|j� q:|dkr:|j � |d d
kr�dnd|_q:W |jd d � p�|g}d
} x0|D ](}| o�|j tj
k� r�|j� q�| d
N } q�W x*|�r,|d j tj
k�r,|j� j� �qW |j�p@t|dd � �sR|j
d k�rh|j}
t� }|
|_|S d S )N�imports� r �imap�izip�ifilter�ifilterfalse�izip_longest� �f�filterfalse�zip_longestT�value)r r
r )r r
�����)�typer Zimport_as_name�childrenr �NAMEr �STAR�removeZchanged�COMMA�pop�getattr�parent�prefixr )�selfZnodeZresultsr r Zchild�memberZ name_node�member_nameZremove_comma�p� r" �;/usr/lib64/python3.6/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# �