a
XC?h& � @ 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 sZ |d }|j tjks|js"|g}n|j}|d d d� D ]|}|j tjkrR|j}|}n|j tjkrd d S |jd }|j}|dv r�d |_|�� q6|dv r6|� � |d dkr�dnd |_q6|jd d � p�|g}d
} |D ]&}| r�|j tj
kr�|�� q�| d
N } q�|�r|d j tj
k�r|�� �� q�|j�s4t|dd ��r@|j
d u �rV|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 �child�memberZ name_node�member_nameZremove_comma�p� r �H/opt/alt/python39/lib64/python3.9/lib2to3/fixes/fix_itertools_imports.py� transform sF
�
�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 �