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 s~ |d }|j tjks|j r$|g}n|j}x�|d d d� D ]�}|j tjkrV|j}|}n*|j tjkrfd S |j tjksvt�|jd }|j}|dkr�d |_|j � q:|dkr:|j
� |d d
kr�dnd|_q:W |jd d � p�|g}d
} x2|D ]*}| �r|j tjk�r|j � q�| d
N } q�W x*|�r>|d j tjk�r>|j� j � �qW |j�pRt
|dd � �sd|jd k�rz|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�AssertionError�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 sD
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$ �