o
     JAf&  ã                   @   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s§t|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   Zimport_as_nameÚchildrenr   ÚNAMEr   ÚSTARÚremoveÚchangedÚCOMMAÚpopÚgetattrÚparentÚprefixr   )ÚselfZnodeÚresultsr   r   ÚchildÚmemberZ	name_nodeÚmember_nameZremove_commaÚp© r%   ú:/usr/lib/python3.10/lib2to3/fixes/fix_itertools_imports.pyÚ	transform   sL   

ÿ€

ÿ
ü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    