a
    0`&                     @   s:   d Z ddlmZ ddlmZmZmZ G dd dejZdS )zA Fixer for imports of itertools.(imap|ifilter|izip|ifilterfalse)     )
fixer_base)	BlankLinesymstokenc                   @   s"   e Zd ZdZde  Zdd ZdS )FixItertoolsImportsTzT
              import_from< 'from' 'itertools' 'import' imports=any >
              c                 C   sp  |d }|j tjks|js"|g}n|j}|d d d D ]}|j tjkrR|j}|}n,|j tjkrd d S |j tjkstJ |jd }|j}|dv rd |_|  q6|dv r6|	  |d dkrdnd	|_q6|jd d  p|g}d
}	|D ]*}|	r|j tj
kr|  q|	d
N }	q|r4|d j tj
kr4|   q|jsJt|dd rV|jd u rl|j}
t }|
|_|S d S )Nimports   r   )ZimapZizipZifilter)ZifilterfalseZizip_longest   ffilterfalsezip_longestTvalue)typer   Zimport_as_namechildrenr   NAMEr   STARremoveZchangedCOMMApopgetattrparentprefixr   )selfZnodeZresultsr   r   childmemberZ	name_nodemember_nameZremove_commap r   9/usr/lib/python3.9/lib2to3/fixes/fix_itertools_imports.py	transform   sH    



zFixItertoolsImports.transformN)__name__
__module____qualname__ZBM_compatiblelocalsZPATTERNr    r   r   r   r   r      s
   r   N)	__doc__Zlib2to3r   Zlib2to3.fixer_utilr   r   r   ZBaseFixr   r   r   r   r   <module>   s   