o
    bc&                     @   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   sr  |d }|j tjks|js|g}n|j}|d d d D ]F}|j tjkr)|j}|}n|j tjkr2 d S |j tjks:J |jd }|j}|dv rNd |_|  q|dv ra|	  |d dkr^dnd	|_q|jd d  pk|g}d
}	|D ]}|	r|j tj
kr|  qp|	d
N }	qp|r|d j tj
kr|   |r|d j tj
ks|jst|dd r|jd u r|j}
t }|
|_|S d S )Nimports   r   )imapizipifilter)ifilterfalseizip_longest   ffilterfalsezip_longestTvalue)typer   import_as_namechildrenr   NAMEr   STARremovechangedCOMMApopgetattrparentprefixr   )selfnoderesultsr   r   childmember	name_nodemember_nameremove_commap r)   :/usr/lib/python3.10/lib2to3/fixes/fix_itertools_imports.py	transform   sL   




zFixItertoolsImports.transformN)__name__
__module____qualname__BM_compatiblelocalsPATTERNr+   r)   r)   r)   r*   r      s    r   N)	__doc__lib2to3r   lib2to3.fixer_utilr   r   r   BaseFixr   r)   r)   r)   r*   <module>   s    